lkml.org 
[lkml]   [2012]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [linux-pm] Recent "Run the driver callback directly" patch breaks libertas suspend
    On Sun, 25 Mar 2012, NeilBrown wrote:

    > Hi Rafael,
    >
    > Your recent patch:
    > commit 35cd133c
    > PM: Run the driver callback directly if the subsystem one is not there
    >
    > breaks suspend for my libertas wifi and probably other SDIO devices.
    >
    > SDIO (and possible MMC in general) has a protocol where the suspend
    > method can return -ENOSYS and this means "There is no point in suspending,
    > just turn me off".
    >
    > The device itself "mmc1:0001" (I think) doesn't have any bus etc 'suspend'
    > function so the new code call the device's suspend function which returns
    > ENOSYS and the suspend fails.
    >
    > The previous code ignores the device as there is no bus suspend, and when it
    > gets to suspend the ancestor - which for me is omap_hsmmc.1, it calls the
    > device suspend function catches the ENOSYS, and turns it off.
    >
    > I suspect just reverting it isn't the right long term solution, however I
    > can confirm that it works for me for now.
    >
    > I'm happy to try any alternate fixes you would like to suggest (but I cannot
    > promise how quickly I will get the testing done).

    With a little restructuring, this might be a good application for
    pm_runtime_no_callbacks().

    Alan Stern



    \
     
     \ /
      Last update: 2012-03-25 17:21    [W:3.775 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site