Re: [PATCH v6 0/8] iio: light: opt3001: driver cleanup

From: Jonathan Cameron

Date: Sun Jun 21 2026 - 10:50:20 EST


On Sun, 14 Jun 2026 15:19:02 +0200
Joshua Crofts <joshua.crofts1@xxxxxxxxx> wrote:

> 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
>
Series applied to the testing branch of iio.git. I'll be rebasing
that on rc1 once it is available

Thanks,

Jonathan

> ---
> Changes in v6:
> - Pull review tags
> - PATCH 2: reduce code churn
> - Reorder patches to reduce churn
> - Rebase on updated testing branch
> - Link to v5: https://lore.kernel.org/r/20260603-opt3001-cleanup-v5-0-3ef7b926d555@xxxxxxxxx
>
> Changes in v5:
> - PATCH 7: remove dead code oneliner
> - Pull new review trailers
> - Link to v4: https://lore.kernel.org/r/20260525-opt3001-cleanup-v4-0-65b36a174f78@xxxxxxxxx/
>
> Changes in v4:
> - Fix bad merge
> - Edit commit messages
> - PATCH 1: add free_irq on iio_device_register error
> - PATCH 8: change comments
> - Link to v3: https://lore.kernel.org/r/20260521-opt3001-cleanup-v3-0-820169dec8c3@xxxxxxxxx
>
> Changes in v3:
> - PATCH 1: fix build error
> - PATCH 2: remove struct device member from struct opt3001
> - PATCH 6: edit return statements
> - Pull additional trailers from previous version's reviews
> - Edit commit messages
> - Link to v2: https://lore.kernel.org/r/20260512-opt3001-cleanup-v2-0-8018cf3a8a0a@xxxxxxxxx
>
> 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@xxxxxxxxx
>
> ---
> To: Jonathan Cameron <jic23@xxxxxxxxxx>
> To: David Lechner <dlechner@xxxxxxxxxxxx>
> To: Nuno Sá <nuno.sa@xxxxxxxxxx>
> To: Andy Shevchenko <andy@xxxxxxxxxx>
> Cc: linux-iio@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
>
> ---
> Joshua Crofts (8):
> iio: light: opt3001: move device registration to end of probe()
> iio: light: opt3001: use local struct device and i2c_client variables
> iio: light: opt3001: prefer dev_err_probe()
> iio: light: opt3001: ensure correct parenthesis alignment
> iio: light: opt3001: localize for loop iterator
> 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 | 381 +++++++++++++++++++++-----------------------
> 1 file changed, 181 insertions(+), 200 deletions(-)
> ---
> base-commit: 5eff1cd0d0156240c0839921b537599ae77a2ce2
> change-id: 20260603-opt3001-cleanup-149be05f699b
>
> Best regards,