summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMatthew Schwartz <matthew.schwartz@linux.dev>2026-01-05 09:02:35 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-01-16 18:36:50 +0300
commiteac85fbd0867c25ac517f58fae401d65c627edff (patch)
treea6d68286242a5497f03623efb10040e90b812b88 /include/linux
parent5f0bf80cc5e04d31eeb201683e0b477c24bd18e7 (diff)
downloadlinux-eac85fbd0867c25ac517f58fae401d65c627edff.tar.xz
mmc: rtsx: reset power state on suspend
When rtsx_pci suspends, the card reader hardware powers off but the sdmmc driver's prev_power_state remains as MMC_POWER_ON. This causes sd_power_on to skip reinitialization on the next I/O request, leading to DMA transfer timeouts and errors on resume 20% of the time. Add a power_off slot callback so the PCR can notify the sdmmc driver during suspend. The sdmmc driver resets prev_power_state, and sd_request checks this to reinitialize the card before the next I/O. Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev> Link: https://patch.msgid.link/20260105060236.400366-2-matthew.schwartz@linux.dev Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/rtsx_common.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/rtsx_common.h b/include/linux/rtsx_common.h
index da9c8c6b5d50..f294f478f0c0 100644
--- a/include/linux/rtsx_common.h
+++ b/include/linux/rtsx_common.h
@@ -32,6 +32,7 @@ struct platform_device;
struct rtsx_slot {
struct platform_device *p_dev;
void (*card_event)(struct platform_device *p_dev);
+ void (*power_off)(struct platform_device *p_dev);
};
#endif