Search Linux Wireless

Re: [PATCH v2] libertas: fix suspend and resume for SDIO connected cards

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Daniel Mack <daniel@xxxxxxxxxx> writes:

> On Friday, June 29, 2018 05:39 PM, Ulf Hansson wrote:
>> On 27 June 2018 at 20:58, Daniel Mack <daniel@xxxxxxxxxx> wrote:
>>> Prior to commit 573185cc7e64 ("mmc: core: Invoke sdio func driver's PM
>>> callbacks from the sdio bus"), the MMC core used to call into the power
>>> management functions of SDIO clients itself and removed the card if the
>>> return code was non-zero. IOW, the mmc handled errors gracefully and didn't
>>> upchain them to the pm core.
>>>
>>> Since this change, the mmc core relies on generic power management
>>> functions which treat all errors as a reason to cancel the suspend
>>> immediately. This causes suspend attempts to fail when the libertas
>>> driver is loaded.
>>>
>>> To fix this, power down the card explicitly in if_sdio_suspend() when we
>>> know we're about to lose power and return success. Also set a flag in these
>>> cases, and power up the card again in if_sdio_resume().
>>>
>>> Signed-off-by: Daniel Mack <daniel@xxxxxxxxxx>
>>> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
>>> Cc: Chris Ball <chris@xxxxxxxxxx>
>>
>> Looks good to me! Should be a candidate for stable as well!?
>
> Thanks!
>
> Yeah, it should probably get a
>
> Fixes: 573185cc7e64 ("mmc: core: Invoke sdio func driver's PM
> callbacks from the sdio bus")
>
> as well.

So I'll queue this for wireless-drivers-next and add:

Fixes: 573185cc7e64 ("mmc: core: Invoke sdio func driver's PM callbacks from the sdio bus")
Cc: <stable@xxxxxxxxxxxxxxx

Ok?

-- 
Kalle Valo



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux