diff options
| author | Cosmo Chou <chou.cosmo@gmail.com> | 2026-07-15 16:07:47 +0800 |
|---|---|---|
| committer | Lee Jones <lee@kernel.org> | 2026-07-23 14:51:00 +0100 |
| commit | 8d6b6c05b8e33d11e3fb3203309385e1a9cceecd (patch) | |
| tree | 5dd680f180f0996abf617039cfc114a02f4c7a49 /tools/perf/scripts/python | |
| parent | 98c5c7b0d4269ecabfc86b8b49ffcfa47979e99d (diff) | |
| download | linux-8d6b6c05b8e33d11e3fb3203309385e1a9cceecd.tar.gz linux-8d6b6c05b8e33d11e3fb3203309385e1a9cceecd.zip | |
leds: pca9532: Fix phantom device registration on missing hardware
The initial PWM and PSC register writes in pca9532_configure() do not
check the return values of i2c_smbus_write_byte_data(). If the I2C
device is physically absent from the bus, the write fails with -ENXIO.
However, the driver ignores this error and allows probe() to complete
successfully.
This results in the registration of phantom LED class devices and
gpiochips backed by non-existent hardware. Subsequent GPIO reads from
these phantom chips return bogus values (due to -ENXIO being truncated
to an unsigned char in pca9532_gpio_get_value()), silently corrupting
hardware state tracking in userspace.
Propagate the I2C write failures back to probe() so the driver core
can gracefully abort binding and release devres-managed resources.
Fixes: e14fa82439d3 ("leds: Add pca9532 led driver")
Signed-off-by: Cosmo Chou <chou.cosmo@gmail.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260715080747.1638097-1-chou.cosmo@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
