mt76: mt76u: move mcu buffer allocation in mt76x02u drivers
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 15 Jan 2020 10:58:47 +0000 (11:58 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 14 Feb 2020 09:06:05 +0000 (10:06 +0100)
Move mcu buffer allocation in mt76x2u/mt76x0u drivers since newer
chipsets (e.g. mt7663u) does not rely on synchronous mcu communication

Co-developed-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
drivers/net/wireless/mediatek/mt76/usb.c

index 68a0079..f70718c 100644 (file)
@@ -172,8 +172,14 @@ static int mt76x0u_init_hardware(struct mt76x02_dev *dev, bool reset)
 static int mt76x0u_register_device(struct mt76x02_dev *dev)
 {
        struct ieee80211_hw *hw = dev->mt76.hw;
+       struct mt76_usb *usb = &dev->mt76.usb;
        int err;
 
+       usb->mcu.data = devm_kmalloc(dev->mt76.dev, MCU_RESP_URB_SIZE,
+                                    GFP_KERNEL);
+       if (!usb->mcu.data)
+               return -ENOMEM;
+
        err = mt76u_alloc_queues(&dev->mt76);
        if (err < 0)
                goto out_err;
index d2ca8fe..ffc2deb 100644 (file)
@@ -190,6 +190,7 @@ int mt76x2u_init_hardware(struct mt76x02_dev *dev)
 int mt76x2u_register_device(struct mt76x02_dev *dev)
 {
        struct ieee80211_hw *hw = mt76_hw(dev);
+       struct mt76_usb *usb = &dev->mt76.usb;
        int err;
 
        INIT_DELAYED_WORK(&dev->cal_work, mt76x2u_phy_calibrate);
@@ -199,6 +200,11 @@ int mt76x2u_register_device(struct mt76x02_dev *dev)
        if (err < 0)
                return err;
 
+       usb->mcu.data = devm_kmalloc(dev->mt76.dev, MCU_RESP_URB_SIZE,
+                                    GFP_KERNEL);
+       if (!usb->mcu.data)
+               return -ENOMEM;
+
        err = mt76u_alloc_queues(&dev->mt76);
        if (err < 0)
                goto fail;
index 678720c..96269e8 100644 (file)
@@ -605,14 +605,9 @@ mt76u_submit_rx_buffers(struct mt76_dev *dev, enum mt76_rxq_id qid)
 
 static int mt76u_alloc_rx(struct mt76_dev *dev)
 {
-       struct mt76_usb *usb = &dev->usb;
        struct mt76_queue *q = &dev->q_rx[MT_RXQ_MAIN];
        int i, err;
 
-       usb->mcu.data = devm_kmalloc(dev->dev, MCU_RESP_URB_SIZE, GFP_KERNEL);
-       if (!usb->mcu.data)
-               return -ENOMEM;
-
        spin_lock_init(&q->lock);
        q->entry = devm_kcalloc(dev->dev,
                                MT_NUM_RX_ENTRIES, sizeof(*q->entry),