[PATCH V2 00/45] IIO: Drop manual assignment of THIS_MODULE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

-- 
2.13.3

--
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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux