mirror of https://gitee.com/openkylin/linux.git
mt76: usb: fix hw initialization sequence
mt76u_alloc_queues need to be called before mt76u_mcu_init_rx
since it initializes rx_page_lock spinlock used in mt76u_buf_alloc
routine.
Fixes: b11e19694d
("mt76x0: add ieee80211_ops ops pointer to
mt76x0_alloc_device signature")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
c87dff8cc3
commit
0536478cba
|
@ -179,28 +179,28 @@ static int mt76x0u_register_device(struct mt76x0_dev *dev)
|
|||
struct ieee80211_hw *hw = dev->mt76.hw;
|
||||
int err;
|
||||
|
||||
err = mt76u_mcu_init_rx(&dev->mt76);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = mt76u_alloc_queues(&dev->mt76);
|
||||
if (err < 0)
|
||||
return err;
|
||||
goto out_err;
|
||||
|
||||
err = mt76u_mcu_init_rx(&dev->mt76);
|
||||
if (err < 0)
|
||||
goto out_err;
|
||||
|
||||
mt76x0_chip_onoff(dev, true, true);
|
||||
if (!mt76x02_wait_for_mac(&dev->mt76)) {
|
||||
err = -ETIMEDOUT;
|
||||
goto err;
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
err = mt76x0u_mcu_init(dev);
|
||||
if (err < 0)
|
||||
goto err;
|
||||
goto out_err;
|
||||
|
||||
mt76x0_init_usb_dma(dev);
|
||||
err = mt76x0_init_hardware(dev);
|
||||
if (err < 0)
|
||||
goto err;
|
||||
goto out_err;
|
||||
|
||||
mt76_rmw(dev, MT_US_CYC_CFG, MT_US_CYC_CNT, 0x1e);
|
||||
mt76_wr(dev, MT_TXOP_CTRL_CFG,
|
||||
|
@ -209,7 +209,7 @@ static int mt76x0u_register_device(struct mt76x0_dev *dev)
|
|||
|
||||
err = mt76x0_register_device(dev);
|
||||
if (err < 0)
|
||||
goto err;
|
||||
goto out_err;
|
||||
|
||||
/* check hw sg support in order to enable AMSDU */
|
||||
if (mt76u_check_sg(&dev->mt76))
|
||||
|
@ -221,7 +221,7 @@ static int mt76x0u_register_device(struct mt76x0_dev *dev)
|
|||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
out_err:
|
||||
mt76x0u_cleanup(dev);
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -262,7 +262,7 @@ int mt76x2u_register_device(struct mt76x2_dev *dev)
|
|||
|
||||
err = mt76u_mcu_init_rx(&dev->mt76);
|
||||
if (err < 0)
|
||||
return err;
|
||||
goto fail;
|
||||
|
||||
err = mt76x2u_init_hardware(dev);
|
||||
if (err < 0)
|
||||
|
|
Loading…
Reference in New Issue