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(). > > Fixes: 573185cc7e64 ("mmc: core: Invoke sdio func driver's PM callbacks from the sdio bus") > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Daniel Mack <daniel@xxxxxxxxxx> > Reviewed-by: Chris Ball <chris@xxxxxxxxxx> > Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Patch applied to wireless-drivers-next.git, thanks. 7444a8092906 libertas: fix suspend and resume for SDIO connected cards -- https://patchwork.kernel.org/patch/10492407/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html