> From: Deren Wu <deren.wu@xxxxxxxxxxxx> > > Move sdio_release_host() to final resource handing > > Fixes: b12deb5e86fa ("mt76: mt7921s: fix mt7921s_mcu_[fw|drv]_pmctrl") > Reported-by: YN Chen <YN.Chen@xxxxxxxxxxxx> > Signed-off-by: Deren Wu <deren.wu@xxxxxxxxxxxx> > --- > drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c > index 54a5c712a3c3..1856d677fff4 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c > +++ b/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c > @@ -156,9 +156,9 @@ int mt7921s_mcu_fw_pmctrl(struct mt7921_dev *dev) > > err = readx_poll_timeout(mt76s_read_pcr, &dev->mt76, status, > !(status & WHLPCR_IS_DRIVER_OWN), 2000, 1000000); > +err: > sdio_release_host(func); > > -err: > if (err < 0) { > dev_err(dev->mt76.dev, "firmware own failed\n"); > clear_bit(MT76_STATE_PM, &mphy->state); > -- > 2.18.0 > Hi Deren, in order to align the code with mt7921e, can you please fold the following changes into this patch? Regards, Lorenzo --- a/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c @@ -135,8 +135,8 @@ int mt7921s_mcu_fw_pmctrl(struct mt7921_dev *dev) struct sdio_func *func = dev->mt76.sdio.func; struct mt76_phy *mphy = &dev->mt76.phy; struct mt76_connac_pm *pm = &dev->pm; - int err = 0; u32 status; + int err; sdio_claim_host(func); @@ -147,7 +147,7 @@ int mt7921s_mcu_fw_pmctrl(struct mt7921_dev *dev) 2000, 1000000); if (err < 0) { dev_err(dev->mt76.dev, "mailbox ACK not cleared\n"); - goto err; + goto out; } } @@ -155,18 +155,18 @@ int mt7921s_mcu_fw_pmctrl(struct mt7921_dev *dev) err = readx_poll_timeout(mt76s_read_pcr, &dev->mt76, status, !(status & WHLPCR_IS_DRIVER_OWN), 2000, 1000000); -err: +out: sdio_release_host(func); if (err < 0) { dev_err(dev->mt76.dev, "firmware own failed\n"); clear_bit(MT76_STATE_PM, &mphy->state); - err = -EIO; + return -EIO; } pm->stats.last_doze_event = jiffies; pm->stats.awake_time += pm->stats.last_doze_event - pm->stats.last_wake_event; - return err; + return 0; }
Attachment:
signature.asc
Description: PGP signature