mt76: remove some duplicated code
Subsystems (2)
Lorenzo Bianconi
maintainercover mt76: remove some duplicated code
Get rid of some unused code and move shared one in mt76_connac module.
Lorenzo Bianconi (6):
wifi: mt76: move irq_tasklet in mt76_dev struct
wifi: mt76: add mt76_connac_irq_enable utility routine
wifi: mt76: get rid of unused sta_ps callbacks
wifi: mt76: add mt76_connac_gen_ppe_thresh utility routine
wifi: mt76: mt7921: get rid of eeprom.h
wifi: mt76: move shared mac definitions in mt76_connac2_mac.h
drivers/net/wireless/mediatek/mt76/mac80211.c | 3 +- drivers/net/wireless/mediatek/mt76/mt76.h | 1 + .../net/wireless/mediatek/mt76/mt7615/dma.c | 5 +- .../net/wireless/mediatek/mt76/mt7615/mac.c | 5 -- .../net/wireless/mediatek/mt76/mt7615/mac.h | 12 ----- .../net/wireless/mediatek/mt76/mt7615/mmio.c | 11 ++-- .../wireless/mediatek/mt76/mt7615/mt7615.h | 10 ---- .../net/wireless/mediatek/mt76/mt7615/pci.c | 2 +- .../wireless/mediatek/mt76/mt7615/pci_init.c | 2 +- .../net/wireless/mediatek/mt76/mt7615/sdio.c | 1 - .../net/wireless/mediatek/mt76/mt7615/usb.c | 1 - .../net/wireless/mediatek/mt76/mt76_connac.h | 21 ++++++++ .../wireless/mediatek/mt76/mt76_connac2_mac.h | 22 ++++++++ .../wireless/mediatek/mt76/mt76_connac_mac.c | 21 ++++++++ .../net/wireless/mediatek/mt76/mt7915/init.c | 25 +-------- .../net/wireless/mediatek/mt76/mt7915/mac.c | 6 +-- .../net/wireless/mediatek/mt76/mt7915/mac.h | 33 +----------- .../net/wireless/mediatek/mt76/mt7915/mmio.c | 7 ++- .../wireless/mediatek/mt76/mt7915/mt7915.h | 4 +- .../wireless/mediatek/mt76/mt7921/debugfs.c | 1 - .../net/wireless/mediatek/mt76/mt7921/dma.c | 10 ++-- .../wireless/mediatek/mt76/mt7921/eeprom.h | 30 ----------- .../net/wireless/mediatek/mt76/mt7921/init.c | 3 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 18 ++++--- .../net/wireless/mediatek/mt76/mt7921/mac.h | 53 ------------------- .../net/wireless/mediatek/mt76/mt7921/main.c | 23 +------- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 3 +- .../wireless/mediatek/mt76/mt7921/mt7921.h | 20 +++---- .../net/wireless/mediatek/mt76/mt7921/pci.c | 24 ++++----- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/sdio.c | 3 +- .../wireless/mediatek/mt76/mt7921/sdio_mac.c | 2 +- .../wireless/mediatek/mt76/mt7921/sdio_mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/usb.c | 3 +- .../wireless/mediatek/mt76/mt7921/usb_mac.c | 2 +- .../net/wireless/mediatek/mt76/mt7996/init.c | 25 +-------- .../net/wireless/mediatek/mt76/mt7996/mac.c | 6 +-- .../net/wireless/mediatek/mt76/mt7996/mac.h | 12 ----- .../net/wireless/mediatek/mt76/mt7996/mmio.c | 7 ++- .../wireless/mediatek/mt76/mt7996/mt7996.h | 4 +- 40 files changed, 139 insertions(+), 306 deletions(-) delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.h delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mac.h
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 1/6 wifi: mt76: move irq_tasklet in mt76_dev struct
irq_tasklet struct is used by most of the drivers (e.g. mt7915, mt7921, mt7615, mt7663 and mt7996) so move it in common code.
--- drivers/net/wireless/mediatek/mt76/mt76.h | 1 + drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 6 +++--- drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 4 +--- drivers/net/wireless/mediatek/mt76/mt7615/pci.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7915/init.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 6 +++--- drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 3 +-- drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 3 +-- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 8 ++++---- drivers/net/wireless/mediatek/mt76/mt7996/init.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7996/mac.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7996/mmio.c | 6 +++--- drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h | 3 +-- 15 files changed, 24 insertions(+), 28 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76.h +1 -0
@@ -778,6 +778,7 @@ struct mt76_dev {spinlock_t rx_lock;struct napi_struct napi[__MT_RXQ_MAX];struct sk_buff_head rx_skb[__MT_RXQ_MAX]; +struct tasklet_struct irq_tasklet;struct list_head txwi_cache;struct list_head rxwi_cache;
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c +3 -3
@@ -80,14 +80,14 @@ static irqreturn_t mt7615_irq_handler(int irq, void *dev_instance)if (!test_bit (MT76_STATE_INITIALIZED , &dev->mphy.state))return IRQ_NONE ; -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet);return IRQ_HANDLED ; }static void mt7615_irq_tasklet (struct tasklet_struct *t) { -struct mt7615_dev *dev =from_tasklet (dev, t, irq_tasklet); +struct mt7615_dev *dev =from_tasklet (dev, t, mt76.irq_tasklet);u32 intr, mask =0 , tx_mcu_mask =mt7615_tx_mcu_int_mask (dev);u32 mcu_int;
@@ -202,7 +202,7 @@ int mt7615_mmio_probe(struct device *pdev, void __iomem *mem_base, dev = container_of(mdev, struct mt7615_dev, mt76);mt76_mmio_init (&dev->mt76, mem_base); -tasklet_setup (&dev->irq_tasklet, mt7615_irq_tasklet); +tasklet_setup (&mdev->irq_tasklet, mt7615_irq_tasklet); dev->reg_map = map; dev->ops = ops;
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +1 -3
@@ -245,8 +245,6 @@ struct mt7615_dev { };const struct mt76_bus_ops *bus_ops; -struct tasklet_struct irq_tasklet; -struct mt7615_phy phy;u64 omac_mask;
@@ -416,7 +414,7 @@ static inline void mt7615_irq_enable(struct mt7615_dev *dev, u32 mask) {mt76_set_irq_mask (&dev->mt76,0 ,0 , mask); -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet); }static inline bool mt7615_firmware_offload (struct mt7615_dev *dev)
drivers/net/wireless/mediatek/mt76/mt7615/pci.c +1 -1
@@ -94,7 +94,7 @@ static int mt7615_pci_suspend(struct pci_dev *pdev, pm_message_t state)mt76_for_each_q_rx (mdev, i) {napi_disable (&mdev->napi[i]); } -tasklet_kill (&dev->irq_tasklet); +tasklet_kill (&mdev->irq_tasklet);mt7615_dma_reset (dev);
drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c +1 -1
@@ -122,7 +122,7 @@ void mt7615_unregister_device(struct mt7615_dev *dev)mt7615_tx_token_put (dev);mt7615_dma_cleanup (dev); -tasklet_disable (&dev->irq_tasklet); +tasklet_disable (&dev->mt76.irq_tasklet);mt76_free_device (&dev->mt76); }
drivers/net/wireless/mediatek/mt76/mt7915/init.c +1 -1
@@ -1180,7 +1180,7 @@ static void mt7915_stop_hardware(struct mt7915_dev *dev)mt7915_mcu_exit (dev);mt7915_tx_token_put (dev);mt7915_dma_cleanup (dev); -tasklet_disable (&dev->irq_tasklet); +tasklet_disable (&dev->mt76.irq_tasklet);if (is_mt7986 (&dev->mt76))mt7986_wmac_disable (dev);
drivers/net/wireless/mediatek/mt76/mt7915/mac.c +1 -1
@@ -1627,7 +1627,7 @@ void mt7915_mac_reset_work(struct work_struct *work) }local_bh_enable (); -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet);mt76_wr (dev,MT_MCU_INT_EVENT ,MT_MCU_INT_EVENT_RESET_DONE );mt7915_wait_reset_state (dev,MT_MCU_CMD_NORMAL_STATE );
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c +3 -3
@@ -916,7 +916,7 @@ static void mt7915_rx_poll_complete(struct mt76_dev *mdev,/* TODO: support 2/4/6/8 MSI-X vectors */ static void mt7915_irq_tasklet (struct tasklet_struct *t) { -struct mt7915_dev *dev =from_tasklet (dev, t, irq_tasklet); +struct mt7915_dev *dev =from_tasklet (dev, t, mt76.irq_tasklet);struct mtk_wed_device *wed = &dev->mt76.mmio.wed;u32 intr, intr1, mask;
@@ -1000,7 +1000,7 @@ irqreturn_t mt7915_irq_handler(int irq, void *dev_instance)if (!test_bit (MT76_STATE_INITIALIZED , &dev->mphy.state))return IRQ_NONE ; -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet);return IRQ_HANDLED ; }
@@ -1041,7 +1041,7 @@ struct mt7915_dev *mt7915_mmio_probe(struct device *pdev,if (ret) goto error; -tasklet_setup (&dev->irq_tasklet, mt7915_irq_tasklet); +tasklet_setup (&mdev->irq_tasklet, mt7915_irq_tasklet);return dev;
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +1 -2
@@ -308,7 +308,6 @@ struct mt7915_dev {u32 wfdma_mask;const struct mt76_bus_ops *bus_ops; -struct tasklet_struct irq_tasklet;struct mt7915_phy phy;/* monitor rx chain configured channel */
@@ -581,7 +580,7 @@ static inline void mt7915_irq_enable(struct mt7915_dev *dev, u32 mask)else mt76_set_irq_mask (&dev->mt76,0 ,0 , mask); -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet); }static inline void mt7915_irq_disable (struct mt7915_dev *dev,u32 mask)
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +1 -2
@@ -287,7 +287,6 @@ struct mt7921_dev {const struct mt76_bus_ops *bus_ops;struct mt7921_phy phy; -struct tasklet_struct irq_tasklet;struct work_struct reset_work; bool hw_full_reset:1;
@@ -395,7 +394,7 @@ static inline void mt7921_irq_enable(struct mt7921_dev *dev, u32 mask) {mt76_set_irq_mask (&dev->mt76,0 ,0 , mask); -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet); } static inline u32
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +4 -4
@@ -50,7 +50,7 @@ static irqreturn_t mt7921_irq_handler(int irq, void *dev_instance)if (!test_bit (MT76_STATE_INITIALIZED , &dev->mphy.state))return IRQ_NONE ; -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet);return IRQ_HANDLED ; }
@@ -122,7 +122,7 @@ static void mt7921e_unregister_device(struct mt7921_dev *dev)mt7921_wfsys_reset (dev);skb_queue_purge (&dev->mt76.mcu.res_q); -tasklet_disable (&dev->irq_tasklet); +tasklet_disable (&dev->mt76.irq_tasklet); }static u32 __mt7921_reg_addr (struct mt7921_dev *dev,u32 addr)
@@ -318,7 +318,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev, dev->fw_features = features; dev->hif_ops = &mt7921_pcie_ops;mt76_mmio_init (&dev->mt76,pcim_iomap_table (pdev)[0 ]); -tasklet_init (&dev->irq_tasklet, mt7921_irq_tasklet, (unsigned long )dev); +tasklet_init (&mdev->irq_tasklet, mt7921_irq_tasklet, (unsigned long )dev); dev->phy.dev = dev; dev->phy.mt76 = &dev->mt76.phy;
@@ -430,7 +430,7 @@ static int mt7921_pci_suspend(struct device *device)mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA ,0 );mt76_wr (dev,MT_PCIE_MAC_INT_ENABLE ,0x0 );synchronize_irq (pdev->irq); -tasklet_kill (&dev->irq_tasklet); +tasklet_kill (&mdev->irq_tasklet); err =mt7921_mcu_fw_pmctrl (dev);if (err)
drivers/net/wireless/mediatek/mt76/mt7996/init.c +1 -1
@@ -897,7 +897,7 @@ void mt7996_unregister_device(struct mt7996_dev *dev)mt7996_mcu_exit (dev);mt7996_tx_token_put (dev);mt7996_dma_cleanup (dev); -tasklet_disable (&dev->irq_tasklet); +tasklet_disable (&dev->mt76.irq_tasklet);mt76_free_device (&dev->mt76); }
drivers/net/wireless/mediatek/mt76/mt7996/mac.c +1 -1
@@ -1881,7 +1881,7 @@ void mt7996_mac_reset_work(struct work_struct *work) }local_bh_enable (); -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet);mt76_wr (dev,MT_MCU_INT_EVENT ,MT_MCU_INT_EVENT_RESET_DONE );mt7996_wait_reset_state (dev,MT_MCU_CMD_NORMAL_STATE );
drivers/net/wireless/mediatek/mt76/mt7996/mmio.c +3 -3
@@ -251,7 +251,7 @@ static void mt7996_rx_poll_complete(struct mt76_dev *mdev,/* TODO: support 2/4/6/8 MSI-X vectors */ static void mt7996_irq_tasklet (struct tasklet_struct *t) { -struct mt7996_dev *dev =from_tasklet (dev, t, irq_tasklet); +struct mt7996_dev *dev =from_tasklet (dev, t, mt76.irq_tasklet);u32 i, intr, mask, intr1;mt76_wr (dev,MT_INT_MASK_CSR ,0 );
@@ -308,7 +308,7 @@ irqreturn_t mt7996_irq_handler(int irq, void *dev_instance)if (!test_bit (MT76_STATE_INITIALIZED , &dev->mphy.state))return IRQ_NONE ; -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet);return IRQ_HANDLED ; }
@@ -349,7 +349,7 @@ struct mt7996_dev *mt7996_mmio_probe(struct device *pdev,if (ret) goto error; -tasklet_setup (&dev->irq_tasklet, mt7996_irq_tasklet); +tasklet_setup (&mdev->irq_tasklet, mt7996_irq_tasklet);mt76_wr (dev,MT_INT_MASK_CSR ,0 );
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h +1 -2
@@ -238,7 +238,6 @@ struct mt7996_dev {u32 q_wfdma_mask;const struct mt76_bus_ops *bus_ops; -struct tasklet_struct irq_tasklet;struct mt7996_phy phy;/* monitor rx chain configured channel */
@@ -468,7 +467,7 @@ static inline void mt7996_irq_enable(struct mt7996_dev *dev, u32 mask)else mt76_set_irq_mask (&dev->mt76,0 ,0 , mask); -tasklet_schedule (&dev->irq_tasklet); +tasklet_schedule (&dev->mt76.irq_tasklet); }static inline void mt7996_irq_disable (struct mt7996_dev *dev,u32 mask)
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 2/6 wifi: mt76: add mt76_connac_irq_enable utility routine
In reply to Lorenzo BianconiMost of connac based drivers (mt7921, mt7615, mt7663) share the same code to enable interrupts. Move it in mt76_connac module.
--- drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 5 +++-- drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 4 +--- drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 7 ------- drivers/net/wireless/mediatek/mt76/mt76_connac.h | 6 ++++++ drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 8 ++++---- drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 7 ------- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 13 ++++++------- 7 files changed, 20 insertions(+), 30 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7615/dma.c +3 -2
@@ -76,7 +76,8 @@ static int mt7615_poll_tx(struct napi_struct *napi, int budget)mt76_queue_tx_cleanup (dev, dev->mt76.q_mcu[MT_MCUQ_WM ], false);if (napi_complete (napi)) -mt7615_irq_enable (dev,mt7615_tx_mcu_int_mask (dev)); +mt76_connac_irq_enable (&dev->mt76, +mt7615_tx_mcu_int_mask (dev));mt76_connac_pm_unref (&dev->mphy, &dev->pm);
@@ -297,7 +298,7 @@ int mt7615_dma_init(struct mt7615_dev *dev)else mask |=MT_INT_MCU_CMD ; -mt7615_irq_enable (dev, mask); +mt76_connac_irq_enable (&dev->mt76, mask);mt7615_dma_start (dev);
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c +1 -3
@@ -66,9 +66,7 @@ const u32 mt7663e_reg_map[] = {static void mt7615_rx_poll_complete (struct mt76_dev *mdev,enum mt76_rxq_id q) { - struct mt7615_dev *dev = container_of(mdev, struct mt7615_dev, mt76); - -mt7615_irq_enable (dev,MT_INT_RX_DONE (q)); +mt76_connac_irq_enable (mdev,MT_INT_RX_DONE (q)); }static irqreturn_t mt7615_irq_handler (int irq,void *dev_instance)
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +0 -7
@@ -410,13 +410,6 @@ void mt7615_mcu_rx_event(struct mt7615_dev *dev, struct sk_buff *skb);int mt7615_mcu_rdd_send_pattern (struct mt7615_dev *dev);int mt7615_mcu_fw_log_2_host (struct mt7615_dev *dev,u8 ctrl); -static inline void mt7615_irq_enable (struct mt7615_dev *dev,u32 mask) -{ -mt76_set_irq_mask (&dev->mt76,0 ,0 , mask); - -tasklet_schedule (&dev->mt76.irq_tasklet); -} -static inline bool mt7615_firmware_offload (struct mt7615_dev *dev) {return dev->fw_ver >MT7615_FIRMWARE_V2 ;
drivers/net/wireless/mediatek/mt76/mt76_connac.h +6 -0
@@ -279,6 +279,12 @@ static inline u8 mt76_connac_spe_idx(u8 antenna_mask)return ant_to_spe[antenna_mask]; } +static inline void mt76_connac_irq_enable (struct mt76_dev *dev,u32 mask) +{ +mt76_set_irq_mask (dev,0 ,0 , mask); +tasklet_schedule (&dev->irq_tasklet); +} +int mt76_connac_pm_wake (struct mt76_phy *phy,struct mt76_connac_pm *pm);void mt76_connac_power_save_sched (struct mt76_phy *phy,struct mt76_connac_pm *pm);
drivers/net/wireless/mediatek/mt76/mt7921/dma.c +4 -4
@@ -19,7 +19,7 @@ static int mt7921_poll_tx(struct napi_struct *napi, int budget)mt76_connac_tx_cleanup (&dev->mt76);if (napi_complete (napi)) -mt7921_irq_enable (dev,MT_INT_TX_DONE_ALL ); +mt76_connac_irq_enable (&dev->mt76,MT_INT_TX_DONE_ALL );mt76_connac_pm_unref (&dev->mphy, &dev->pm);return 0 ;
@@ -123,9 +123,9 @@ static int mt7921_dma_enable(struct mt7921_dev *dev)mt76_set (dev,MT_WFDMA_DUMMY_CR ,MT_WFDMA_NEED_REINIT );/* enable interrupts for TX/RX rings */ -mt7921_irq_enable (dev, -MT_INT_RX_DONE_ALL |MT_INT_TX_DONE_ALL | -MT_INT_MCU_CMD ); +mt76_connac_irq_enable (&dev->mt76, +MT_INT_RX_DONE_ALL |MT_INT_TX_DONE_ALL | +MT_INT_MCU_CMD );mt76_set (dev,MT_MCU2HOST_SW_INT_ENA ,MT_MCU_CMD_WAKE_RX_PCIE );return 0 ;
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -7
@@ -390,13 +390,6 @@ void mt7921_mcu_rx_event(struct mt7921_dev *dev, struct sk_buff *skb);int mt7921_mcu_set_rxfilter (struct mt7921_dev *dev,u32 fif,u8 bit_op,u32 bit_map); -static inline void mt7921_irq_enable (struct mt7921_dev *dev,u32 mask) -{ -mt76_set_irq_mask (&dev->mt76,0 ,0 , mask); - -tasklet_schedule (&dev->mt76.irq_tasklet); -} -static inline u32 mt7921_reg_map_l1 (struct mt7921_dev *dev,u32 addr) {
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +6 -7
@@ -31,14 +31,12 @@ MODULE_PARM_DESC(disable_aspm, "disable PCI ASPM support");static void mt7921_rx_poll_complete (struct mt76_dev *mdev,enum mt76_rxq_id q) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); -if (q ==MT_RXQ_MAIN ) -mt7921_irq_enable (dev,MT_INT_RX_DONE_DATA ); +mt76_connac_irq_enable (mdev,MT_INT_RX_DONE_DATA );else if (q ==MT_RXQ_MCU_WA ) -mt7921_irq_enable (dev,MT_INT_RX_DONE_WM2 ); +mt76_connac_irq_enable (mdev,MT_INT_RX_DONE_WM2 );else -mt7921_irq_enable (dev,MT_INT_RX_DONE_WM ); +mt76_connac_irq_enable (mdev,MT_INT_RX_DONE_WM ); }static irqreturn_t mt7921_irq_handler (int irq,void *dev_instance)
@@ -474,8 +472,9 @@ static int mt7921_pci_resume(struct device *device)/* enable interrupt */ mt76_wr (dev,MT_PCIE_MAC_INT_ENABLE ,0xff ); -mt7921_irq_enable (dev,MT_INT_RX_DONE_ALL |MT_INT_TX_DONE_ALL | -MT_INT_MCU_CMD ); +mt76_connac_irq_enable (&dev->mt76, +MT_INT_RX_DONE_ALL |MT_INT_TX_DONE_ALL | +MT_INT_MCU_CMD );mt76_set (dev,MT_MCU2HOST_SW_INT_ENA ,MT_MCU_CMD_WAKE_RX_PCIE );/* put dma enabled */
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 3/6 wifi: mt76: get rid of unused sta_ps callbacks
In reply to Lorenzo Bianconista_ps callback is just an empty stub for most of the drivers, so get rid of them.
--- drivers/net/wireless/mediatek/mt76/mac80211.c | 3 ++- drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 5 ----- drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 1 - drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 1 - drivers/net/wireless/mediatek/mt76/mt7615/sdio.c | 1 - drivers/net/wireless/mediatek/mt76/mt7615/usb.c | 1 - drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 4 ---- drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 1 - drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 1 - drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 5 ----- drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 1 - drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 1 - drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 1 - drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 1 - drivers/net/wireless/mediatek/mt76/mt7996/mac.c | 4 ---- drivers/net/wireless/mediatek/mt76/mt7996/mmio.c | 1 - drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h | 1 - 17 files changed, 2 insertions(+), 31 deletions(-)
drivers/net/wireless/mediatek/mt76/mac80211.c +2 -1
@@ -1304,7 +1304,8 @@ mt76_check_sta(struct mt76_dev *dev, struct sk_buff *skb)if (ps)set_bit (MT_WCID_FLAG_PS , &wcid->flags); - dev->drv->sta_ps (dev, sta, ps); +if (dev->drv->sta_ps) + dev->drv->sta_ps (dev, sta, ps);if (!ps)clear_bit (MT_WCID_FLAG_PS , &wcid->flags);
drivers/net/wireless/mediatek/mt76/mt7615/mac.c +0 -5
@@ -655,11 +655,6 @@ static int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)return 0 ; } -void mt7615_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps) -{ -} -EXPORT_SYMBOL_GPL (mt7615_sta_ps); - static u16 mt7615_mac_tx_rate_val(struct mt7615_dev *dev, struct mt76_phy *mphy,
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c +0 -1
@@ -179,7 +179,6 @@ int mt7615_mmio_probe(struct device *pdev, void __iomem *mem_base, .rx_check = mt7615_rx_check, .rx_skb = mt7615_queue_rx_skb, .rx_poll_complete = mt7615_rx_poll_complete, - .sta_ps = mt7615_sta_ps, .sta_add = mt7615_mac_sta_add, .sta_remove = mt7615_mac_sta_remove, .update_survey = mt7615_update_channel,
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +0 -1
@@ -511,7 +511,6 @@ void mt7615_tx_token_put(struct mt7615_dev *dev);bool mt7615_rx_check (struct mt76_dev *mdev,void *data,int len);void mt7615_queue_rx_skb (struct mt76_dev *mdev,enum mt76_rxq_id q,struct sk_buff *skb,u32 *info); -void mt7615_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps);int mt7615_mac_sta_add (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta); void mt7615_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
drivers/net/wireless/mediatek/mt76/mt7615/sdio.c +0 -1
@@ -84,7 +84,6 @@ static int mt7663s_probe(struct sdio_func *func, .tx_status_data = mt7663_usb_sdio_tx_status_data, .rx_skb = mt7615_queue_rx_skb, .rx_check = mt7615_rx_check, - .sta_ps = mt7615_sta_ps, .sta_add = mt7615_mac_sta_add, .sta_remove = mt7615_mac_sta_remove, .update_survey = mt7615_update_channel,
drivers/net/wireless/mediatek/mt76/mt7615/usb.c +0 -1
@@ -120,7 +120,6 @@ static int mt7663u_probe(struct usb_interface *usb_intf, .tx_status_data = mt7663_usb_sdio_tx_status_data, .rx_skb = mt7615_queue_rx_skb, .rx_check = mt7615_rx_check, - .sta_ps = mt7615_sta_ps, .sta_add = mt7615_mac_sta_add, .sta_remove = mt7615_mac_sta_remove, .update_survey = mt7615_update_channel,
drivers/net/wireless/mediatek/mt76/mt7915/mac.c +0 -4
@@ -73,10 +73,6 @@ static struct mt76_wcid *mt7915_rx_get_wcid(struct mt7915_dev *dev,return &sta->vif->sta.wcid; } -void mt7915_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps) -{ -} -bool mt7915_mac_wtbl_update (struct mt7915_dev *dev,int idx,u32 mask) { mt76_rmw(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_WLAN_IDX,
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c +0 -1
@@ -1022,7 +1022,6 @@ struct mt7915_dev *mt7915_mmio_probe(struct device *pdev, .rx_skb = mt7915_queue_rx_skb, .rx_check = mt7915_rx_check, .rx_poll_complete = mt7915_rx_poll_complete, - .sta_ps = mt7915_sta_ps, .sta_add = mt7915_mac_sta_add, .sta_remove = mt7915_mac_sta_remove, .update_survey = mt7915_update_channel,
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +0 -1
@@ -630,7 +630,6 @@ void mt7915_tx_token_put(struct mt7915_dev *dev);void mt7915_queue_rx_skb (struct mt76_dev *mdev,enum mt76_rxq_id q,struct sk_buff *skb,u32 *info);bool mt7915_rx_check (struct mt76_dev *mdev,void *data,int len); -void mt7915_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps);void mt7915_stats_work (struct work_struct *work);int mt76_dfs_start_rdd (struct mt7915_dev *dev,bool force);int mt7915_dfs_init_radar_detector (struct mt7915_phy *phy);
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +0 -5
@@ -32,11 +32,6 @@ static struct mt76_wcid *mt7921_rx_get_wcid(struct mt7921_dev *dev,return &sta->vif->sta.wcid; } -void mt7921_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps) -{ -} -EXPORT_SYMBOL_GPL (mt7921_sta_ps); -bool mt7921_mac_wtbl_update (struct mt7921_dev *dev,int idx,u32 mask) { mt76_rmw(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_WLAN_IDX,
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -1
@@ -470,7 +470,6 @@ void mt7921_tx_token_put(struct mt7921_dev *dev);bool mt7921_rx_check (struct mt76_dev *mdev,void *data,int len);void mt7921_queue_rx_skb (struct mt76_dev *mdev,enum mt76_rxq_id q,struct sk_buff *skb,u32 *info); -void mt7921_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps);void mt7921_stats_work (struct work_struct *work);void mt7921_set_stream_he_caps (struct mt7921_phy *phy);void mt7921_update_channel (struct mt76_phy *mphy);
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +0 -1
@@ -241,7 +241,6 @@ static int mt7921_pci_probe(struct pci_dev *pdev, .rx_check = mt7921_rx_check, .rx_skb = mt7921_queue_rx_skb, .rx_poll_complete = mt7921_rx_poll_complete, - .sta_ps = mt7921_sta_ps, .sta_add = mt7921_mac_sta_add, .sta_assoc = mt7921_mac_sta_assoc, .sta_remove = mt7921_mac_sta_remove,
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +0 -1
@@ -99,7 +99,6 @@ static int mt7921s_probe(struct sdio_func *func, .tx_status_data = mt7921_usb_sdio_tx_status_data, .rx_skb = mt7921_queue_rx_skb, .rx_check = mt7921_rx_check, - .sta_ps = mt7921_sta_ps, .sta_add = mt7921_mac_sta_add, .sta_assoc = mt7921_mac_sta_assoc, .sta_remove = mt7921_mac_sta_remove,
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +0 -1
@@ -183,7 +183,6 @@ static int mt7921u_probe(struct usb_interface *usb_intf, .tx_status_data = mt7921_usb_sdio_tx_status_data, .rx_skb = mt7921_queue_rx_skb, .rx_check = mt7921_rx_check, - .sta_ps = mt7921_sta_ps, .sta_add = mt7921_mac_sta_add, .sta_assoc = mt7921_mac_sta_assoc, .sta_remove = mt7921_mac_sta_remove,
drivers/net/wireless/mediatek/mt76/mt7996/mac.c +0 -4
@@ -78,10 +78,6 @@ static struct mt76_wcid *mt7996_rx_get_wcid(struct mt7996_dev *dev,return &sta->vif->sta.wcid; } -void mt7996_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps) -{ -} -bool mt7996_mac_wtbl_update (struct mt7996_dev *dev,int idx,u32 mask) { mt76_rmw(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_WLAN_IDX,
drivers/net/wireless/mediatek/mt76/mt7996/mmio.c +0 -1
@@ -330,7 +330,6 @@ struct mt7996_dev *mt7996_mmio_probe(struct device *pdev, .rx_skb = mt7996_queue_rx_skb, .rx_check = mt7996_rx_check, .rx_poll_complete = mt7996_rx_poll_complete, - .sta_ps = mt7996_sta_ps, .sta_add = mt7996_mac_sta_add, .sta_remove = mt7996_mac_sta_remove, .update_survey = mt7996_update_channel,
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h +0 -1
@@ -511,7 +511,6 @@ void mt7996_tx_token_put(struct mt7996_dev *dev);void mt7996_queue_rx_skb (struct mt76_dev *mdev,enum mt76_rxq_id q,struct sk_buff *skb,u32 *info);bool mt7996_rx_check (struct mt76_dev *mdev,void *data,int len); -void mt7996_sta_ps (struct mt76_dev *mdev,struct ieee80211_sta *sta,bool ps);void mt7996_stats_work (struct work_struct *work);int mt76_dfs_start_rdd (struct mt7996_dev *dev,bool force);int mt7996_dfs_init_radar_detector (struct mt7996_phy *phy);
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 4/6 wifi: mt76: add mt76_connac_gen_ppe_thresh utility routine
In reply to Lorenzo Bianconigen_ppe_thresh routine is shared between mt7615, mt7915, mt7921 and mt7996 so move it in mt76_connac module.
--- .../net/wireless/mediatek/mt76/mt76_connac.h | 1 + .../wireless/mediatek/mt76/mt76_connac_mac.c | 21 +++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/init.c | 23 +------------------ .../net/wireless/mediatek/mt76/mt7921/main.c | 23 +------------------ .../net/wireless/mediatek/mt76/mt7996/init.c | 23 +------------------ 5 files changed, 25 insertions(+), 66 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76_connac.h +1 -0
@@ -359,6 +359,7 @@ mt76_connac_mutex_release(struct mt76_dev *dev, struct mt76_connac_pm *pm)mutex_unlock (&dev->mutex); } +void mt76_connac_gen_ppe_thresh (u8 *he_ppet,int nss);int mt76_connac_init_tx_queues (struct mt76_phy *phy,int idx,int n_desc,int ring_base,u32 flags); void mt76_connac_write_hw_txp(struct mt76_dev *dev,
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +21 -0
@@ -9,6 +9,27 @@#define HE_PREP (f, m, v) le16_encode_bits(le32_get_bits(v, MT_CRXV_HE_##m),\ IEEE80211_RADIOTAP_HE_##f) +void mt76_connac_gen_ppe_thresh (u8 *he_ppet,int nss) +{ +static const u8 ppet16_ppet8_ru3_ru0[] = {0x1c ,0xc7 ,0x71 }; +u8 i, ppet_bits, ppet_size, ru_bit_mask =0x7 ;/* HE80 */ + + he_ppet[0 ] =FIELD_PREP (IEEE80211_PPE_THRES_NSS_MASK , nss -1 ) | +FIELD_PREP (IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK , + ru_bit_mask); + + ppet_bits =IEEE80211_PPE_THRES_INFO_PPET_SIZE * + nss *hweight8 (ru_bit_mask) *2 ; + ppet_size =DIV_ROUND_UP (ppet_bits,8 ); + +for (i =0 ; i < ppet_size -1 ; i++) + he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ]; + + he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ] & + (0xff >> (8 - (ppet_bits -1 ) %8 )); +} +EXPORT_SYMBOL_GPL (mt76_connac_gen_ppe_thresh); +int mt76_connac_pm_wake (struct mt76_phy *phy,struct mt76_connac_pm *pm) {struct mt76_dev *dev = phy->dev;
drivers/net/wireless/mediatek/mt76/mt7915/init.c +1 -22
@@ -931,27 +931,6 @@ mt7915_set_stream_he_txbf_caps(struct mt7915_phy *phy, } } -static void -mt7915_gen_ppe_thresh (u8 *he_ppet,int nss) -{ -u8 i, ppet_bits, ppet_size, ru_bit_mask =0x7 ;/* HE80 */ -static const u8 ppet16_ppet8_ru3_ru0[] = {0x1c ,0xc7 ,0x71 }; - - he_ppet[0 ] =FIELD_PREP (IEEE80211_PPE_THRES_NSS_MASK , nss -1 ) | -FIELD_PREP (IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK , - ru_bit_mask); - - ppet_bits =IEEE80211_PPE_THRES_INFO_PPET_SIZE * - nss *hweight8 (ru_bit_mask) *2 ; - ppet_size =DIV_ROUND_UP (ppet_bits,8 ); - -for (i =0 ; i < ppet_size -1 ; i++) - he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ]; - - he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ] & - (0xff >> (8 - (ppet_bits -1 ) %8 )); -} -static int mt7915_init_he_caps (struct mt7915_phy *phy,enum nl80211_band band,struct ieee80211_sband_iftype_data *data)
@@ -1101,7 +1080,7 @@ mt7915_init_he_caps(struct mt7915_phy *phy, enum nl80211_band band,memset (he_cap->ppe_thres,0 ,sizeof (he_cap->ppe_thres));if (he_cap_elem->phy_cap_info[6 ] &IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT ) { -mt7915_gen_ppe_thresh (he_cap->ppe_thres, nss); +mt76_connac_gen_ppe_thresh (he_cap->ppe_thres, nss); }else { he_cap_elem->phy_cap_info[9 ] |= u8_encode_bits(IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_16US,
drivers/net/wireless/mediatek/mt76/mt7921/main.c +1 -22
@@ -9,27 +9,6 @@#include "mt7921.h" #include "mcu.h" -static void -mt7921_gen_ppe_thresh (u8 *he_ppet,int nss) -{ -u8 i, ppet_bits, ppet_size, ru_bit_mask =0x7 ;/* HE80 */ -static const u8 ppet16_ppet8_ru3_ru0[] = {0x1c ,0xc7 ,0x71 }; - - he_ppet[0 ] =FIELD_PREP (IEEE80211_PPE_THRES_NSS_MASK , nss -1 ) | -FIELD_PREP (IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK , - ru_bit_mask); - - ppet_bits =IEEE80211_PPE_THRES_INFO_PPET_SIZE * - nss *hweight8 (ru_bit_mask) *2 ; - ppet_size =DIV_ROUND_UP (ppet_bits,8 ); - -for (i =0 ; i < ppet_size -1 ; i++) - he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ]; - - he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ] & - (0xff >> (8 - (ppet_bits -1 ) %8 )); -} -static int mt7921_init_he_caps (struct mt7921_phy *phy,enum nl80211_band band,struct ieee80211_sband_iftype_data *data)
@@ -168,7 +147,7 @@ mt7921_init_he_caps(struct mt7921_phy *phy, enum nl80211_band band,memset (he_cap->ppe_thres,0 ,sizeof (he_cap->ppe_thres));if (he_cap_elem->phy_cap_info[6 ] &IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT ) { -mt7921_gen_ppe_thresh (he_cap->ppe_thres, nss); +mt76_connac_gen_ppe_thresh (he_cap->ppe_thres, nss); }else { he_cap_elem->phy_cap_info[9 ] |= u8_encode_bits(IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_16US,
drivers/net/wireless/mediatek/mt76/mt7996/init.c +1 -22
@@ -552,27 +552,6 @@ mt7996_set_stream_he_txbf_caps(struct mt7996_phy *phy, elem->phy_cap_info[7 ] |= c; } -static void -mt7996_gen_ppe_thresh (u8 *he_ppet,int nss) -{ -u8 i, ppet_bits, ppet_size, ru_bit_mask =0x7 ;/* HE80 */ -static const u8 ppet16_ppet8_ru3_ru0[] = {0x1c ,0xc7 ,0x71 }; - - he_ppet[0 ] =FIELD_PREP (IEEE80211_PPE_THRES_NSS_MASK , nss -1 ) | -FIELD_PREP (IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK , - ru_bit_mask); - - ppet_bits =IEEE80211_PPE_THRES_INFO_PPET_SIZE * - nss *hweight8 (ru_bit_mask) *2 ; - ppet_size =DIV_ROUND_UP (ppet_bits,8 ); - -for (i =0 ; i < ppet_size -1 ; i++) - he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ]; - - he_ppet[i +1 ] = ppet16_ppet8_ru3_ru0[i %3 ] & - (0xff >> (8 - (ppet_bits -1 ) %8 )); -} - static void mt7996_init_he_caps(struct mt7996_phy *phy, enum nl80211_band band, struct ieee80211_sband_iftype_data *data,
@@ -678,7 +657,7 @@ mt7996_init_he_caps(struct mt7996_phy *phy, enum nl80211_band band,memset (he_cap->ppe_thres,0 ,sizeof (he_cap->ppe_thres));if (he_cap_elem->phy_cap_info[6 ] &IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT ) { -mt7996_gen_ppe_thresh (he_cap->ppe_thres, nss); +mt76_connac_gen_ppe_thresh (he_cap->ppe_thres, nss); }else { he_cap_elem->phy_cap_info[9 ] |= u8_encode_bits(IEEE80211_HE_PHY_CAP9_NOMINAL_PKT_PADDING_16US,
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 5/6 wifi: mt76: mt7921: get rid of eeprom.h
In reply to Lorenzo Bianconieeprom.h is mostly empty for mt7921, so get rid of it.
--- .../wireless/mediatek/mt76/mt7921/debugfs.c | 1 - .../wireless/mediatek/mt76/mt7921/eeprom.h | 30 ------------------- .../net/wireless/mediatek/mt76/mt7921/init.c | 1 - .../net/wireless/mediatek/mt76/mt7921/mcu.c | 1 - .../wireless/mediatek/mt76/mt7921/mt7921.h | 11 +++++++ 5 files changed, 11 insertions(+), 33 deletions(-) delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.h
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +0 -1
@@ -2,7 +2,6 @@/* Copyright (C) 2020 MediaTek Inc. */ #include "mt7921.h" -#include "eeprom.h" static int mt7921_reg_set (void *data,u64 val)
drivers/net/wireless/mediatek/mt76/mt7921/eeprom.h deleted +0 -30
@@ -1,30 +0,0 @@ -/* SPDX-License-Identifier: ISC */ -/* Copyright (C) 2020 MediaTek Inc. */ - -#ifndef __MT7921_EEPROM_H -#define __MT7921_EEPROM_H - -#include "mt7921.h" - -enum mt7921_eeprom_field { -MT_EE_CHIP_ID =0x000 , -MT_EE_VERSION =0x002 , -MT_EE_MAC_ADDR =0x004 , -MT_EE_WIFI_CONF =0x07c , -MT_EE_HW_TYPE =0x55b , - __MT_EE_MAX =0x9ff -}; - -#define MT_EE_WIFI_CONF_TX_MASK BIT(0) -#define MT_EE_WIFI_CONF_BAND_SEL GENMASK(3, 2) - -#define MT_EE_HW_TYPE_ENCAP BIT(0) - -enum mt7921_eeprom_band { -MT_EE_NA , -MT_EE_5GHZ , -MT_EE_2GHZ , -MT_EE_DUAL_BAND , -}; - -#endif
drivers/net/wireless/mediatek/mt76/mt7921/init.c +0 -1
@@ -6,7 +6,6 @@#include "mt7921.h" #include "mac.h" #include "mcu.h" -#include "eeprom.h" static const struct ieee80211_iface_limit if_limits[] = { {
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +0 -1
@@ -5,7 +5,6 @@#include <linux/firmware.h> #include "mt7921.h" #include "mt7921_trace.h" -#include "eeprom.h" #include "mcu.h" #include "mac.h"
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +11 -0
@@ -266,6 +266,17 @@ struct mt7921_phy {bool roc_grant; }; +enum mt7921_eeprom_field { +MT_EE_CHIP_ID =0x000 , +MT_EE_VERSION =0x002 , +MT_EE_MAC_ADDR =0x004 , +MT_EE_WIFI_CONF =0x07c , +MT_EE_HW_TYPE =0x55b , + __MT_EE_MAX =0x9ff +}; + +#define MT_EE_HW_TYPE_ENCAP BIT(0) +#define mt7921_init_reset (dev) ((dev)->hif_ops->init_reset(dev))#define mt7921_dev_reset (dev) ((dev)->hif_ops->reset(dev))#define mt7921_mcu_init (dev) ((dev)->hif_ops->mcu_init(dev))
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 6/6 wifi: mt76: move shared mac definitions in mt76_connac2_mac.h
In reply to Lorenzo BianconiMove some mac shared definitions between mt7996, mt7921 and mt7915 in mt76_connac2_mac.h.
--- .../net/wireless/mediatek/mt76/mt7615/mac.h | 12 ----- .../net/wireless/mediatek/mt76/mt76_connac.h | 14 +++++ .../wireless/mediatek/mt76/mt76_connac2_mac.h | 22 ++++++++ .../net/wireless/mediatek/mt76/mt7915/mac.h | 33 +----------- .../net/wireless/mediatek/mt76/mt7921/dma.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/init.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 13 ++++- .../net/wireless/mediatek/mt76/mt7921/mac.h | 53 ------------------- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/pci.c | 2 +- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/sdio.c | 2 +- .../wireless/mediatek/mt76/mt7921/sdio_mac.c | 2 +- .../wireless/mediatek/mt76/mt7921/sdio_mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/usb.c | 2 +- .../wireless/mediatek/mt76/mt7921/usb_mac.c | 2 +- .../net/wireless/mediatek/mt76/mt7996/mac.h | 12 ----- 17 files changed, 59 insertions(+), 120 deletions(-) delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mac.h
drivers/net/wireless/mediatek/mt76/mt7615/mac.h +0 -12
@@ -19,18 +19,6 @@#define MT_RXD0_NORMAL_GROUP_3 BIT(27)#define MT_RXD0_NORMAL_GROUP_4 BIT(28) -enum rx_pkt_type { -PKT_TYPE_TXS , -PKT_TYPE_TXRXV , -PKT_TYPE_NORMAL , -PKT_TYPE_RX_DUP_RFB , -PKT_TYPE_RX_TMR , -PKT_TYPE_RETRIEVE , -PKT_TYPE_TXRX_NOTIFY , -PKT_TYPE_RX_EVENT , -PKT_TYPE_NORMAL_MCU , -}; -#define MT_RXD1_NORMAL_BSSID GENMASK(31, 26)#define MT_RXD1_NORMAL_PAYLOAD_FORMAT GENMASK(25, 24)#define MT_RXD1_FIRST_AMSDU_FRAME GENMASK(1, 0)
drivers/net/wireless/mediatek/mt76/mt76_connac.h +14 -0
@@ -6,6 +6,20 @@#include "mt76.h" +enum rx_pkt_type { +PKT_TYPE_TXS , +PKT_TYPE_TXRXV , +PKT_TYPE_NORMAL , +PKT_TYPE_RX_DUP_RFB , +PKT_TYPE_RX_TMR , +PKT_TYPE_RETRIEVE , +PKT_TYPE_TXRX_NOTIFY , +PKT_TYPE_RX_EVENT , +PKT_TYPE_NORMAL_MCU , +PKT_TYPE_RX_FW_MONITOR =0x0c , +PKT_TYPE_TXRX_NOTIFY_V0 =0x18 , +}; +#define MT76_CONNAC_SCAN_IE_LEN 600#define MT76_CONNAC_MAX_NUM_SCHED_SCAN_INTERVAL 10#define MT76_CONNAC_MAX_TIME_SCHED_SCAN_INTERVAL U16_MAX
drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h +22 -0
@@ -32,6 +32,16 @@ enum { MT_LMAC_PSMP0, }; +#define MT_TX_FREE_MSDU_CNT GENMASK(9, 0) +#define MT_TX_FREE_WLAN_ID GENMASK(23, 14) +#define MT_TX_FREE_LATENCY GENMASK(12, 0) +/* 0: success, others: dropped */ +#define MT_TX_FREE_STATUS GENMASK(14, 13) +#define MT_TX_FREE_MSDU_ID GENMASK(30, 16) +#define MT_TX_FREE_PAIR BIT(31) +/* will support this field in further revision */ +#define MT_TX_FREE_RATE GENMASK(13, 0) +#define MT_TXD0_Q_IDX GENMASK(31, 25)#define MT_TXD0_PKT_FMT GENMASK(24, 23)#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16)
@@ -166,6 +176,15 @@ enum {#define MT_TXS7_MPDU_RETRY_CNT GENMASK(31, 23) +/* RXD DW0 */ +#define MT_RXD0_LENGTH GENMASK(15, 0) +#define MT_RXD0_PKT_FLAG GENMASK(19, 16) +#define MT_RXD0_PKT_TYPE GENMASK(31, 27) + +#define MT_RXD0_NORMAL_ETH_TYPE_OFS GENMASK(22, 16) +#define MT_RXD0_NORMAL_IP_SUM BIT(23) +#define MT_RXD0_NORMAL_UDP_TCP_SUM BIT(24) +/* RXD DW1 */ #define MT_RXD1_NORMAL_WLAN_IDX GENMASK(9, 0)#define MT_RXD1_NORMAL_GROUP_1 BIT(11)
@@ -308,6 +327,9 @@ enum {#define MT_CRXV_FOE_HI GENMASK(6, 0)#define MT_CRXV_FOE_SHIFT 13 +#define MT_CT_PARSE_LEN 72 +#define MT_CT_DMA_BUF_NUM 2 +#define MT_CT_INFO_APPLY_TXD BIT(0)#define MT_CT_INFO_COPY_HOST_TXD_ALL BIT(1)#define MT_CT_INFO_MGMT_FRAME BIT(2)
drivers/net/wireless/mediatek/mt76/mt7915/mac.h +1 -32
@@ -6,43 +6,12 @@#include "../mt76_connac2_mac.h" -#define MT_CT_PARSE_LEN 72 -#define MT_CT_DMA_BUF_NUM 2 - -#define MT_RXD0_LENGTH GENMASK(15, 0) -#define MT_RXD0_PKT_TYPE GENMASK(31, 27) - -#define MT_RXD0_NORMAL_ETH_TYPE_OFS GENMASK(22, 16) -#define MT_RXD0_NORMAL_IP_SUM BIT(23) -#define MT_RXD0_NORMAL_UDP_TCP_SUM BIT(24) - -enum rx_pkt_type { -PKT_TYPE_TXS , -PKT_TYPE_TXRXV , -PKT_TYPE_NORMAL , -PKT_TYPE_RX_DUP_RFB , -PKT_TYPE_RX_TMR , -PKT_TYPE_RETRIEVE , -PKT_TYPE_TXRX_NOTIFY , -PKT_TYPE_RX_EVENT , -PKT_TYPE_RX_FW_MONITOR =0x0c , -PKT_TYPE_TXRX_NOTIFY_V0 =0x18 , -}; -#define MT_TX_FREE_VER GENMASK(18, 16) -#define MT_TX_FREE_MSDU_CNT GENMASK(9, 0) -#define MT_TX_FREE_MSDU_CNT_V0 GENMASK(6, 0) -#define MT_TX_FREE_WLAN_ID GENMASK(23, 14) -#define MT_TX_FREE_LATENCY GENMASK(12, 0) +#define MT_TX_FREE_MSDU_CNT_V0 GENMASK(6, 0)/* 0: success, others: dropped */ -#define MT_TX_FREE_MSDU_ID GENMASK(30, 16) -#define MT_TX_FREE_PAIR BIT(31)#define MT_TX_FREE_MPDU_HEADER BIT(30)#define MT_TX_FREE_MSDU_ID_V3 GENMASK(14, 0) -/* will support this field in further revision */ -#define MT_TX_FREE_RATE GENMASK(13, 0) -#define MT_TXS5_F0_FINAL_MPDU BIT(31)#define MT_TXS5_F0_QOS BIT(30)#define MT_TXS5_F0_TX_COUNT GENMASK(29, 25)
drivers/net/wireless/mediatek/mt76/mt7921/dma.c +1 -1
@@ -3,7 +3,7 @@#include "mt7921.h" #include "../dma.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" static int mt7921_poll_tx (struct napi_struct *napi,int budget) {
drivers/net/wireless/mediatek/mt76/mt7921/init.c +1 -1
@@ -4,7 +4,7 @@#include <linux/etherdevice.h> #include <linux/firmware.h> #include "mt7921.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #include "mcu.h" static const struct ieee80211_iface_limit if_limits[] = {
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +12 -1
@@ -6,9 +6,20 @@#include <linux/timekeeping.h> #include "mt7921.h" #include "../dma.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #include "mcu.h" +#define MT_WTBL_TXRX_CAP_RATE_OFFSET 7 +#define MT_WTBL_TXRX_RATE_G2_HE 24 +#define MT_WTBL_TXRX_RATE_G2 12 + +#define MT_WTBL_AC0_CTT_OFFSET 20 + +static u32 mt7921_mac_wtbl_lmac_addr (int idx,u8 offset) +{ +return MT_WTBL_LMAC_OFFS (idx,0 ) + offset *4 ; +} +static struct mt76_wcid *mt7921_rx_get_wcid (struct mt7921_dev *dev,u16 idx,bool unicast) {
drivers/net/wireless/mediatek/mt76/mt7921/mac.h deleted +0 -53
53 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +1 -1
@@ -6,7 +6,7 @@#include "mt7921.h" #include "mt7921_trace.h" #include "mcu.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #define MT_STA_BFER BIT(0)#define MT_STA_BFEE BIT(1)
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +1 -1
@@ -8,7 +8,7 @@#include <linux/pci.h> #include "mt7921.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #include "mcu.h" #include "../trace.h"
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +1 -1
@@ -3,7 +3,7 @@#include "mt7921.h" #include "../dma.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, enum mt76_txq_id qid, struct mt76_wcid *wcid,
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +1 -1
@@ -13,7 +13,7 @@#include "mt7921.h" #include "../sdio.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #include "mcu.h" static const struct sdio_device_id mt7921s_table[] = {
drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c +1 -1
@@ -4,7 +4,7 @@#include <linux/iopoll.h> #include <linux/mmc/sdio_func.h> #include "mt7921.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #include "../sdio.h" static void mt7921s_enable_irq (struct mt76_dev *dev)
drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c +1 -1
@@ -8,7 +8,7 @@#include "mt7921.h" #include "../sdio.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" #include "mcu.h" #include "regs.h"
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +1 -1
@@ -10,7 +10,7 @@#include "mt7921.h" #include "mcu.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" static const struct usb_device_id mt7921u_device_table[] = { {USB_DEVICE_AND_INTERFACE_INFO (0x0e8d ,0x7961 ,0xff ,0xff ,0xff ),
drivers/net/wireless/mediatek/mt76/mt7921/usb_mac.c +1 -1
@@ -10,7 +10,7 @@#include "mt7921.h" #include "mcu.h" -#include "mac.h" +#include "../mt76_connac2_mac.h" static u32 mt7921u_uhw_rr (struct mt76_dev *dev,u32 addr) {
drivers/net/wireless/mediatek/mt76/mt7996/mac.h +0 -12
@@ -20,18 +20,6 @@#define MT_RXD0_SW_PKT_TYPE_MAP 0x380F#define MT_RXD0_SW_PKT_TYPE_FRAME 0x3801 -enum rx_pkt_type { -PKT_TYPE_TXS , -PKT_TYPE_TXRXV , -PKT_TYPE_NORMAL , -PKT_TYPE_RX_DUP_RFB , -PKT_TYPE_RX_TMR , -PKT_TYPE_RETRIEVE , -PKT_TYPE_TXRX_NOTIFY , -PKT_TYPE_RX_EVENT , -PKT_TYPE_RX_FW_MONITOR =0x0c , -}; -/* RXD DW1 */ #define MT_RXD1_NORMAL_WLAN_IDX GENMASK(11, 0)#define MT_RXD1_NORMAL_GROUP_1 BIT(16)
Signature · 1 line
2.39.2