mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
wireless-drivers fixes for 5.0
Hopefully the last set of fixes for 5.0, only fix this time. mt76 * fix regression with resume on mt76x0u USB devices -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJcaso2AAoJEG4XJFUm622bFJ0H/A/ShVALhS03OHmv0a6APuXP MxC2ZvZH8NTIEPEx+zOrGvIvimkRT5ib41YuWxvxl74jdbXrrZ98uoYQcR/+i/v5 L9zlkLW5xfg0HV9CMrS64Dx7qmGvqsg3OywMSyeKrx16wOnjYyz9EXiPn1lcOYpl lvla1TpasmqI9CzF5mudnfvp2Z0Ey2utAei77Siih4M3kFm5P8HNHuFsdaStXZNa JuWUOm7du0FirOxJ0oGrea2yYRRM5vN9KUQhD/mDHqBBapp5lh835TuJE6PUKs8R yKEB+TSNKcUIc9KUFi0BDcx8YksAeVLRZAHBgsB0FnbAyKDV438O0YN9AMLwM1o= =zrqD -----END PGP SIGNATURE----- Merge tag 'wireless-drivers-for-davem-2019-02-18' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== wireless-drivers fixes for 5.0 Hopefully the last set of fixes for 5.0, only fix this time. mt76 * fix regression with resume on mt76x0u USB devices ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
92a8c299a7
@ -158,6 +158,32 @@ static const struct ieee80211_ops mt76x0u_ops = {
|
||||
.get_txpower = mt76x02_get_txpower,
|
||||
};
|
||||
|
||||
static int mt76x0u_init_hardware(struct mt76x02_dev *dev)
|
||||
{
|
||||
int err;
|
||||
|
||||
mt76x0_chip_onoff(dev, true, true);
|
||||
|
||||
if (!mt76x02_wait_for_mac(&dev->mt76))
|
||||
return -ETIMEDOUT;
|
||||
|
||||
err = mt76x0u_mcu_init(dev);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
mt76x0_init_usb_dma(dev);
|
||||
err = mt76x0_init_hardware(dev);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
mt76_rmw(dev, MT_US_CYC_CFG, MT_US_CYC_CNT, 0x1e);
|
||||
mt76_wr(dev, MT_TXOP_CTRL_CFG,
|
||||
FIELD_PREP(MT_TXOP_TRUN_EN, 0x3f) |
|
||||
FIELD_PREP(MT_TXOP_EXT_CCA_DLY, 0x58));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt76x0u_register_device(struct mt76x02_dev *dev)
|
||||
{
|
||||
struct ieee80211_hw *hw = dev->mt76.hw;
|
||||
@ -171,26 +197,10 @@ static int mt76x0u_register_device(struct mt76x02_dev *dev)
|
||||
if (err < 0)
|
||||
goto out_err;
|
||||
|
||||
mt76x0_chip_onoff(dev, true, true);
|
||||
if (!mt76x02_wait_for_mac(&dev->mt76)) {
|
||||
err = -ETIMEDOUT;
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
err = mt76x0u_mcu_init(dev);
|
||||
err = mt76x0u_init_hardware(dev);
|
||||
if (err < 0)
|
||||
goto out_err;
|
||||
|
||||
mt76x0_init_usb_dma(dev);
|
||||
err = mt76x0_init_hardware(dev);
|
||||
if (err < 0)
|
||||
goto out_err;
|
||||
|
||||
mt76_rmw(dev, MT_US_CYC_CFG, MT_US_CYC_CNT, 0x1e);
|
||||
mt76_wr(dev, MT_TXOP_CTRL_CFG,
|
||||
FIELD_PREP(MT_TXOP_TRUN_EN, 0x3f) |
|
||||
FIELD_PREP(MT_TXOP_EXT_CCA_DLY, 0x58));
|
||||
|
||||
err = mt76x0_register_device(dev);
|
||||
if (err < 0)
|
||||
goto out_err;
|
||||
@ -301,6 +311,8 @@ static int __maybe_unused mt76x0_suspend(struct usb_interface *usb_intf,
|
||||
|
||||
mt76u_stop_queues(&dev->mt76);
|
||||
mt76x0u_mac_stop(dev);
|
||||
clear_bit(MT76_STATE_MCU_RUNNING, &dev->mt76.state);
|
||||
mt76x0_chip_onoff(dev, false, false);
|
||||
usb_kill_urb(usb->mcu.res.urb);
|
||||
|
||||
return 0;
|
||||
@ -328,7 +340,7 @@ static int __maybe_unused mt76x0_resume(struct usb_interface *usb_intf)
|
||||
tasklet_enable(&usb->rx_tasklet);
|
||||
tasklet_enable(&usb->tx_tasklet);
|
||||
|
||||
ret = mt76x0_init_hardware(dev);
|
||||
ret = mt76x0u_init_hardware(dev);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user