Commit 8a9947552d43b0d20d5fa23ac0ba435d526be454
Committed by
Greg Kroah-Hartman
1 parent
ff179c8cf5
Exists in
master
and in
7 other branches
[PATCH] i2c: Drop i2c_driver.flags, 2 of 3
Just about every i2c chip driver sets the I2C_DF_NOTIFY flag, so we can simply make it the default and drop the flag. If any driver really doesn't want to be notified when i2c adapters are added, that driver can simply omit to set .attach_adapter. This approach is also more robust as it prevents accidental NULL pointer dereferences. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing 91 changed files with 5 additions and 95 deletions Side-by-side Diff
- Documentation/i2c/porting-clients
- Documentation/i2c/writing-clients
- arch/arm/mach-pxa/akita-ioexp.c
- drivers/acorn/char/pcf8583.c
- drivers/hwmon/adm1021.c
- drivers/hwmon/adm1025.c
- drivers/hwmon/adm1026.c
- drivers/hwmon/adm1031.c
- drivers/hwmon/adm9240.c
- drivers/hwmon/asb100.c
- drivers/hwmon/atxp1.c
- drivers/hwmon/ds1621.c
- drivers/hwmon/fscher.c
- drivers/hwmon/fscpos.c
- drivers/hwmon/gl518sm.c
- drivers/hwmon/gl520sm.c
- drivers/hwmon/it87.c
- drivers/hwmon/lm63.c
- drivers/hwmon/lm75.c
- drivers/hwmon/lm77.c
- drivers/hwmon/lm78.c
- drivers/hwmon/lm80.c
- drivers/hwmon/lm83.c
- drivers/hwmon/lm85.c
- drivers/hwmon/lm87.c
- drivers/hwmon/lm90.c
- drivers/hwmon/lm92.c
- drivers/hwmon/max1619.c
- drivers/hwmon/w83781d.c
- drivers/hwmon/w83792d.c
- drivers/hwmon/w83l785ts.c
- drivers/i2c/chips/ds1337.c
- drivers/i2c/chips/ds1374.c
- drivers/i2c/chips/eeprom.c
- drivers/i2c/chips/isp1301_omap.c
- drivers/i2c/chips/m41t00.c
- drivers/i2c/chips/max6875.c
- drivers/i2c/chips/pca9539.c
- drivers/i2c/chips/pcf8574.c
- drivers/i2c/chips/pcf8591.c
- drivers/i2c/chips/rtc8564.c
- drivers/i2c/chips/tps65010.c
- drivers/i2c/chips/x1205.c
- drivers/i2c/i2c-core.c
- drivers/i2c/i2c-dev.c
- drivers/macintosh/therm_adt746x.c
- drivers/macintosh/therm_pm72.c
- drivers/macintosh/therm_windtunnel.c
- drivers/macintosh/windfarm_lm75_sensor.c
- drivers/media/video/adv7170.c
- drivers/media/video/adv7175.c
- drivers/media/video/bt819.c
- drivers/media/video/bt832.c
- drivers/media/video/bt856.c
- drivers/media/video/cs53l32a.c
- drivers/media/video/cx25840/cx25840-core.c
- drivers/media/video/indycam.c
- drivers/media/video/ir-kbd-i2c.c
- drivers/media/video/msp3400.c
- drivers/media/video/ovcamchip/ovcamchip_core.c
- drivers/media/video/saa5246a.c
- drivers/media/video/saa5249.c
- drivers/media/video/saa6588.c
- drivers/media/video/saa7110.c
- drivers/media/video/saa7111.c
- drivers/media/video/saa7114.c
- drivers/media/video/saa7115.c
- drivers/media/video/saa711x.c
- drivers/media/video/saa7127.c
- drivers/media/video/saa7134/saa6752hs.c
- drivers/media/video/saa7185.c
- drivers/media/video/saa7191.c
- drivers/media/video/tda7432.c
- drivers/media/video/tda9840.c
- drivers/media/video/tda9875.c
- drivers/media/video/tda9887.c
- drivers/media/video/tea6415c.c
- drivers/media/video/tea6420.c
- drivers/media/video/tuner-3036.c
- drivers/media/video/tuner-core.c
- drivers/media/video/tvaudio.c
- drivers/media/video/tveeprom.c
- drivers/media/video/tvmixer.c
- drivers/media/video/tvp5150.c
- drivers/media/video/vpx3220.c
- drivers/media/video/wm8775.c
- drivers/video/matrox/matroxfb_maven.c
- include/linux/i2c.h
- sound/oss/dmasound/dac3550a.c
- sound/oss/dmasound/tas_common.c
- sound/ppc/keywest.c
Documentation/i2c/porting-clients
... | ... | @@ -109,6 +109,9 @@ |
109 | 109 | there is a MODULE_LICENSE() line, at the bottom of the file |
110 | 110 | (after MODULE_AUTHOR() and MODULE_DESCRIPTION(), in this order). |
111 | 111 | |
112 | +* [Driver] The flags field of the i2c_driver structure is gone. | |
113 | + I2C_DF_NOTIFY is now the default behavior. | |
114 | + | |
112 | 115 | Coding policy: |
113 | 116 | |
114 | 117 | * [Copyright] Use (C), not (c), for copyright. |
Documentation/i2c/writing-clients
... | ... | @@ -27,7 +27,6 @@ |
27 | 27 | static struct i2c_driver foo_driver = { |
28 | 28 | .owner = THIS_MODULE, |
29 | 29 | .name = "Foo version 2.3 driver", |
30 | - .flags = I2C_DF_NOTIFY, | |
31 | 30 | .attach_adapter = &foo_attach_adapter, |
32 | 31 | .detach_client = &foo_detach_client, |
33 | 32 | .command = &foo_command /* may be NULL */ |
... | ... | @@ -35,10 +34,6 @@ |
35 | 34 | |
36 | 35 | The name field must match the driver name, including the case. It must not |
37 | 36 | contain spaces, and may be up to 31 characters long. |
38 | - | |
39 | -Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This | |
40 | -means that your driver will be notified when new adapters are found. | |
41 | -This is almost always what you want. | |
42 | 37 | |
43 | 38 | All other fields are for call-back functions which will be explained |
44 | 39 | below. |
arch/arm/mach-pxa/akita-ioexp.c
drivers/acorn/char/pcf8583.c
drivers/hwmon/adm1021.c
drivers/hwmon/adm1025.c
drivers/hwmon/adm1026.c
drivers/hwmon/adm1031.c
drivers/hwmon/adm9240.c
drivers/hwmon/asb100.c
drivers/hwmon/atxp1.c
drivers/hwmon/ds1621.c
drivers/hwmon/fscher.c
drivers/hwmon/fscpos.c
drivers/hwmon/gl518sm.c
drivers/hwmon/gl520sm.c
drivers/hwmon/it87.c
drivers/hwmon/lm63.c
drivers/hwmon/lm75.c
drivers/hwmon/lm77.c
drivers/hwmon/lm78.c
drivers/hwmon/lm80.c
drivers/hwmon/lm83.c
drivers/hwmon/lm85.c
drivers/hwmon/lm87.c
drivers/hwmon/lm90.c
drivers/hwmon/lm92.c
drivers/hwmon/max1619.c
drivers/hwmon/w83781d.c
drivers/hwmon/w83792d.c
drivers/hwmon/w83l785ts.c
drivers/i2c/chips/ds1337.c
drivers/i2c/chips/ds1374.c
drivers/i2c/chips/eeprom.c
drivers/i2c/chips/isp1301_omap.c
drivers/i2c/chips/m41t00.c
drivers/i2c/chips/max6875.c
drivers/i2c/chips/pca9539.c
drivers/i2c/chips/pcf8574.c
drivers/i2c/chips/pcf8591.c
drivers/i2c/chips/rtc8564.c
drivers/i2c/chips/tps65010.c
drivers/i2c/chips/x1205.c
drivers/i2c/i2c-core.c
... | ... | @@ -197,7 +197,7 @@ |
197 | 197 | /* inform drivers of new adapters */ |
198 | 198 | list_for_each(item,&drivers) { |
199 | 199 | driver = list_entry(item, struct i2c_driver, list); |
200 | - if (driver->flags & I2C_DF_NOTIFY) | |
200 | + if (driver->attach_adapter) | |
201 | 201 | /* We ignore the return code; if it fails, too bad */ |
202 | 202 | driver->attach_adapter(adap); |
203 | 203 | } |
... | ... | @@ -309,7 +309,7 @@ |
309 | 309 | pr_debug("i2c-core: driver [%s] registered\n", driver->name); |
310 | 310 | |
311 | 311 | /* now look for instances of driver on our adapters */ |
312 | - if (driver->flags & I2C_DF_NOTIFY) { | |
312 | + if (driver->attach_adapter) { | |
313 | 313 | list_for_each(item,&adapters) { |
314 | 314 | adapter = list_entry(item, struct i2c_adapter, list); |
315 | 315 | driver->attach_adapter(adapter); |
drivers/i2c/i2c-dev.c
drivers/macintosh/therm_adt746x.c
drivers/macintosh/therm_pm72.c
drivers/macintosh/therm_windtunnel.c
drivers/macintosh/windfarm_lm75_sensor.c
drivers/media/video/adv7170.c
drivers/media/video/adv7175.c
drivers/media/video/bt819.c
drivers/media/video/bt832.c
drivers/media/video/bt856.c
drivers/media/video/cs53l32a.c
drivers/media/video/cx25840/cx25840-core.c
drivers/media/video/indycam.c
drivers/media/video/ir-kbd-i2c.c
drivers/media/video/msp3400.c
drivers/media/video/ovcamchip/ovcamchip_core.c
drivers/media/video/saa5246a.c
drivers/media/video/saa5249.c
drivers/media/video/saa6588.c
drivers/media/video/saa7110.c
drivers/media/video/saa7111.c
drivers/media/video/saa7114.c
drivers/media/video/saa7115.c
... | ... | @@ -1356,7 +1356,6 @@ |
1356 | 1356 | static struct i2c_driver i2c_driver_saa7115 = { |
1357 | 1357 | .name = "saa7115", |
1358 | 1358 | .id = I2C_DRIVERID_SAA711X, |
1359 | - .flags = I2C_DF_NOTIFY, | |
1360 | 1359 | .attach_adapter = saa7115_probe, |
1361 | 1360 | .detach_client = saa7115_detach, |
1362 | 1361 | .command = saa7115_command, |
drivers/media/video/saa711x.c
drivers/media/video/saa7127.c
drivers/media/video/saa7134/saa6752hs.c
drivers/media/video/saa7185.c
drivers/media/video/saa7191.c
drivers/media/video/tda7432.c
drivers/media/video/tda9840.c
drivers/media/video/tda9875.c
drivers/media/video/tda9887.c
drivers/media/video/tea6415c.c
drivers/media/video/tea6420.c
drivers/media/video/tuner-3036.c
drivers/media/video/tuner-core.c
drivers/media/video/tvaudio.c
drivers/media/video/tveeprom.c
drivers/media/video/tvmixer.c
drivers/media/video/tvp5150.c
drivers/media/video/vpx3220.c
drivers/media/video/wm8775.c
drivers/video/matrox/matroxfb_maven.c
include/linux/i2c.h
sound/oss/dmasound/dac3550a.c
sound/oss/dmasound/tas_common.c
sound/ppc/keywest.c