aboutsummaryrefslogtreecommitdiff
path: root/drivers/mmc/core
diff options
context:
space:
mode:
authorGravatar Sven van Ashbrook <svenva@chromium.org> 2023-08-31 16:00:56 +0000
committerGravatar Ulf Hansson <ulf.hansson@linaro.org> 2023-09-26 15:08:05 +0200
commit1202d617e3d04c8d27a14ef30784a698c48170b3 (patch)
treef961892975ad1858aee4923e464873eb61c7bc07 /drivers/mmc/core
parentmmc: core: sdio: hold retuning if sdio in 1-bit mode (diff)
downloadlinux-1202d617e3d04c8d27a14ef30784a698c48170b3.tar.gz
linux-1202d617e3d04c8d27a14ef30784a698c48170b3.tar.bz2
linux-1202d617e3d04c8d27a14ef30784a698c48170b3.zip
mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend
To improve the r/w performance of GL9763E, the current driver inhibits LPM negotiation while the device is active. This prevents a large number of SoCs from suspending, notably x86 systems which commonly use S0ix as the suspend mechanism - for example, Intel Alder Lake and Raptor Lake processors. Failure description: 1. Userspace initiates s2idle suspend (e.g. via writing to /sys/power/state) 2. This switches the runtime_pm device state to active, which disables LPM negotiation, then calls the "regular" suspend callback 3. With LPM negotiation disabled, the bus cannot enter low-power state 4. On a large number of SoCs, if the bus not in a low-power state, S0ix cannot be entered, which in turn prevents the SoC from entering suspend. Fix by re-enabling LPM negotiation in the device's suspend callback. Suggested-by: Stanislaw Kardach <skardach@google.com> Fixes: f9e5b33934ce ("mmc: host: Improve I/O read/write performance for GL9763E") Cc: stable@vger.kernel.org Signed-off-by: Sven van Ashbrook <svenva@chromium.org> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Link: https://lore.kernel.org/r/20230831160055.v3.1.I7ed1ca09797be2dd76ca914c57d88b32d24dac88@changeid Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/core')
0 files changed, 0 insertions, 0 deletions