staging: rtl8192e: Remove unused code for hardware rtl8192se
cover staging: rtl8192e: Remove unused code for hardware rtl8192se
Remove unused macro IS_HARDWARE_TYPE_8192SE and unused function _rtl92e_dm_init_wa_broadcom_iot. Remove a double check for hardware rtl8192se. Remove unused variables.
Tested with rtl8192e
Transferred this patch over wlan connection of rtl8192e
Philipp Hortmann (5):
staging: rtl8192e: Remove macro IS_HARDWARE_TYPE_8192SE
staging: rtl8192e: Remove unused function
_rtl92e_dm_init_wa_broadcom_iot
staging: rtl8192e: Remove one of two checks for hardware RTL8192SE
staging: rtl8192e: Remove unused local variable irq_line
staging: rtl8192e: Remove unused variable RF_Type
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ------ drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 3 --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 18 +----------------- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 -- drivers/staging/rtl8192e/rtl819x_HT.h | 3 --- drivers/staging/rtl8192e/rtllib.h | 1 - 6 files changed, 1 insertion(+), 32 deletions(-)
Signature · 1 line
2.40.0
PATCH 1/5 staging: rtl8192e: Remove macro IS_HARDWARE_TYPE_8192SE
Remove unused macro IS_HARDWARE_TYPE_8192SE as it is used only in code areas that are not executed when 8192SE hardware is found.
--- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 3 --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 7 +------ 2 files changed, 1 insertion(+), 9 deletions(-)
drivers/staging/rtl8192e/rtl8192e/rtl_core.h +0 -3
@@ -52,9 +52,6 @@#define DRV_AUTHOR "<[email protected]>"#define DRV_VERSION "0014.0401.2010" -#define IS_HARDWARE_TYPE_8192SE (_priv) \ - (((struct r8192_priv *)rtllib_priv(dev))->card_8192 == NIC_8192SE) -#define TOTAL_CAM_ENTRY 32#define CAM_CONTENT_COUNT 8
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +1 -6
@@ -214,8 +214,6 @@ void rtl92e_dm_init(struct net_device *dev)_rtl92e_dm_init_fsync (dev);_rtl92e_dm_init_rx_path_selection (dev);_rtl92e_dm_init_cts_to_self (dev); -if (IS_HARDWARE_TYPE_8192SE (dev)) -_rtl92e_dm_init_wa_broadcom_iot (dev);INIT_DELAYED_WORK (&priv->gpio_change_rf_wq, (void *)_rtl92e_dm_check_rf_ctrl_gpio); }
@@ -816,10 +814,7 @@ static void _rtl92e_dm_check_tx_power_tracking_thermal(struct net_device *dev)static u8 TM_Trigger;u8 TxPowerCheckCnt =0 ; -if (IS_HARDWARE_TYPE_8192SE (dev)) - TxPowerCheckCnt =5 ; -else - TxPowerCheckCnt =2 ; + TxPowerCheckCnt =2 ;if (!priv->btxpower_tracking)return ;
Signature · 1 line
2.40.0
PATCH 2/5 staging: rtl8192e: Remove unused function _rtl92e_dm_init_wa_broadcom_iot
In reply to Philipp HortmannRemove unused function _rtl92e_dm_init_wa_broadcom_iot and the variables that are not any longer used.
--- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 11 ----------- drivers/staging/rtl8192e/rtl819x_HT.h | 3 --- 2 files changed, 14 deletions(-)
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +0 -11
@@ -173,7 +173,6 @@ static void _rtl92e_dm_pd_th(struct net_device *dev);static void _rtl92e_dm_cs_ratio (struct net_device *dev);static void _rtl92e_dm_init_cts_to_self (struct net_device *dev); -static void _rtl92e_dm_init_wa_broadcom_iot (struct net_device *dev);static void _rtl92e_dm_check_edca_turbo (struct net_device *dev);static void _rtl92e_dm_check_rx_path_selection (struct net_device *dev);
@@ -1531,16 +1530,6 @@ static void _rtl92e_dm_cts_to_self(struct net_device *dev) } } - -static void _rtl92e_dm_init_wa_broadcom_iot (struct net_device *dev) -{ -struct r8192_priv *priv =rtllib_priv ((struct net_device *)dev); -struct rt_hi_throughput *ht_info = priv->rtllib->ht_info; - - ht_info->bWAIotBroadcom = false; - ht_info->WAIotTH =WA_IOT_TH_VAL ; -} -static void _rtl92e_dm_check_rf_ctrl_gpio (void *data) { struct r8192_priv *priv = container_of_dwork_rsl(data,
drivers/staging/rtl8192e/rtl819x_HT.h +0 -3
@@ -162,9 +162,6 @@ struct rt_hi_throughput {u8 IOTPeer;u32 iot_action;u8 iot_ra_func; - -u8 bWAIotBroadcom; -u8 WAIotTH; } __packed;struct bss_ht {
Signature · 1 line
2.40.0
PATCH 3/5 staging: rtl8192e: Remove one of two checks for hardware RTL8192SE
In reply to Philipp HortmannCheck for hardware RTL8192SE is done in function _rtl92e_pci_probe() directly and also two lines later in function rtl92e_check_adapter(). Remove top level check to increase readability.
--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ------ 1 file changed, 6 deletions(-)
drivers/staging/rtl8192e/rtl8192e/rtl_core.c +0 -6
@@ -2130,7 +2130,6 @@ static int _rtl92e_pci_probe(struct pci_dev *pdev,struct r8192_priv *priv =NULL ;unsigned long pmem_start, pmem_len, pmem_flags;int err = -ENOMEM ; -u8 revision_id;if (pci_enable_device (pdev)) {dev_err (&pdev->dev,"Failed to enable PCI device" );
@@ -2189,11 +2188,6 @@ static int _rtl92e_pci_probe(struct pci_dev *pdev, dev->mem_start = ioaddr; dev->mem_end = ioaddr +pci_resource_len (pdev,0 ); -pci_read_config_byte (pdev,0x08 , &revision_id); -/* If the revisionid is 0x10, the device uses rtl8192se. */ -if (pdev->device ==0x8192 && revision_id ==0x10 ) - goto err_unmap; -if (!rtl92e_check_adapter (pdev, dev)) goto err_unmap;
Signature · 1 line
2.40.0
PATCH 4/5 staging: rtl8192e: Remove unused local variable irq_line
In reply to Philipp HortmannRemove unused local variable irq_line.
--- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 -- 1 file changed, 2 deletions(-)
drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0 -2
@@ -33,11 +33,9 @@ bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev)struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv (dev);u16 device_id;u8 revision_id; -u16 irq_line; device_id = pdev->device; revision_id = pdev->revision; -pci_read_config_word (pdev,0x3C , &irq_line); priv->card_8192 =NIC_8192E ;
Signature · 1 line
2.40.0
Re: [PATCH 4/5] staging: rtl8192e: Remove unused local variable irq_line
Quoted 1 line · Philipp Hortmann
Remove unused local variable
irq_line.
This does more than just remove the unused variable.
Quoted 25 lines
Signed-off-by Philipp Hortmann <[email protected]>--- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 -- 1 file changed, 2 deletions(-)drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-2@@ -33,11 +33,9 @@ bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev)struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv (dev);u16 device_id;u8 revision_id; -u16 irq_line; device_id = pdev->device; revision_id = pdev->revision; -pci_read_config_word (pdev,0x3C , &irq_line); priv->card_8192 =NIC_8192E ;Signature · 1 line
2.40.0
Greg Kroah-Hartman
maintainerRe: [PATCH 4/5] staging: rtl8192e: Remove unused local variable irq_line
In reply to Philipp HortmannQuoted 12 lines · Philipp Hortmann
Remove unused local variable
irq_line.Signed-off-by Philipp Hortmann <[email protected]>--- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 -- 1 file changed, 2 deletions(-)drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-0
drivers/staging/rtl8192e/rtl8192e/rtl_pci.c bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev) · line 40
Quoted 8 lines
drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-2@@ -33,11 +33,9 @@ bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev)struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv (dev);u16 device_id;u8 revision_id; -u16 irq_line; device_id = pdev->device; revision_id = pdev->revision; -pci_read_config_word (pdev,0x3C , &irq_line);
As was pointed out, that might not be "unused".
When doing a PCI write, the only way to know it has completed is to issue a read. Are you sure this isn't a read that is flushing out a pending write? Look at who calls this function and verify that this read really is safe to remove and then document that really really well in the changelog text when doing so.
Be careful about removing seemingly-unused PCI read/writes, they often times are actually needed.
thanks,
greg k-h
Re: [PATCH 4/5] staging: rtl8192e: Remove unused local variable irq_line
Quoted 30 lines · Greg Kroah-Hartman
Quoted 12 lines · Philipp Hortmann
Remove unused local variable
irq_line.Signed-off-by Philipp Hortmann <[email protected]>--- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 -- 1 file changed, 2 deletions(-)drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-0drivers/staging/rtl8192e/rtl8192e/rtl_pci.c bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev) · line 40
Quoted 8 lines
drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-2@@ -33,11 +33,9 @@ bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev)struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv (dev);u16 device_id;u8 revision_id; -u16 irq_line; device_id = pdev->device; revision_id = pdev->revision; -pci_read_config_word (pdev,0x3C , &irq_line);As was pointed out, that might not be "unused".
When doing a PCI write, the only way to know it has completed is to issue a read. Are you sure this isn't a read that is flushing out a pending write? Look at who calls this function and verify that this read really is safe to remove and then document that really really well in the changelog text when doing so.
Quoted 6 lines
Be careful about removing seemingly-unused PCI read/writes, they often times are actually needed.
thanks,
greg k-h
Hi,
The first function that is called of the driver is: _rtl92e_pci_probe(). 66 Lines later the function rtl92e_check_adapter() is called. The line pci_read_config_word() is the 10th line of this function.
No other pci function before in function rtl92e_check_adapter().
The following functions are used in the probe function before the rtl92e_check_adapter():
pci_enable_device() Does not require a pci read.pci_set_master() Does not require a pci read.dma_set_mask() Does not require a pci read.alloc_rtllib() Does not require a pci read.pci_set_drvdata() Does not require a pci read.SET_NETDEV_DEV() Does not require a pci read.rtllib_priv() Does not require a pci read.pci_resource_start() Does not require a pci read.pci_resource_len() Does not require a pci read.pci_resource_flags() Does not require a pci read.request_mem_region() Does not require a pci read.ioremap() Does not require a pci read.pci_resource_len() Does not require a pci read.pci_read_config_byte() Which is deleted in this
patch series. So Gregs hint is applicable for this patch as well.
I am going to issue a v2.
Thanks for your support.
Bye Philipp
Greg Kroah-Hartman
maintainerRe: [PATCH 4/5] staging: rtl8192e: Remove unused local variable irq_line
Quoted 65 lines · Philipp Hortmann
Quoted 29 lines · Greg Kroah-Hartman
Quoted 12 lines · Philipp Hortmann
Remove unused local variable
irq_line.Signed-off-by Philipp Hortmann <[email protected]>--- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 -- 1 file changed, 2 deletions(-)drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-0drivers/staging/rtl8192e/rtl8192e/rtl_pci.c bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev) · line 39
Quoted 7 lines
drivers/staging/rtl8192e/rtl8192e/rtl_pci.c +0
-2@@ -33,11 +33,9 @@ bool rtl92e_check_adapter(struct pci_dev *pdev, struct net_device *dev)struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv (dev);u16 device_id;u8 revision_id; -u16 irq_line; device_id = pdev->device; revision_id = pdev->revision; -pci_read_config_word (pdev,0x3C , &irq_line);As was pointed out, that might not be "unused".
When doing a PCI write, the only way to know it has completed is to issue a read. Are you sure this isn't a read that is flushing out a pending write? Look at who calls this function and verify that this read really is safe to remove and then document that really really well in the changelog text when doing so.
Quoted 6 lines
Be careful about removing seemingly-unused PCI read/writes, they often times are actually needed.
thanks,
greg k-h
Hi,
The first function that is called of the driver is:
_rtl92e_pci_probe(). 66 Lines later the functionrtl92e_check_adapter()is called. The linepci_read_config_word()is the 10th line of this function.No other pci function before in function
rtl92e_check_adapter().The following functions are used in the probe function before the
rtl92e_check_adapter():
pci_enable_device()Does not require a pci read.pci_set_master()Does not require a pci read.dma_set_mask()Does not require a pci read.alloc_rtllib()Does not require a pci read.pci_set_drvdata()Does not require a pci read.SET_NETDEV_DEV()Does not require a pci read.rtllib_priv()Does not require a pci read.pci_resource_start()Does not require a pci read.pci_resource_len()Does not require a pci read.pci_resource_flags()Does not require a pci read.request_mem_region()Does not require a pci read.ioremap()Does not require a pci read.pci_resource_len()Does not require a pci read.pci_read_config_byte()Which is deleted in this
patch series. So Gregs hint is applicable for this patch as well.
Quoted 1 line
I am going to issue a v2.
How do you know that this device does not require that register to be read from in order to work properly? Remember, reads can change device's state as well as writes.
thanks,
greg k-h
PATCH 5/5 staging: rtl8192e: Remove unused variable RF_Type
In reply to Philipp HortmannRemove unused variable RF_Type.
--- drivers/staging/rtl8192e/rtllib.h | 1 - 1 file changed, 1 deletion(-)
drivers/staging/rtl8192e/rtllib.h +0 -1
@@ -1390,7 +1390,6 @@ struct rtllib_device {size_t assocreq_ies_len, assocresp_ies_len;bool bForcedBgMode; -u8 RF_Type;u8 hwsec_active;bool is_silent_reset;
Signature · 1 line
2.40.0