diff options
author | Sven van Ashbrook <svenva@chromium.org> | 2023-08-31 16:00:56 +0000 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2023-09-26 15:08:05 +0200 |
commit | 1202d617e3d04c8d27a14ef30784a698c48170b3 (patch) | |
tree | f961892975ad1858aee4923e464873eb61c7bc07 /net/unix/sysctl_net_unix.c | |
parent | 32a9cdb8869dc111a0c96cf8e1762be9684af15b (diff) |
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 'net/unix/sysctl_net_unix.c')
0 files changed, 0 insertions, 0 deletions