linux-stable/drivers
Sven van Ashbrook 43f588b820 mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend
commit 1202d617e3 upstream.

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: f9e5b33934 ("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-10-25 12:03:13 +02:00
..
accessibility
acpi ACPI: EC: Add quirk for the HP Pavilion Gaming 15-dk1xxx 2023-10-19 23:08:56 +02:00
amba
android
ata ata: libata-eh: Fix compilation warning in ata_eh_link_report() 2023-10-25 12:03:10 +02:00
atm
auxdisplay
base regmap: fix NULL deref on lookup 2023-10-25 12:03:04 +02:00
bcma
block rbd: take header_rwsem in rbd_dev_refresh() only when updating 2023-10-10 22:00:37 +02:00
bluetooth Bluetooth: btusb: add shutdown function for QCA6174 2023-10-25 12:03:10 +02:00
bus bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up 2023-10-06 14:56:48 +02:00
cdrom
char parisc: sba: Fix compile warning wrt list of SBA devices 2023-10-06 14:56:51 +02:00
clk clk: tegra: fix error return case for recalc_rate 2023-10-06 14:56:47 +02:00
clocksource
comedi
connector
counter counter: microchip-tcb-capture: Fix the use of internal GCLK logic 2023-10-19 23:08:58 +02:00
cpufreq
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma dmaengine: mediatek: Fix deadlock caused by synchronize_irq() 2023-10-19 23:08:58 +02:00
dma-buf dma-buf: add dma_fence_timestamp helper 2023-10-19 23:08:57 +02:00
edac
eisa
extcon
firewire scsi: sd: Differentiate system and runtime start/stop management 2023-10-10 22:00:34 +02:00
firmware firmware: cirrus: cs_dsp: Only log list of algorithms in debug build 2023-10-06 14:56:56 +02:00
fpga
fsi
gnss
gpio gpio: timberdale: Fix potential deadlock on &tgpio->lock 2023-10-25 12:03:09 +02:00
gpu drm/amd/pm: add unique_id for gc 11.0.3 2023-10-25 12:03:11 +02:00
greybus
hid HID: nintendo: reinitialize USB Pro Controller after resuming from suspend 2023-10-25 12:03:11 +02:00
hsi
hte
hv
hwmon hwmon: (nzxt-smart2) add another USB ID 2023-10-10 22:00:37 +02:00
hwspinlock
hwtracing
i2c i2c: mux: Avoid potential false error message in i2c_mux_add_adapter 2023-10-25 12:03:09 +02:00
i3c
idle intel_idle: add Emerald Rapids Xeon support 2023-10-10 22:00:44 +02:00
iio iio: adc: ad7192: Correct reference voltage 2023-10-25 12:03:09 +02:00
infiniband RDMA/cxgb4: Check skb value for failure to allocate 2023-10-19 23:08:49 +02:00
input Input: goodix - ensure int GPIO is in input for gpio_count == 1 && gpio_int_idx == 0 case 2023-10-19 23:08:57 +02:00
interconnect interconnect: Teach lockdep about icc_bw_lock order 2023-09-23 11:11:13 +02:00
iommu iommu/mediatek: Fix share pgtable for iova over 4GB 2023-10-10 22:00:41 +02:00
ipack
irqchip irqchip: renesas-rzg2l: Fix logic to clear TINT interrupt source 2023-10-19 23:08:50 +02:00
isdn
leds leds: Drop BUG_ON check for LED_COLOR_ID_MULTI 2023-10-10 22:00:40 +02:00
macintosh
mailbox
mcb mcb: remove is_added flag from mcb_device struct 2023-10-19 23:08:56 +02:00
md dm zoned: free dmz->ddev array in dmz_put_zoned_devices 2023-10-10 22:00:44 +02:00
media media: uvcvideo: Fix OOB read 2023-10-06 14:57:04 +02:00
memory
memstick
message
mfd
misc misc: rtsx: Fix some platforms can not boot and move the l1ss judgment to probe 2023-10-06 14:57:00 +02:00
mmc mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend 2023-10-25 12:03:13 +02:00
most
mtd mtd: physmap-core: Restore map_rom fallback 2023-10-25 12:03:13 +02:00
mux
net ice: Remove redundant pci_enable_pcie_error_reporting() 2023-10-25 12:03:12 +02:00
nfc
ntb
nubus
nvdimm
nvme nvmet-tcp: Fix a possible UAF in queue intialization setup 2023-10-25 12:03:05 +02:00
nvmem
of of: dynamic: Fix potential memory leak in of_changeset_action() 2023-10-10 22:00:44 +02:00
opp
parisc parisc: iosapic.c: Fix sparse warnings 2023-10-06 14:56:51 +02:00
parport
pci PCI: qcom: Fix IPQ8074 enumeration 2023-10-10 22:00:38 +02:00
pcmcia
peci
perf perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7 2023-10-19 23:08:50 +02:00
phy phy: lynx-28g: serialize concurrent phy_set_mode_ext() calls to shared registers 2023-10-19 23:08:52 +02:00
pinctrl pinctrl: avoid unsafe code pattern in find_pinctrl() 2023-10-19 23:08:57 +02:00
platform platform/x86: touchscreen_dmi: Add info for the Positivo C4128B 2023-10-25 12:03:11 +02:00
pnp
power pwr-mlxbf: extend Kconfig to include gpio-mlxbf3 dependency 2023-10-25 12:03:09 +02:00
powercap
pps
ps3
ptp ptp: ocp: Fix error handling in ptp_ocp_device_init 2023-10-10 22:00:42 +02:00
pwm
rapidio
ras
regulator regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()" 2023-10-25 12:03:11 +02:00
remoteproc
reset
rpmsg
rtc
s390 scsi: zfcp: Fix a double put in zfcp_port_enqueue() 2023-10-10 22:00:38 +02:00
sbus
scsi scsi: Do not rescan devices with a suspended queue 2023-10-19 23:08:50 +02:00
sh
siox
slimbus
soc soc: imx8m: Enable OCOTP clock for imx8mm before reading registers 2023-10-06 14:56:49 +02:00
soundwire
spi spi: zynqmp-gqspi: fix clock imbalance on probe failure 2023-10-10 22:00:34 +02:00
spmi
ssb
staging
target scsi: target: core: Fix deadlock due to recursive locking 2023-10-10 22:00:41 +02:00
tc
tee tee: amdtee: fix use-after-free vulnerability in amdtee_close_session 2023-10-19 23:08:57 +02:00
thermal thermal/of: add missing of_node_put() 2023-10-06 14:56:53 +02:00
thunderbolt thunderbolt: Restart XDomain discovery handshake after failure 2023-10-19 23:08:56 +02:00
tty serial: 8250_omap: Fix errors with no_console_suspend 2023-10-25 12:03:09 +02:00
ufs scsi: ufs: core: Correct clear TM error log 2023-10-19 23:08:57 +02:00
uio
usb usb: misc: onboard_hub: add support for Microchip USB2412 USB 2.0 hub 2023-10-25 12:03:08 +02:00
vdpa
vfio vfio/mdev: Fix a null-ptr-deref bug for mdev_unregister_parent() 2023-10-06 14:56:45 +02:00
vhost vringh: don't use vringh_kiov_advance() in vringh_iov_xfer() 2023-10-10 22:00:38 +02:00
video fbdev/sh7760fb: Depend on FB=y 2023-10-06 14:56:58 +02:00
virt
virtio
vlynq
w1
watchdog
xen xen/events: replace evtchn_rwlock with RCU 2023-10-10 22:00:46 +02:00
zorro
Kconfig
Makefile