mt76x02: tidy up mib counters
Subsystems (2)
Lorenzo Bianconi
maintainercover mt76x02: tidy up mib counters
Move shared mib counter code in common code.
Reset aggregation statistics restarting the device for mt76x02u and mt76x0e drivers.
Unify mt76x02u_mac_start for mt76x2u and mt76x0u drivers
Lorenzo Bianconi (4):
mt76: mt76x02: move mac_reset_counter in mt76x02_lib module
mt76: mt76x2: move mt76x02_mac_reset_counters in mt76x02_mac_start
mt76: mt76x0u: reset counter starting the device
mt76: mt76x02u: move mt76x02u_mac_start in mt76x02-usb moudle
.../net/wireless/mediatek/mt76/mt76x0/init.c | 27 ------------------- .../wireless/mediatek/mt76/mt76x0/mt76x0.h | 1 - .../net/wireless/mediatek/mt76/mt76x0/usb.c | 2 +- .../net/wireless/mediatek/mt76/mt76x02_mac.c | 21 +++++++++++++++ .../net/wireless/mediatek/mt76/mt76x02_mac.h | 1 + .../net/wireless/mediatek/mt76/mt76x02_mmio.c | 1 + .../net/wireless/mediatek/mt76/mt76x02_usb.h | 1 + .../wireless/mediatek/mt76/mt76x02_usb_core.c | 21 +++++++++++++++ .../net/wireless/mediatek/mt76/mt76x2/mac.h | 1 - .../wireless/mediatek/mt76/mt76x2/mt76x2u.h | 1 - .../wireless/mediatek/mt76/mt76x2/pci_init.c | 21 ++------------- .../wireless/mediatek/mt76/mt76x2/pci_main.c | 6 ++--- .../wireless/mediatek/mt76/mt76x2/usb_mac.c | 27 ------------------- .../wireless/mediatek/mt76/mt76x2/usb_main.c | 3 ++- 14 files changed, 52 insertions(+), 82 deletions(-)
Signature · 1 line
2.21.0
Lorenzo Bianconi
maintainerPATCH 1/4 mt76: mt76x02: move mac_reset_counter in mt76x02_lib module
Unify mac_reset_counter routine and move it in mt76x02_lib module since it is shared by all mt76x02 drivers (pci/usb)
--- .../net/wireless/mediatek/mt76/mt76x0/init.c | 12 +---------- .../net/wireless/mediatek/mt76/mt76x02_mac.c | 21 +++++++++++++++++++ .../net/wireless/mediatek/mt76/mt76x02_mac.h | 1 + .../wireless/mediatek/mt76/mt76x2/pci_init.c | 10 +-------- .../wireless/mediatek/mt76/mt76x2/usb_mac.c | 12 +---------- 5 files changed, 25 insertions(+), 31 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76x0/init.c +1 -11
@@ -150,16 +150,6 @@ static void mt76x0_init_mac_registers(struct mt76x02_dev *dev)mt76_rmw (dev,MT_WMM_CTRL ,0x3ff ,0x201 ); } -static void mt76x0_reset_counters (struct mt76x02_dev *dev) -{ -mt76_rr (dev,MT_RX_STAT_0 ); -mt76_rr (dev,MT_RX_STAT_1 ); -mt76_rr (dev,MT_RX_STAT_2 ); -mt76_rr (dev,MT_TX_STA_0 ); -mt76_rr (dev,MT_TX_STA_1 ); -mt76_rr (dev,MT_TX_STA_2 ); -} -int mt76x0_mac_start (struct mt76x02_dev *dev) {mt76_wr (dev,MT_MAC_SYS_CTRL ,MT_MAC_SYS_CTRL_ENABLE_TX );
@@ -244,7 +234,7 @@ int mt76x0_init_hardware(struct mt76x02_dev *dev)for (i =0 ; i <256 ; i++)mt76x02_mac_wcid_setup (dev, i,0 ,NULL ); -mt76x0_reset_counters (dev); +mt76x02_mac_reset_counters (dev); ret =mt76x0_eeprom_init (dev);if (ret)
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c +21 -0
@@ -7,6 +7,27 @@#include "mt76x02.h" #include "mt76x02_trace.h" +void mt76x02_mac_reset_counters (struct mt76x02_dev *dev) +{ +int i; + +mt76_rr (dev,MT_RX_STAT_0 ); +mt76_rr (dev,MT_RX_STAT_1 ); +mt76_rr (dev,MT_RX_STAT_2 ); +mt76_rr (dev,MT_TX_STA_0 ); +mt76_rr (dev,MT_TX_STA_1 ); +mt76_rr (dev,MT_TX_STA_2 ); + +for (i =0 ; i <16 ; i++) +mt76_rr (dev,MT_TX_AGG_CNT (i)); + +for (i =0 ; i <16 ; i++) +mt76_rr (dev,MT_TX_STAT_FIFO ); + +memset (dev->aggr_stats,0 ,sizeof (dev->aggr_stats)); +} +EXPORT_SYMBOL_GPL (mt76x02_mac_reset_counters); +static enum mt76x02_cipher_type mt76x02_mac_get_key_info (struct ieee80211_key_conf *key,u8 *key_data) {
drivers/net/wireless/mediatek/mt76/mt76x02_mac.h +1 -0
@@ -161,6 +161,7 @@ static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev)return false; } +void mt76x02_mac_reset_counters (struct mt76x02_dev *dev);void mt76x02_mac_set_short_preamble (struct mt76x02_dev *dev,bool enable);int mt76x02_mac_shared_key_setup (struct mt76x02_dev *dev,u8 vif_idx,u8 key_idx,struct ieee80211_key_conf *key);
drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c +1 -9
@@ -148,15 +148,7 @@ int mt76x2_mac_reset(struct mt76x02_dev *dev, bool hard)int mt76x2_mac_start (struct mt76x02_dev *dev) { -int i; - -for (i =0 ; i <16 ; i++) -mt76_rr (dev,MT_TX_AGG_CNT (i)); - -for (i =0 ; i <16 ; i++) -mt76_rr (dev,MT_TX_STAT_FIFO ); - -memset (dev->aggr_stats,0 ,sizeof (dev->aggr_stats)); +mt76x02_mac_reset_counters (dev);mt76x02_mac_start (dev);return 0 ;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_mac.c +1 -11
@@ -6,16 +6,6 @@#include "mt76x2u.h" #include "eeprom.h" -static void mt76x2u_mac_reset_counters (struct mt76x02_dev *dev) -{ -mt76_rr (dev,MT_RX_STAT_0 ); -mt76_rr (dev,MT_RX_STAT_1 ); -mt76_rr (dev,MT_RX_STAT_2 ); -mt76_rr (dev,MT_TX_STA_0 ); -mt76_rr (dev,MT_TX_STA_1 ); -mt76_rr (dev,MT_TX_STA_2 ); -} -static void mt76x2u_mac_fixup_xtal (struct mt76x02_dev *dev) {s8 offset =0 ;
@@ -104,7 +94,7 @@ int mt76x2u_mac_reset(struct mt76x02_dev *dev)int mt76x2u_mac_start (struct mt76x02_dev *dev) { -mt76x2u_mac_reset_counters (dev); +mt76x02_mac_reset_counters (dev);mt76_wr (dev,MT_MAC_SYS_CTRL ,MT_MAC_SYS_CTRL_ENABLE_TX );mt76x02_wait_for_wpdma (&dev->mt76,1000 );
Signature · 1 line
2.21.0
Lorenzo Bianconi
maintainerPATCH 2/4 mt76: mt76x2: move mt76x02_mac_reset_counters in mt76x02_mac_start
In reply to Lorenzo BianconiMove mt76x02_mac_reset_counters in mt76x02_mac_start and get rid of mt76x2_mac_start since it is just a wrapper for mt76x02_mac_start
--- drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 1 + drivers/net/wireless/mediatek/mt76/mt76x2/mac.h | 1 - .../net/wireless/mediatek/mt76/mt76x2/pci_init.c | 13 ++----------- .../net/wireless/mediatek/mt76/mt76x2/pci_main.c | 6 ++---- 4 files changed, 5 insertions(+), 16 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c +1 -0
@@ -343,6 +343,7 @@ EXPORT_SYMBOL_GPL(mt76x02_dma_disable);void mt76x02_mac_start (struct mt76x02_dev *dev) { +mt76x02_mac_reset_counters (dev);mt76x02_dma_enable (dev);mt76_wr (dev,MT_RX_FILTR_CFG , dev->mt76.rxfilter); mt76_wr(dev, MT_MAC_SYS_CTRL,
drivers/net/wireless/mediatek/mt76/mt76x2/mac.h +0 -1
@@ -12,7 +12,6 @@ struct mt76x02_dev;struct mt76x2_sta ;struct mt76x02_vif ; -int mt76x2_mac_start (struct mt76x02_dev *dev);void mt76x2_mac_stop (struct mt76x02_dev *dev,bool force);static inline void mt76x2_mac_resume (struct mt76x02_dev *dev)
drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c +2 -11
@@ -7,6 +7,7 @@#include "mt76x2.h" #include "eeprom.h" #include "mcu.h" +#include "../mt76x02_mac.h" static void mt76x2_mac_pbf_init (struct mt76x02_dev *dev)
@@ -146,14 +147,6 @@ int mt76x2_mac_reset(struct mt76x02_dev *dev, bool hard)return 0 ; } -int mt76x2_mac_start (struct mt76x02_dev *dev) -{ -mt76x02_mac_reset_counters (dev); -mt76x02_mac_start (dev); - -return 0 ; -} -static void mt76x2_power_on_rf_patch (struct mt76x02_dev *dev) {
@@ -256,9 +249,7 @@ static int mt76x2_init_hardware(struct mt76x02_dev *dev)return ret;set_bit (MT76_STATE_INITIALIZED , &dev->mt76.state); - ret =mt76x2_mac_start (dev); -if (ret) -return ret; +mt76x02_mac_start (dev); ret =mt76x2_mcu_init (dev);if (ret)
drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c +2 -4
@@ -4,6 +4,7 @@*/ #include "mt76x2.h" +#include "../mt76x02_mac.h" static int mt76x2_start (struct ieee80211_hw *hw)
@@ -11,10 +12,7 @@ mt76x2_start(struct ieee80211_hw *hw)struct mt76x02_dev *dev = hw->priv;int ret; - ret =mt76x2_mac_start (dev); -if (ret) -return ret; - +mt76x02_mac_start (dev); ret =mt76x2_phy_start (dev);if (ret)return ret;
Signature · 1 line
2.21.0
Lorenzo Bianconi
maintainerPATCH 3/4 mt76: mt76x0u: reset counter starting the device
In reply to Lorenzo BianconiRemove mt76x02_mac_reset_counters from mt76x0_init_hardware since it will be run starting the device
--- drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76x0/init.c +1 -2
@@ -152,6 +152,7 @@ static void mt76x0_init_mac_registers(struct mt76x02_dev *dev)int mt76x0_mac_start (struct mt76x02_dev *dev) { +mt76x02_mac_reset_counters (dev);mt76_wr (dev,MT_MAC_SYS_CTRL ,MT_MAC_SYS_CTRL_ENABLE_TX );if (!mt76x02_wait_for_wpdma (&dev->mt76,200000 ))
@@ -234,8 +235,6 @@ int mt76x0_init_hardware(struct mt76x02_dev *dev)for (i =0 ; i <256 ; i++)mt76x02_mac_wcid_setup (dev, i,0 ,NULL ); -mt76x02_mac_reset_counters (dev); - ret =mt76x0_eeprom_init (dev);if (ret)return ret;
Signature · 1 line
2.21.0
Lorenzo Bianconi
maintainerPATCH 4/4 mt76: mt76x02u: move mt76x02u_mac_start in mt76x02-usb module
In reply to Lorenzo BianconiUnify mt76x02u_mac_start between mt76x2u and mt76x0u since the code is shared between both drivers
--- .../net/wireless/mediatek/mt76/mt76x0/init.c | 16 -------------- .../wireless/mediatek/mt76/mt76x0/mt76x0.h | 1 - .../net/wireless/mediatek/mt76/mt76x0/usb.c | 2 +- .../net/wireless/mediatek/mt76/mt76x02_usb.h | 1 + .../wireless/mediatek/mt76/mt76x02_usb_core.c | 21 +++++++++++++++++++ .../wireless/mediatek/mt76/mt76x2/mt76x2u.h | 1 - .../wireless/mediatek/mt76/mt76x2/usb_mac.c | 17 --------------- .../wireless/mediatek/mt76/mt76x2/usb_main.c | 3 ++- 8 files changed, 25 insertions(+), 37 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76x0/init.c +0 -16
@@ -150,22 +150,6 @@ static void mt76x0_init_mac_registers(struct mt76x02_dev *dev)mt76_rmw (dev,MT_WMM_CTRL ,0x3ff ,0x201 ); } -int mt76x0_mac_start (struct mt76x02_dev *dev) -{ -mt76x02_mac_reset_counters (dev); -mt76_wr (dev,MT_MAC_SYS_CTRL ,MT_MAC_SYS_CTRL_ENABLE_TX ); - -if (!mt76x02_wait_for_wpdma (&dev->mt76,200000 )) -return -ETIMEDOUT ; - -mt76_wr (dev,MT_RX_FILTR_CFG , dev->mt76.rxfilter); -mt76_wr (dev,MT_MAC_SYS_CTRL , -MT_MAC_SYS_CTRL_ENABLE_TX |MT_MAC_SYS_CTRL_ENABLE_RX ); - -return !mt76x02_wait_for_wpdma (&dev->mt76,50 ) ? -ETIMEDOUT :0 ; -} -EXPORT_SYMBOL_GPL (mt76x0_mac_start); -void mt76x0_mac_stop (struct mt76x02_dev *dev) {int i =200 , ok =0 ;
drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h +0 -1
@@ -46,7 +46,6 @@ int mt76x0_init_hardware(struct mt76x02_dev *dev);int mt76x0_register_device (struct mt76x02_dev *dev);void mt76x0_chip_onoff (struct mt76x02_dev *dev,bool enable,bool reset); -int mt76x0_mac_start (struct mt76x02_dev *dev);void mt76x0_mac_stop (struct mt76x02_dev *dev);int mt76x0_config (struct ieee80211_hw *hw,u32 changed);
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c +1 -1
@@ -103,7 +103,7 @@ static int mt76x0u_start(struct ieee80211_hw *hw)struct mt76x02_dev *dev = hw->priv;int ret; - ret =mt76x0_mac_start (dev); + ret =mt76x02u_mac_start (dev);if (ret)return ret;
drivers/net/wireless/mediatek/mt76/mt76x02_usb.h +1 -0
@@ -8,6 +8,7 @@#include "mt76x02.h" +int mt76x02u_mac_start (struct mt76x02_dev *dev);void mt76x02u_init_mcu (struct mt76_dev *dev);void mt76x02u_mcu_fw_reset (struct mt76x02_dev *dev); int mt76x02u_mcu_fw_send_data(struct mt76x02_dev *dev, const void *data,
drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c +21 -0
@@ -23,6 +23,27 @@ void mt76x02u_tx_complete_skb(struct mt76_dev *mdev, enum mt76_txq_id qid, }EXPORT_SYMBOL_GPL (mt76x02u_tx_complete_skb); +int mt76x02u_mac_start (struct mt76x02_dev *dev) +{ +mt76x02_mac_reset_counters (dev); + +mt76_wr (dev,MT_MAC_SYS_CTRL ,MT_MAC_SYS_CTRL_ENABLE_TX ); +if (!mt76x02_wait_for_wpdma (&dev->mt76,200000 )) +return -ETIMEDOUT ; + +mt76_wr (dev,MT_RX_FILTR_CFG , dev->mt76.rxfilter); + +mt76_wr (dev,MT_MAC_SYS_CTRL , +MT_MAC_SYS_CTRL_ENABLE_TX | +MT_MAC_SYS_CTRL_ENABLE_RX ); + +if (!mt76x02_wait_for_wpdma (&dev->mt76,50 )) +return -ETIMEDOUT ; + +return 0 ; +} +EXPORT_SYMBOL_GPL (mt76x02u_mac_start); +int mt76x02u_skb_dma_info (struct sk_buff *skb,int port,u32 flags) {struct sk_buff *iter, *last = skb;
drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2u.h +0 -1
@@ -24,7 +24,6 @@ void mt76x2u_cleanup(struct mt76x02_dev *dev);void mt76x2u_stop_hw (struct mt76x02_dev *dev);int mt76x2u_mac_reset (struct mt76x02_dev *dev); -int mt76x2u_mac_start (struct mt76x02_dev *dev);int mt76x2u_mac_stop (struct mt76x02_dev *dev); int mt76x2u_phy_set_channel(struct mt76x02_dev *dev,
drivers/net/wireless/mediatek/mt76/mt76x2/usb_mac.c +0 -17
@@ -92,23 +92,6 @@ int mt76x2u_mac_reset(struct mt76x02_dev *dev)return 0 ; } -int mt76x2u_mac_start (struct mt76x02_dev *dev) -{ -mt76x02_mac_reset_counters (dev); - -mt76_wr (dev,MT_MAC_SYS_CTRL ,MT_MAC_SYS_CTRL_ENABLE_TX ); -mt76x02_wait_for_wpdma (&dev->mt76,1000 ); -usleep_range (50 ,100 ); - -mt76_wr (dev,MT_RX_FILTR_CFG , dev->mt76.rxfilter); - -mt76_wr (dev,MT_MAC_SYS_CTRL , -MT_MAC_SYS_CTRL_ENABLE_TX | -MT_MAC_SYS_CTRL_ENABLE_RX ); - -return 0 ; -} -int mt76x2u_mac_stop (struct mt76x02_dev *dev) {int i, count =0 , val;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c +2 -1
@@ -4,13 +4,14 @@*/ #include "mt76x2u.h" +#include "../mt76x02_usb.h" static int mt76x2u_start (struct ieee80211_hw *hw) {struct mt76x02_dev *dev = hw->priv;int ret; - ret =mt76x2u_mac_start (dev); + ret =mt76x02u_mac_start (dev);if (ret)return ret;
Signature · 1 line
2.21.0