• Kevin Hilman's avatar
    usb: musb: PM: fix context save/restore in suspend/resume path · 5d193ce8
    Kevin Hilman authored
    Currently the driver tries to save context in the suspend path, but
    will cause an abort if the device is already runtime suspended.  This
    happens, for example, if MUSB loaded/compiled-in, in host mode, but no
    USB devices are attached.  MUSB will be runtime suspended, but then
    attempting a system suspend will crash due to the context save
    being attempted while the device is disabled.
    
    On OMAP, as of v3.1, the driver's ->runtime_suspend() callback will be
    called late in the suspend path (by the PM domain layer) if the driver
    is not already runtime suspended, ensuring a full shutdown.
    
    Therefore, the context save is not needed in the ->suspend() method
    since it will be called in the ->runtime_suspend() method anyways
    (similarily for resume.)
    
    NOTE: this leaves the suspend/resume methods basically empty (with
          some FIXMEs and comments, but I'll leave it to the maintainers
          to decide whether to remove them.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    5d193ce8
musb_core.c 66.5 KB