This series deals with cleaning up the TI OPT3001 sensor driver,
moving it to more modern kernel practices and improving the code style.
While reviewing, Jonathan Cameron (and eventually Sashiko) found a race
condition where userspace could start interacting with the device
before the hardware IRQ was set up.
Changes include:
- moving the driver to use devm_* functions
- IWYU cleanups
- removal of unnecessary macros and comments
- using dev_err_probe() in probe and probe path functions
- checkpatch.pl warning cleanups
- fixing a race condition found in opt3001_probe() function
Signed-off-by: Joshua Crofts <joshua.crofts1@gmail.com>
---
Changes in v2:
- PATCH 1: added patch that fixes race condition
- PATCH 3: remove wrong usage of GENMASK()
- PATCH 4: add patch that moves driver to use local structs
- PATCH 5: add patch that ensures correct parenthesis alignment
- PATCH 6: change int to unsigned int
- PATCH 7: moved opt3001_read_id() function to use dev_err_probe()
- PATCH 9: removed unnecessary dev_err_probe() calls, reordering
- PATCH 10: added patch that adds a comment to mutex declaration
- Link to v1: https://lore.kernel.org/r/20260511-opt3001-cleanup-v1-0-f7879dc3455c@gmail.com
---
Joshua Crofts (10):
iio: light: opt3001: move device registration to end of probe()
iio: light: opt3001: make headers conform to iwyu
iio: light: opt3001: use macros from bits.h header
iio: light: opt3001: use local struct device and i2c_client variables
iio: light: opt3001: ensure correct parenthesis alignment
iio: light: opt3001: localize for loop iterator
iio: light: opt3001: prefer dev_err_probe()
iio: light: opt3001: move driver to guard(mutex)() use
iio: light: opt3001: switch driver to managed resources
iio: light: opt3001: add comment to mutex
drivers/iio/light/opt3001.c | 397 +++++++++++++++++++++-----------------------
1 file changed, 190 insertions(+), 207 deletions(-)
---
base-commit: 74d173f29572951629d1e0b7456b424006e51b87
change-id: 20260511-opt3001-cleanup-c1411de14392
Best regards,
--
Joshua Crofts <joshua.crofts1@gmail.com>