diff options
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c b/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c index 27fcb1374685..72395925ddee 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c @@ -12,7 +12,7 @@ #include "mac.h" #include "eeprom.h" -static void mt7615_init_work(struct work_struct *work) +static void mt7615_pci_init_work(struct work_struct *work) { struct mt7615_dev *dev = container_of(work, struct mt7615_dev, mcu_work); @@ -27,12 +27,7 @@ static void mt7615_init_work(struct work_struct *work) if (ret) return; - mt7615_mcu_set_eeprom(dev); - mt7615_mac_init(dev); - mt7615_phy_init(dev); - mt7615_mcu_del_wtbl_all(dev); - mt7615_check_offload_capability(dev); - + mt7615_init_work(dev); if (dev->dbdc_support) mt7615_register_ext_phy(dev); } @@ -44,7 +39,7 @@ static int mt7615_init_hardware(struct mt7615_dev *dev) mt76_wr(dev, MT_INT_SOURCE_CSR, ~0); - INIT_WORK(&dev->mcu_work, mt7615_init_work); + INIT_WORK(&dev->mcu_work, mt7615_pci_init_work); spin_lock_init(&dev->token_lock); idr_init(&dev->token); @@ -160,9 +155,7 @@ int mt7615_register_device(struct mt7615_dev *dev) void mt7615_unregister_device(struct mt7615_dev *dev) { - struct mt76_txwi_cache *txwi; bool mcu_running; - int id; mcu_running = mt7615_wait_for_mcu_init(dev); @@ -172,15 +165,7 @@ void mt7615_unregister_device(struct mt7615_dev *dev) mt7615_mcu_exit(dev); mt7615_dma_cleanup(dev); - spin_lock_bh(&dev->token_lock); - idr_for_each_entry(&dev->token, txwi, id) { - mt7615_txp_skb_unmap(&dev->mt76, txwi); - if (txwi->skb) - dev_kfree_skb_any(txwi->skb); - mt76_put_txwi(&dev->mt76, txwi); - } - spin_unlock_bh(&dev->token_lock); - idr_destroy(&dev->token); + mt7615_tx_token_put(dev); tasklet_disable(&dev->irq_tasklet); |