Hi All, If anyone has time to look over this set that would be great. The ancient problem for maintainers, who is the reviewer of last resort? Oh me... That doesn't work for my patches :) No actual rush though - don't mind if these sit until next cycle - would just get irritating if they sit until the one after and I have to rebase them again... Jonathan > Changes since V1: > * rebased and updated additional drivers that have been added to the tree > since v1. > * added brackets around macro arguements (thanks Lars) > * fixed kernel doc in the removal patch (Lars) > * fixed up some docs in staging to remove all reference to manually > setting these two fields. > * dropped other pointless THIS_MODULE settings from spi drivers as > the spi subsytem has done the same as this patch for some time. > > This has been in the todo list for quite some time. There are two > places in IIO in which every driver assigns THIS_MODULE to a structure > element, so that the core can correctly assign ownership of various > resources. > > With a simple macro, and moving the actual element used to store these > out of the relevant ops structures we can remove the necessity to do > this leading to a reduction in boilerplate. > > We have a few iio drivers as part of other drivers outside of IIO, but > I have hopefully caught all of those. > > I've split it mainly up into directories just to avoid having several > hundred patches for such a trivial per driver change. I'm not going > to attempt to put together a coherent cc list for these and instead > am mostly just going to post them to the mailing list for general > review. > > Thanks, > > Jonathan > > Jonathan Cameron (45): > iio: Use macro magic to avoid manual assign of driver_module > iio: triggers: Use macros to avoid boilerplate assignment of owner. > iio:trigger: Remove necessity to have a trig->ops structure. > coccinelle: Add an iio_no_owner semantic patch to drop driver_owner > iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner > iio:accel: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:amplifiers:ad8366 drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:chemical: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:common: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:counter:104-quad-8 drop assign iio_info.driver_module > iio:dac: drop assignment of iio_info.driver_module > iio:dummy: drop assignment of iio_info.driver_module > iio:frequency: drop assign iio_info.driver_module > iio:gyro: drop assign iio_info.driver_module and iio_trigger_ops.owner > iio:health: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:humidity: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:imu: drop assign iio_info.driver_module and iio_trigger_ops.owner > iio:light: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:magnetometer: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:orientation: drop assign iio_info.driver_module > iio:dpot: drop assign iio_info.driver_module > iio:potentiostat:lmp91000 drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:pressure: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:proximity: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:temperature: drop assignment of iio_info.driver_module > iio:triggers: drop assign iio_info.driver_module and > iio_trigger_ops.owner > staging:iio:accel: drop assignment of iio_info.driver_module > staging:iio:adc: drop assign iio_info.driver_module > staging:iio:cdc: drop assign iio_info.driver_module > staging:iio:frequency: drop assign iio_info.driver_module > staging:iio:gyro:adis16060 drop assign iio_info.driver_module > staging:iio:ad5933: drop assign iio_info.driver_module > staging:iio:meter: drop assign iio_info.driver_module and > iio_trigger_ops.owner > iio:resolver: drop assignment of iio_info.driver_module > iio:adc: drop assignment of iio_trigger_ops.owner > staging:iio:light:tsl2x7x drop assignment of driver_module > input: tsc2007 - drop the driver_module assignment in iio interface. > platform/x86: toshiba_acpi: drop assignment of iio_info.driver_module > iio: drop iio_info.driver_module and iio_trigger_ops.owner. > iio:adc:max9611: Drop explicit setting of the i2c module owner. > iio:adc:ti-ads8688: Drop manual setting of the driver owner field. > iio:potentiometer:max5481 drop explicit setting of the owner module. > iio:potentiometer:max5487: Drop explicit setting of module owner > staging:iio:docs: drop reference to setting trig_ops->owner > staging:iio:docs: drop setting of THIS_MODULE from staging docs. > > drivers/iio/accel/adxl345_core.c | 1 - > drivers/iio/accel/bma180.c | 2 - > drivers/iio/accel/bma220_spi.c | 1 - > drivers/iio/accel/bmc150-accel-core.c | 3 - > drivers/iio/accel/da280.c | 1 - > drivers/iio/accel/da311.c | 1 - > drivers/iio/accel/dmard06.c | 1 - > drivers/iio/accel/dmard09.c | 1 - > drivers/iio/accel/dmard10.c | 1 - > drivers/iio/accel/hid-sensor-accel-3d.c | 1 - > drivers/iio/accel/kxcjk-1013.c | 2 - > drivers/iio/accel/kxsd9.c | 1 - > drivers/iio/accel/mc3230.c | 1 - > drivers/iio/accel/mma7455_core.c | 1 - > drivers/iio/accel/mma7660.c | 1 - > drivers/iio/accel/mma8452.c | 2 - > drivers/iio/accel/mma9551.c | 1 - > drivers/iio/accel/mma9553.c | 1 - > drivers/iio/accel/mxc4005.c | 2 - > drivers/iio/accel/mxc6255.c | 1 - > drivers/iio/accel/sca3000.c | 1 - > drivers/iio/accel/st_accel_core.c | 2 - > drivers/iio/accel/stk8312.c | 2 - > drivers/iio/accel/stk8ba50.c | 2 - > drivers/iio/adc/ad7266.c | 1 - > drivers/iio/adc/ad7291.c | 1 - > drivers/iio/adc/ad7298.c | 1 - > drivers/iio/adc/ad7476.c | 1 - > drivers/iio/adc/ad7766.c | 2 - > drivers/iio/adc/ad7791.c | 2 - > drivers/iio/adc/ad7793.c | 2 - > drivers/iio/adc/ad7887.c | 1 - > drivers/iio/adc/ad7923.c | 1 - > drivers/iio/adc/ad799x.c | 3 - > drivers/iio/adc/ad_sigma_delta.c | 1 - > drivers/iio/adc/aspeed_adc.c | 1 - > drivers/iio/adc/at91-sama5d2_adc.c | 2 - > drivers/iio/adc/at91_adc.c | 2 - > drivers/iio/adc/axp20x_adc.c | 2 - > drivers/iio/adc/axp288_adc.c | 1 - > drivers/iio/adc/bcm_iproc_adc.c | 1 - > drivers/iio/adc/berlin2-adc.c | 1 - > drivers/iio/adc/cc10001_adc.c | 1 - > drivers/iio/adc/cpcap-adc.c | 1 - > drivers/iio/adc/da9150-gpadc.c | 1 - > drivers/iio/adc/dln2-adc.c | 6 -- > drivers/iio/adc/envelope-detector.c | 1 - > drivers/iio/adc/exynos_adc.c | 1 - > drivers/iio/adc/hi8435.c | 1 - > drivers/iio/adc/hx711.c | 1 - > drivers/iio/adc/imx7d_adc.c | 1 - > drivers/iio/adc/ina2xx-adc.c | 2 - > drivers/iio/adc/lp8788_adc.c | 1 - > drivers/iio/adc/lpc18xx_adc.c | 1 - > drivers/iio/adc/lpc32xx_adc.c | 1 - > drivers/iio/adc/ltc2471.c | 1 - > drivers/iio/adc/ltc2485.c | 1 - > drivers/iio/adc/ltc2497.c | 1 - > drivers/iio/adc/max1027.c | 2 - > drivers/iio/adc/max11100.c | 1 - > drivers/iio/adc/max1118.c | 1 - > drivers/iio/adc/max1363.c | 2 - > drivers/iio/adc/max9611.c | 2 - > drivers/iio/adc/mcp320x.c | 1 - > drivers/iio/adc/mcp3422.c | 1 - > drivers/iio/adc/men_z188_adc.c | 1 - > drivers/iio/adc/meson_saradc.c | 1 - > drivers/iio/adc/mt6577_auxadc.c | 1 - > drivers/iio/adc/mxs-lradc-adc.c | 2 - > drivers/iio/adc/nau7802.c | 1 - > drivers/iio/adc/palmas_gpadc.c | 1 - > drivers/iio/adc/qcom-pm8xxx-xoadc.c | 1 - > drivers/iio/adc/qcom-spmi-iadc.c | 1 - > drivers/iio/adc/qcom-spmi-vadc.c | 1 - > drivers/iio/adc/rcar-gyroadc.c | 1 - > drivers/iio/adc/rockchip_saradc.c | 1 - > drivers/iio/adc/spear_adc.c | 1 - > drivers/iio/adc/stm32-adc.c | 1 - > drivers/iio/adc/stx104.c | 1 - > drivers/iio/adc/sun4i-gpadc-iio.c | 1 - > drivers/iio/adc/ti-adc081c.c | 1 - > drivers/iio/adc/ti-adc0832.c | 1 - > drivers/iio/adc/ti-adc084s021.c | 1 - > drivers/iio/adc/ti-adc108s102.c | 1 - > drivers/iio/adc/ti-adc12138.c | 1 - > drivers/iio/adc/ti-adc128s052.c | 1 - > drivers/iio/adc/ti-adc161s626.c | 1 - > drivers/iio/adc/ti-ads1015.c | 2 - > drivers/iio/adc/ti-ads7950.c | 1 - > drivers/iio/adc/ti-ads8688.c | 2 - > drivers/iio/adc/ti-tlc4541.c | 1 - > drivers/iio/adc/ti_am335x_adc.c | 1 - > drivers/iio/adc/twl4030-madc.c | 1 - > drivers/iio/adc/twl6030-gpadc.c | 1 - > drivers/iio/adc/vf610_adc.c | 1 - > drivers/iio/adc/viperboard_adc.c | 1 - > drivers/iio/adc/xilinx-xadc-core.c | 2 - > drivers/iio/amplifiers/ad8366.c | 1 - > drivers/iio/chemical/ams-iaq-core.c | 1 - > drivers/iio/chemical/atlas-ph-sensor.c | 2 - > drivers/iio/chemical/ccs811.c | 1 - > drivers/iio/chemical/vz89x.c | 1 - > .../iio/common/cros_ec_sensors/cros_ec_sensors.c | 1 - > .../iio/common/hid-sensors/hid-sensor-trigger.c | 1 - > drivers/iio/counter/104-quad-8.c | 1 - > drivers/iio/dac/ad5064.c | 1 - > drivers/iio/dac/ad5360.c | 1 - > drivers/iio/dac/ad5380.c | 1 - > drivers/iio/dac/ad5421.c | 1 - > drivers/iio/dac/ad5446.c | 1 - > drivers/iio/dac/ad5449.c | 1 - > drivers/iio/dac/ad5504.c | 1 - > drivers/iio/dac/ad5592r-base.c | 1 - > drivers/iio/dac/ad5624r_spi.c | 1 - > drivers/iio/dac/ad5686.c | 1 - > drivers/iio/dac/ad5755.c | 1 - > drivers/iio/dac/ad5761.c | 1 - > drivers/iio/dac/ad5764.c | 1 - > drivers/iio/dac/ad5791.c | 1 - > drivers/iio/dac/ad7303.c | 1 - > drivers/iio/dac/ad8801.c | 1 - > drivers/iio/dac/cio-dac.c | 1 - > drivers/iio/dac/dpot-dac.c | 1 - > drivers/iio/dac/lpc18xx_dac.c | 1 - > drivers/iio/dac/ltc2632.c | 1 - > drivers/iio/dac/m62332.c | 1 - > drivers/iio/dac/max517.c | 1 - > drivers/iio/dac/max5821.c | 1 - > drivers/iio/dac/mcp4725.c | 1 - > drivers/iio/dac/mcp4922.c | 1 - > drivers/iio/dac/stm32-dac.c | 1 - > drivers/iio/dac/vf610_dac.c | 1 - > drivers/iio/dummy/iio_simple_dummy.c | 1 - > drivers/iio/frequency/ad9523.c | 1 - > drivers/iio/frequency/adf4350.c | 1 - > drivers/iio/gyro/adis16080.c | 1 - > drivers/iio/gyro/adis16130.c | 1 - > drivers/iio/gyro/adis16136.c | 1 - > drivers/iio/gyro/adis16260.c | 1 - > drivers/iio/gyro/adxrs450.c | 1 - > drivers/iio/gyro/bmg160_core.c | 2 - > drivers/iio/gyro/hid-sensor-gyro-3d.c | 1 - > drivers/iio/gyro/itg3200_buffer.c | 1 - > drivers/iio/gyro/itg3200_core.c | 1 - > drivers/iio/gyro/mpu3050-core.c | 2 - > drivers/iio/gyro/st_gyro_core.c | 2 - > drivers/iio/health/afe4403.c | 2 - > drivers/iio/health/afe4404.c | 2 - > drivers/iio/health/max30100.c | 1 - > drivers/iio/health/max30102.c | 1 - > drivers/iio/humidity/am2315.c | 1 - > drivers/iio/humidity/dht11.c | 1 - > drivers/iio/humidity/hdc100x.c | 1 - > drivers/iio/humidity/hid-sensor-humidity.c | 1 - > drivers/iio/humidity/hts221_buffer.c | 1 - > drivers/iio/humidity/hts221_core.c | 1 - > drivers/iio/humidity/htu21.c | 1 - > drivers/iio/humidity/si7005.c | 1 - > drivers/iio/humidity/si7020.c | 1 - > drivers/iio/imu/adis16400_core.c | 1 - > drivers/iio/imu/adis16480.c | 1 - > drivers/iio/imu/adis_trigger.c | 1 - > drivers/iio/imu/bmi160/bmi160_core.c | 1 - > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 1 - > drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 1 - > drivers/iio/imu/kmx61.c | 3 - > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 2 - > drivers/iio/industrialio-core.c | 35 +++----- > drivers/iio/industrialio-trigger.c | 35 ++++---- > drivers/iio/light/acpi-als.c | 1 - > drivers/iio/light/adjd_s311.c | 1 - > drivers/iio/light/al3320a.c | 1 - > drivers/iio/light/apds9300.c | 2 - > drivers/iio/light/apds9960.c | 1 - > drivers/iio/light/bh1750.c | 1 - > drivers/iio/light/bh1780.c | 1 - > drivers/iio/light/cm32181.c | 1 - > drivers/iio/light/cm3232.c | 1 - > drivers/iio/light/cm3323.c | 1 - > drivers/iio/light/cm3605.c | 1 - > drivers/iio/light/cm36651.c | 1 - > drivers/iio/light/cros_ec_light_prox.c | 1 - > drivers/iio/light/gp2ap020a00f.c | 2 - > drivers/iio/light/hid-sensor-als.c | 1 - > drivers/iio/light/hid-sensor-prox.c | 1 - > drivers/iio/light/isl29018.c | 2 - > drivers/iio/light/isl29028.c | 1 - > drivers/iio/light/isl29125.c | 1 - > drivers/iio/light/jsa1212.c | 1 - > drivers/iio/light/lm3533-als.c | 1 - > drivers/iio/light/ltr501.c | 4 - > drivers/iio/light/max44000.c | 1 - > drivers/iio/light/opt3001.c | 1 - > drivers/iio/light/pa12203001.c | 1 - > drivers/iio/light/rpr0521.c | 2 - > drivers/iio/light/si1145.c | 3 - > drivers/iio/light/stk3310.c | 1 - > drivers/iio/light/tcs3414.c | 1 - > drivers/iio/light/tcs3472.c | 1 - > drivers/iio/light/tsl2563.c | 2 - > drivers/iio/light/tsl2583.c | 1 - > drivers/iio/light/tsl4531.c | 1 - > drivers/iio/light/us5182d.c | 1 - > drivers/iio/light/vcnl4000.c | 1 - > drivers/iio/light/veml6070.c | 1 - > drivers/iio/light/vl6180.c | 1 - > drivers/iio/magnetometer/ak8974.c | 1 - > drivers/iio/magnetometer/ak8975.c | 1 - > drivers/iio/magnetometer/bmc150_magn.c | 2 - > drivers/iio/magnetometer/hid-sensor-magn-3d.c | 1 - > drivers/iio/magnetometer/hmc5843_core.c | 1 - > drivers/iio/magnetometer/mag3110.c | 1 - > drivers/iio/magnetometer/mmc35240.c | 1 - > drivers/iio/magnetometer/st_magn_core.c | 2 - > drivers/iio/orientation/hid-sensor-incl-3d.c | 1 - > drivers/iio/orientation/hid-sensor-rotation.c | 1 - > drivers/iio/potentiometer/ds1803.c | 1 - > drivers/iio/potentiometer/max5481.c | 2 - > drivers/iio/potentiometer/max5487.c | 2 - > drivers/iio/potentiometer/mcp4131.c | 1 - > drivers/iio/potentiometer/mcp4531.c | 1 - > drivers/iio/potentiometer/tpl0102.c | 1 - > drivers/iio/potentiostat/lmp91000.c | 2 - > drivers/iio/pressure/abp060mg.c | 1 - > drivers/iio/pressure/bmp280-core.c | 1 - > drivers/iio/pressure/cros_ec_baro.c | 1 - > drivers/iio/pressure/hid-sensor-press.c | 1 - > drivers/iio/pressure/hp03.c | 1 - > drivers/iio/pressure/hp206c.c | 1 - > drivers/iio/pressure/mpl115.c | 1 - > drivers/iio/pressure/mpl3115.c | 1 - > drivers/iio/pressure/ms5611_core.c | 1 - > drivers/iio/pressure/ms5637.c | 1 - > drivers/iio/pressure/st_pressure_core.c | 2 - > drivers/iio/pressure/t5403.c | 1 - > drivers/iio/pressure/zpa2326.c | 2 - > drivers/iio/proximity/as3935.c | 2 - > drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 1 - > drivers/iio/proximity/srf04.c | 1 - > drivers/iio/proximity/srf08.c | 1 - > drivers/iio/proximity/sx9500.c | 2 - > drivers/iio/temperature/hid-sensor-temperature.c | 1 - > drivers/iio/temperature/maxim_thermocouple.c | 1 - > drivers/iio/temperature/mlx90614.c | 1 - > drivers/iio/temperature/tmp006.c | 1 - > drivers/iio/temperature/tmp007.c | 1 - > drivers/iio/temperature/tsys01.c | 1 - > drivers/iio/temperature/tsys02d.c | 1 - > drivers/iio/trigger/iio-trig-hrtimer.c | 1 - > drivers/iio/trigger/iio-trig-interrupt.c | 1 - > drivers/iio/trigger/iio-trig-loop.c | 1 - > drivers/iio/trigger/iio-trig-sysfs.c | 1 - > drivers/iio/trigger/stm32-timer-trigger.c | 2 - > drivers/input/touchscreen/tsc2007_iio.c | 1 - > drivers/platform/x86/toshiba_acpi.c | 1 - > drivers/staging/iio/Documentation/device.txt | 3 - > drivers/staging/iio/Documentation/trigger.txt | 4 - > drivers/staging/iio/accel/adis16201.c | 1 - > drivers/staging/iio/accel/adis16203.c | 1 - > drivers/staging/iio/accel/adis16209.c | 1 - > drivers/staging/iio/accel/adis16240.c | 1 - > drivers/staging/iio/adc/ad7192.c | 2 - > drivers/staging/iio/adc/ad7280a.c | 1 - > drivers/staging/iio/adc/ad7606.c | 4 - > drivers/staging/iio/adc/ad7780.c | 1 - > drivers/staging/iio/adc/ad7816.c | 1 - > drivers/staging/iio/addac/adt7316.c | 2 - > drivers/staging/iio/cdc/ad7150.c | 1 - > drivers/staging/iio/cdc/ad7152.c | 1 - > drivers/staging/iio/cdc/ad7746.c | 1 - > drivers/staging/iio/frequency/ad9832.c | 1 - > drivers/staging/iio/frequency/ad9834.c | 2 - > drivers/staging/iio/gyro/adis16060_core.c | 1 - > drivers/staging/iio/impedance-analyzer/ad5933.c | 1 - > drivers/staging/iio/light/tsl2x7x.c | 5 -- > drivers/staging/iio/meter/ade7753.c | 1 - > drivers/staging/iio/meter/ade7754.c | 1 - > drivers/staging/iio/meter/ade7758_core.c | 1 - > drivers/staging/iio/meter/ade7758_trigger.c | 1 - > drivers/staging/iio/meter/ade7759.c | 1 - > drivers/staging/iio/meter/ade7854.c | 1 - > drivers/staging/iio/resolver/ad2s1200.c | 1 - > drivers/staging/iio/resolver/ad2s1210.c | 1 - > drivers/staging/iio/resolver/ad2s90.c | 1 - > drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 1 - > include/linux/iio/iio.h | 34 ++++++-- > include/linux/iio/trigger.h | 21 +++-- > scripts/coccinelle/api/iio_no_owner.cocci | 94 ++++++++++++++++++++++ > 288 files changed, 164 insertions(+), 412 deletions(-) > create mode 100644 scripts/coccinelle/api/iio_no_owner.cocci > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html