• Nicolas Pitre's avatar
    mmc: propagate error codes back from bus drivers' suspend/resume methods · 95cdfb72
    Nicolas Pitre authored
    Especially for SDIO drivers which may have special conditions/errors to
    report, it is a good thing to relay the returned error code back to upper
    layers.
    
    This also allows for the rationalization of the resume path where code to
    "remove" a no-longer-existing or replaced card was duplicated into the
    MMC, SD and SDIO bus drivers.
    
    In the SDIO case, if a function suspend method returns an error, then all
    previously suspended functions are resumed and the error returned.  An
    exception is made for -ENOSYS which the core interprets as "we don't
    support suspend so just kick the card out for suspend and return success".
    
    When resuming SDIO cards, the core code only validates the manufacturer
    and product IDs to make sure the same kind of card is still present before
    invoking functions resume methods.  It's the function driver's
    responsibility to perform further tests to confirm that the actual same
    card is present (same MAC address, etc.) and return an error otherwise.
    Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
    Cc: <linux-mmc@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    95cdfb72
sd.c 15.5 KB