WSL2-Linux-Kernel/drivers/iio/light
Kai-Heng Feng ee3c5b644a iio: light: cm32181: Fix PM support on system with 2 I2C resources
Commit c1e62062ff ("iio: light: cm32181: Handle CM3218 ACPI devices
with 2 I2C resources") creates a second client for the actual I2C
address, but the "struct device" passed to PM ops is the first I2C
client that can't talk to the sensor.

That means the I2C transfers in both suspend and resume routines can
fail and blocking the whole suspend process.

Instead of using the first client for I2C transfer, use the I2C client
stored in the cm32181 private struct so the PM ops can get the correct
I2C client to really talk to the sensor device.

Fixes: 68c1b3dd5c ("iio: light: cm32181: Add PM support")
BugLink: https://bugs.launchpad.net/bugs/1988346
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2152281
Tested-by: Wahaj <wahajaved@protonmail.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20230118170422.339619-1-kai.heng.feng@canonical.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2023-01-21 17:50:38 +00:00
..
Kconfig iio: light: rpr0521: add missing Kconfig dependencies 2022-11-12 17:36:02 +00:00
Makefile iio: light: Add support for ltrf216a sensor 2022-08-15 22:29:57 +01:00
acpi-als.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
adjd_s311.c iio: light: adjd_s311: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
adux1020.c iio: light: adux1020: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
al3010.c iio: light: al3010: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
al3320a.c iio: light: al3320a: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
apds9300.c iio: light: apds9300: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
apds9960.c 4th set of IIO fixes for 6.1 2022-11-27 15:05:05 +01:00
as73211.c iio: light: as73211: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-07-18 18:48:18 +01:00
bh1750.c iio: light: bh1750: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
bh1780.c iio: light: bh1780: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
cm3232.c iio: light: cm3232: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
cm3323.c iio: light: cm3323: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
cm3605.c iio: light: cm3605: Fix an error handling path in cm3605_probe() 2022-08-15 22:30:40 +01:00
cm32181.c iio: light: cm32181: Fix PM support on system with 2 I2C resources 2023-01-21 17:50:38 +00:00
cm36651.c iio: light: cm36651: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
cros_ec_light_prox.c iio: cros: Register FIFO callback after sensor is registered 2022-07-18 18:29:13 +01:00
gp2ap002.c iio: light: gp2ap002: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
gp2ap020a00f.c iio: light: gp2ap020a00f: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
hid-sensor-als.c iio: hid-sensors: bind IIO channels alloc to device object 2021-07-13 18:21:53 +01:00
hid-sensor-prox.c iio: hid-sensors: bind IIO channels alloc to device object 2021-07-13 18:21:53 +01:00
iqs621-als.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
isl29018.c iio: light: isl29018: Convert to i2c's .probe_new() 2022-11-23 20:20:27 +00:00
isl29028.c iio: light: isl29028: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
isl29125.c iio: light: isl29125: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
jsa1212.c iio: light: jsa1212: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
lm3533-als.c iio: lm3533: Use sysfs_emit() 2022-01-23 18:03:36 +00:00
ltr501.c iio: light: ltr501: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
ltrf216a.c iio: light: ltrf216a: Add raw attribute 2022-08-30 18:35:38 +01:00
lv0104cs.c iio: light: lv0104cs: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
max44000.c iio: light: max44000: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
max44009.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
noa1305.c iio: light: noa1305: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
opt3001.c iio: light: opt3001: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
pa12203001.c iio: light: pa12203001: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
rpr0521.c iio: light: rpr0521: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
si1133.c iio: light: si1133: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
si1145.c iio: light: si1145: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
st_uvis25.h iio:light:st_uvis25: Fix timestamp alignment and prevent data leak. 2020-12-03 19:40:27 +00:00
st_uvis25_core.c iio: light: st_uvis25: Use EXPORT_NS_SIMPLE_DEV_PM_OPS() 2022-09-21 18:42:57 +01:00
st_uvis25_i2c.c iio: light: st_uvis25_i2c: Convert to i2c's .probe_new() 2022-11-23 20:20:28 +00:00
st_uvis25_spi.c iio: light: st_uvis25: Use EXPORT_NS_SIMPLE_DEV_PM_OPS() 2022-09-21 18:42:57 +01:00
stk3310.c iio: light: stk3310: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
tcs3414.c iio: light: tcs3414: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
tcs3472.c iio: light: tcs3472: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
tsl2563.c iio: light: tsl2563: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
tsl2583.c iio: light: tsl2583: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
tsl2591.c iio: light: tsl2591: Use DEFINE_RUNTIME_DEV_PM_OPS() and pm_ptr() 2022-07-18 18:48:19 +01:00
tsl2772.c iio: light: tsl2772: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
tsl4531.c iio: light: tsl4531: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
us5182d.c iio: light: us5182d: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
vcnl4000.c iio: light: vcnl4000: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
vcnl4035.c iio: light: vcnl4035: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
veml6030.c iio: light: veml6030: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
veml6070.c iio: light: veml6070: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00
vl6180.c iio: accel: vl6180: Convert to i2c's .probe_new() 2022-11-23 19:44:03 +00:00
zopt2201.c iio: light: zopt2201: Convert to i2c's .probe_new() 2022-11-23 20:20:29 +00:00