[PATCH v3 0/8] iio: adc: ti-ads1015: modernize resource management
Archit Anant <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
This series modernizes the ti-ads1015 by transitioning it to a fully devm_ architecture. By moving resource allocation, device registration, and runtime power management to the devm_ infrastructure, the teardown sequence is now guaranteed to execute safely in the reverse order of initialization. This allows for the complete removal of the ads1015_remove() function, eliminating boilerplate code and reducing the risk of future resource leaks. Also the driver's configuration logic has been updated to use the modern FIELD_PREP() and FIELD_GET() macros, allowing the removal of all custom _SHIFT macros and a redundant helper function. Additionally, housekeeping patches are included to ensure header includes remain alphabetically sorted, dev_err_probe() is used consistently, and PM macros are updated to modern standards. Changes in v3: - Added Patch 7 to replace all custom _SHIFT macros with FIELD_PREP and FIELD_GET as requested by Jonathan Cameron. - Added Patch 8 to inline ads1015_set_conv_mode() directly at call sites, allowing for the removal of the final _SHIFT macro. Changes in v2: - Split the monolithic v1 patch into a 6-patch series to isolate housekeeping, bug fixes, and API modernizations for easier review and backporting. - Patch 1: Added to modernize PM ops and remove #ifdef CONFIG_PM. - Patch 2: Added to fix a pre-existing PM leak on probe failure identified by Jonathan Cameron. - Patch 3: Extracted header sorting into a prerequisite patch. - Patch 4 & 5: Extracted the introduction of the local 'dev' pointer and dev_err_probe() conversions, suggested by Jonathan Cameron. - Patch 6: Now contains only the devm_ conversions and the removal of ads1015_remove(). Archit Anant (8): iio: adc: ti-ads1015: use DEFINE_RUNTIME_DEV_PM_OPS() iio: adc: ti-ads1015: fix PM leak on probe failure iio: adc: ti-ads1015: sort headers alphabetically iio: adc: ti-ads1015: use local device pointer in probe iio: adc: ti-ads1015: use dev_err_probe() for error handling iio: adc: ti-ads1015: convert to fully managed resources iio: adc: ti-ads1015: replace custom shift macros with FIELD_PREP/GET iio: adc: ti-ads1015: inline ads1015_set_conv_mode() drivers/iio/adc/ti-ads1015.c | 176 ++++++++++++++++------------------- 1 file changed, 81 insertions(+), 95 deletions(-) -- 2.39.5