mt7601u: use firmware_request_cache() to address cache on reboot
authorLuis R. Rodriguez <mcgrof@kernel.org>
Wed, 21 Mar 2018 22:34:30 +0000 (15:34 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Mar 2018 17:33:26 +0000 (18:33 +0100)
request_firmware_cache() will ensure the firmware is available on resume
from suspend if on reboot the device retains the firmware.

This optimization is in place given otherwise on reboot we have to
reload the firmware, the opmization saves us about max 1s, minimum 10ms.

Cantabile has reported back this fixes his woes with both suspend and
hibernation.

Reported-by: Cantabile <cantabile.desu@gmail.com>
Tested-by: Cantabile <cantabile.desu@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/mediatek/mt7601u/mcu.c

index 65a8004418ea45b3f21cf2d746443c891470f881..8e2e1e571878933152ccad19dad6389671fa9236 100644 (file)
@@ -421,7 +421,7 @@ static int mt7601u_load_firmware(struct mt7601u_dev *dev)
                                         MT_USB_DMA_CFG_TX_BULK_EN));
 
        if (firmware_running(dev))
-               return 0;
+               return firmware_request_cache(dev->dev, MT7601U_FIRMWARE);
 
        ret = request_firmware(&fw, MT7601U_FIRMWARE, dev->dev);
        if (ret)