aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2005-04-02 13:31:02 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-22 00:51:48 -0400
commitb3d5496ea5915fa4848fe307af9f7097f312e932 (patch)
treee358977311df194ebac13d57c5e8abf1a87bd65c
parent2a5a68b840cbab31baab2d9b2e1e6de3b289ae1e (diff)
[PATCH] I2C: Kill address ranges in non-sensors i2c chip drivers
Some months ago, you killed the address ranges mechanism from all sensors i2c chip drivers (both the module parameters and the in-code address lists). I think it was a very good move, as the ranges can easily be replaced by individual addresses, and this allowed for significant cleanups in the i2c core (let alone the impressive size shrink for all these drivers). Unfortunately you did not do the same for non-sensors i2c chip drivers. These need the address ranges even less, so we could get rid of the ranges here as well for another significant i2c core cleanup. Here comes a patch which does just that. Since the process is exactly the same as what you did for the other drivers set already, I did not split this one in parts. A documentation update is included. The change saves 308 bytes in the i2c core, and an average 1382 bytes for chip drivers which use I2C_CLIENT_INSMOD, 126 bytes for those which do not. This change is required if we want to merge the sensors and non-sensors i2c code (and we want to do this). Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Index: gregkh-2.6/Documentation/i2c/writing-clients ===================================================================
-rw-r--r--Documentation/i2c/writing-clients62
-rw-r--r--drivers/acorn/char/pcf8583.c3
-rw-r--r--drivers/i2c/chips/isp1301_omap.c1
-rw-r--r--drivers/i2c/chips/m41t00.c3
-rw-r--r--drivers/i2c/chips/rtc8564.c3
-rw-r--r--drivers/i2c/i2c-core.c35
-rw-r--r--drivers/macintosh/therm_windtunnel.c6
-rw-r--r--drivers/media/video/adv7170.c6
-rw-r--r--drivers/media/video/adv7175.c6
-rw-r--r--drivers/media/video/bt819.c6
-rw-r--r--drivers/media/video/bt832.c4
-rw-r--r--drivers/media/video/bt856.c6
-rw-r--r--drivers/media/video/msp3400.c1
-rw-r--r--drivers/media/video/saa5246a.c1
-rw-r--r--drivers/media/video/saa5249.c1
-rw-r--r--drivers/media/video/saa7110.c6
-rw-r--r--drivers/media/video/saa7111.c6
-rw-r--r--drivers/media/video/saa7114.c6
-rw-r--r--drivers/media/video/saa7134/saa6752hs.c1
-rw-r--r--drivers/media/video/saa7185.c6
-rw-r--r--drivers/media/video/tda7432.c1
-rw-r--r--drivers/media/video/tda9840.c1
-rw-r--r--drivers/media/video/tda9875.c1
-rw-r--r--drivers/media/video/tda9887.c1
-rw-r--r--drivers/media/video/tea6415c.c1
-rw-r--r--drivers/media/video/tea6420.c1
-rw-r--r--drivers/media/video/tuner-3036.c13
-rw-r--r--drivers/media/video/tuner-core.c11
-rw-r--r--drivers/media/video/tvaudio.c1
-rw-r--r--drivers/media/video/tveeprom.c1
-rw-r--r--drivers/media/video/vpx3220.c6
-rw-r--r--drivers/video/matrox/matroxfb_maven.c1
-rw-r--r--include/linux/i2c.h12
33 files changed, 27 insertions, 193 deletions
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index ad27511e3c7d..f482dae81de3 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -171,45 +171,31 @@ The following lists are used internally:
171 171
172 normal_i2c: filled in by the module writer. 172 normal_i2c: filled in by the module writer.
173 A list of I2C addresses which should normally be examined. 173 A list of I2C addresses which should normally be examined.
174 normal_i2c_range: filled in by the module writer.
175 A list of pairs of I2C addresses, each pair being an inclusive range of
176 addresses which should normally be examined.
177 probe: insmod parameter. 174 probe: insmod parameter.
178 A list of pairs. The first value is a bus number (-1 for any I2C bus), 175 A list of pairs. The first value is a bus number (-1 for any I2C bus),
179 the second is the address. These addresses are also probed, as if they 176 the second is the address. These addresses are also probed, as if they
180 were in the 'normal' list. 177 were in the 'normal' list.
181 probe_range: insmod parameter.
182 A list of triples. The first value is a bus number (-1 for any I2C bus),
183 the second and third are addresses. These form an inclusive range of
184 addresses that are also probed, as if they were in the 'normal' list.
185 ignore: insmod parameter. 178 ignore: insmod parameter.
186 A list of pairs. The first value is a bus number (-1 for any I2C bus), 179 A list of pairs. The first value is a bus number (-1 for any I2C bus),
187 the second is the I2C address. These addresses are never probed. 180 the second is the I2C address. These addresses are never probed.
188 This parameter overrules 'normal' and 'probe', but not the 'force' lists. 181 This parameter overrules 'normal' and 'probe', but not the 'force' lists.
189 ignore_range: insmod parameter.
190 A list of triples. The first value is a bus number (-1 for any I2C bus),
191 the second and third are addresses. These form an inclusive range of
192 I2C addresses that are never probed.
193 This parameter overrules 'normal' and 'probe', but not the 'force' lists.
194 force: insmod parameter. 182 force: insmod parameter.
195 A list of pairs. The first value is a bus number (-1 for any I2C bus), 183 A list of pairs. The first value is a bus number (-1 for any I2C bus),
196 the second is the I2C address. A device is blindly assumed to be on 184 the second is the I2C address. A device is blindly assumed to be on
197 the given address, no probing is done. 185 the given address, no probing is done.
198 186
199Fortunately, as a module writer, you just have to define the `normal' 187Fortunately, as a module writer, you just have to define the `normal_i2c'
200and/or `normal_range' parameters. The complete declaration could look 188parameter. The complete declaration could look like this:
201like this:
202 189
203 /* Scan 0x20 to 0x2f, 0x37, and 0x40 to 0x4f */ 190 /* Scan 0x37, and 0x48 to 0x4f */
204 static unsigned short normal_i2c[] = { 0x37,I2C_CLIENT_END }; 191 static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c,
205 static unsigned short normal_i2c_range[] = { 0x20, 0x2f, 0x40, 0x4f, 192 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
206 I2C_CLIENT_END };
207 193
208 /* Magic definition of all other variables and things */ 194 /* Magic definition of all other variables and things */
209 I2C_CLIENT_INSMOD; 195 I2C_CLIENT_INSMOD;
210 196
211Note that you *have* to call the two defined variables `normal_i2c' and 197Note that you *have* to call the defined variable `normal_i2c',
212`normal_i2c_range', without any prefix! 198without any prefix!
213 199
214 200
215Probing classes (sensors) 201Probing classes (sensors)
@@ -223,39 +209,17 @@ The following lists are used internally. They are all lists of integers.
223 209
224 normal_i2c: filled in by the module writer. Terminated by SENSORS_I2C_END. 210 normal_i2c: filled in by the module writer. Terminated by SENSORS_I2C_END.
225 A list of I2C addresses which should normally be examined. 211 A list of I2C addresses which should normally be examined.
226 normal_i2c_range: filled in by the module writer. Terminated by
227 SENSORS_I2C_END
228 A list of pairs of I2C addresses, each pair being an inclusive range of
229 addresses which should normally be examined.
230 normal_isa: filled in by the module writer. Terminated by SENSORS_ISA_END. 212 normal_isa: filled in by the module writer. Terminated by SENSORS_ISA_END.
231 A list of ISA addresses which should normally be examined. 213 A list of ISA addresses which should normally be examined.
232 normal_isa_range: filled in by the module writer. Terminated by
233 SENSORS_ISA_END
234 A list of triples. The first two elements are ISA addresses, being an
235 range of addresses which should normally be examined. The third is the
236 modulo parameter: only addresses which are 0 module this value relative
237 to the first address of the range are actually considered.
238 probe: insmod parameter. Initialize this list with SENSORS_I2C_END values. 214 probe: insmod parameter. Initialize this list with SENSORS_I2C_END values.
239 A list of pairs. The first value is a bus number (SENSORS_ISA_BUS for 215 A list of pairs. The first value is a bus number (SENSORS_ISA_BUS for
240 the ISA bus, -1 for any I2C bus), the second is the address. These 216 the ISA bus, -1 for any I2C bus), the second is the address. These
241 addresses are also probed, as if they were in the 'normal' list. 217 addresses are also probed, as if they were in the 'normal' list.
242 probe_range: insmod parameter. Initialize this list with SENSORS_I2C_END
243 values.
244 A list of triples. The first value is a bus number (SENSORS_ISA_BUS for
245 the ISA bus, -1 for any I2C bus), the second and third are addresses.
246 These form an inclusive range of addresses that are also probed, as
247 if they were in the 'normal' list.
248 ignore: insmod parameter. Initialize this list with SENSORS_I2C_END values. 218 ignore: insmod parameter. Initialize this list with SENSORS_I2C_END values.
249 A list of pairs. The first value is a bus number (SENSORS_ISA_BUS for 219 A list of pairs. The first value is a bus number (SENSORS_ISA_BUS for
250 the ISA bus, -1 for any I2C bus), the second is the I2C address. These 220 the ISA bus, -1 for any I2C bus), the second is the I2C address. These
251 addresses are never probed. This parameter overrules 'normal' and 221 addresses are never probed. This parameter overrules 'normal' and
252 'probe', but not the 'force' lists. 222 'probe', but not the 'force' lists.
253 ignore_range: insmod parameter. Initialize this list with SENSORS_I2C_END
254 values.
255 A list of triples. The first value is a bus number (SENSORS_ISA_BUS for
256 the ISA bus, -1 for any I2C bus), the second and third are addresses.
257 These form an inclusive range of I2C addresses that are never probed.
258 This parameter overrules 'normal' and 'probe', but not the 'force' lists.
259 223
260Also used is a list of pointers to sensors_force_data structures: 224Also used is a list of pointers to sensors_force_data structures:
261 force_data: insmod parameters. A list, ending with an element of which 225 force_data: insmod parameters. A list, ending with an element of which
@@ -269,16 +233,14 @@ Also used is a list of pointers to sensors_force_data structures:
269So we have a generic insmod variabled `force', and chip-specific variables 233So we have a generic insmod variabled `force', and chip-specific variables
270`force_CHIPNAME'. 234`force_CHIPNAME'.
271 235
272Fortunately, as a module writer, you just have to define the `normal' 236Fortunately, as a module writer, you just have to define the `normal_i2c'
273and/or `normal_range' parameters, and define what chip names are used. 237and `normal_isa' parameters, and define what chip names are used.
274The complete declaration could look like this: 238The complete declaration could look like this:
275 /* Scan i2c addresses 0x20 to 0x2f, 0x37, and 0x40 to 0x4f 239 /* Scan i2c addresses 0x37, and 0x48 to 0x4f */
276 static unsigned short normal_i2c[] = {0x37,SENSORS_I2C_END}; 240 static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c,
277 static unsigned short normal_i2c_range[] = {0x20,0x2f,0x40,0x4f, 241 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
278 SENSORS_I2C_END};
279 /* Scan ISA address 0x290 */ 242 /* Scan ISA address 0x290 */
280 static unsigned int normal_isa[] = {0x0290,SENSORS_ISA_END}; 243 static unsigned int normal_isa[] = {0x0290,SENSORS_ISA_END};
281 static unsigned int normal_isa_range[] = {SENSORS_ISA_END};
282 244
283 /* Define chips foo and bar, as well as all module parameters and things */ 245 /* Define chips foo and bar, as well as all module parameters and things */
284 SENSORS_INSMOD_2(foo,bar); 246 SENSORS_INSMOD_2(foo,bar);
diff --git a/drivers/acorn/char/pcf8583.c b/drivers/acorn/char/pcf8583.c
index ad7ae7ab8920..141b4c237a50 100644
--- a/drivers/acorn/char/pcf8583.c
+++ b/drivers/acorn/char/pcf8583.c
@@ -26,11 +26,8 @@ static unsigned short normal_addr[] = { 0x50, I2C_CLIENT_END };
26 26
27static struct i2c_client_address_data addr_data = { 27static struct i2c_client_address_data addr_data = {
28 .normal_i2c = normal_addr, 28 .normal_i2c = normal_addr,
29 .normal_i2c_range = ignore,
30 .probe = ignore, 29 .probe = ignore,
31 .probe_range = ignore,
32 .ignore = ignore, 30 .ignore = ignore,
33 .ignore_range = ignore,
34 .force = ignore, 31 .force = ignore,
35}; 32};
36 33
diff --git a/drivers/i2c/chips/isp1301_omap.c b/drivers/i2c/chips/isp1301_omap.c
index 7f29a8aff165..354a26295672 100644
--- a/drivers/i2c/chips/isp1301_omap.c
+++ b/drivers/i2c/chips/isp1301_omap.c
@@ -145,7 +145,6 @@ static inline void notresponding(struct isp1301 *isp)
145static unsigned short normal_i2c[] = { 145static unsigned short normal_i2c[] = {
146 ISP_BASE, ISP_BASE + 1, 146 ISP_BASE, ISP_BASE + 1,
147 I2C_CLIENT_END }; 147 I2C_CLIENT_END };
148static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
149 148
150I2C_CLIENT_INSMOD; 149I2C_CLIENT_INSMOD;
151 150
diff --git a/drivers/i2c/chips/m41t00.c b/drivers/i2c/chips/m41t00.c
index e771566dffa8..5e463c47bfbc 100644
--- a/drivers/i2c/chips/m41t00.c
+++ b/drivers/i2c/chips/m41t00.c
@@ -40,11 +40,8 @@ static unsigned short normal_addr[] = { 0x68, I2C_CLIENT_END };
40 40
41static struct i2c_client_address_data addr_data = { 41static struct i2c_client_address_data addr_data = {
42 .normal_i2c = normal_addr, 42 .normal_i2c = normal_addr,
43 .normal_i2c_range = ignore,
44 .probe = ignore, 43 .probe = ignore,
45 .probe_range = ignore,
46 .ignore = ignore, 44 .ignore = ignore,
47 .ignore_range = ignore,
48 .force = ignore, 45 .force = ignore,
49}; 46};
50 47
diff --git a/drivers/i2c/chips/rtc8564.c b/drivers/i2c/chips/rtc8564.c
index 5a9deddb626b..30f553e73700 100644
--- a/drivers/i2c/chips/rtc8564.c
+++ b/drivers/i2c/chips/rtc8564.c
@@ -66,11 +66,8 @@ static unsigned short normal_addr[] = { 0x51, I2C_CLIENT_END };
66 66
67static struct i2c_client_address_data addr_data = { 67static struct i2c_client_address_data addr_data = {
68 .normal_i2c = normal_addr, 68 .normal_i2c = normal_addr,
69 .normal_i2c_range = ignore,
70 .probe = ignore, 69 .probe = ignore,
71 .probe_range = ignore,
72 .ignore = ignore, 70 .ignore = ignore,
73 .ignore_range = ignore,
74 .force = ignore, 71 .force = ignore,
75}; 72};
76 73
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index a22e53badacb..4cc8c9f7211c 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -742,18 +742,6 @@ int i2c_probe(struct i2c_adapter *adapter,
742 found = 1; 742 found = 1;
743 } 743 }
744 } 744 }
745 for (i = 0;
746 !found && (address_data->ignore_range[i] != I2C_CLIENT_END);
747 i += 3) {
748 if (((adap_id == address_data->ignore_range[i]) ||
749 ((address_data->ignore_range[i]==ANY_I2C_BUS))) &&
750 (addr >= address_data->ignore_range[i+1]) &&
751 (addr <= address_data->ignore_range[i+2])) {
752 dev_dbg(&adapter->dev, "found ignore_range parameter for adapter %d, "
753 "addr %04x\n", adap_id,addr);
754 found = 1;
755 }
756 }
757 if (found) 745 if (found)
758 continue; 746 continue;
759 747
@@ -770,17 +758,6 @@ int i2c_probe(struct i2c_adapter *adapter,
770 } 758 }
771 759
772 for (i = 0; 760 for (i = 0;
773 !found && (address_data->normal_i2c_range[i] != I2C_CLIENT_END);
774 i += 2) {
775 if ((addr >= address_data->normal_i2c_range[i]) &&
776 (addr <= address_data->normal_i2c_range[i+1])) {
777 found = 1;
778 dev_dbg(&adapter->dev, "found normal i2c_range entry for adapter %d, "
779 "addr %04x\n", adap_id,addr);
780 }
781 }
782
783 for (i = 0;
784 !found && (address_data->probe[i] != I2C_CLIENT_END); 761 !found && (address_data->probe[i] != I2C_CLIENT_END);
785 i += 2) { 762 i += 2) {
786 if (((adap_id == address_data->probe[i]) || 763 if (((adap_id == address_data->probe[i]) ||
@@ -791,18 +768,6 @@ int i2c_probe(struct i2c_adapter *adapter,
791 "addr %04x\n", adap_id,addr); 768 "addr %04x\n", adap_id,addr);
792 } 769 }
793 } 770 }
794 for (i = 0;
795 !found && (address_data->probe_range[i] != I2C_CLIENT_END);
796 i += 3) {
797 if (((adap_id == address_data->probe_range[i]) ||
798 (address_data->probe_range[i] == ANY_I2C_BUS)) &&
799 (addr >= address_data->probe_range[i+1]) &&
800 (addr <= address_data->probe_range[i+2])) {
801 found = 1;
802 dev_dbg(&adapter->dev, "found probe_range parameter for adapter %d, "
803 "addr %04x\n", adap_id,addr);
804 }
805 }
806 if (!found) 771 if (!found)
807 continue; 772 continue;
808 773
diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c
index 0bdb47f08c2a..61400f04015e 100644
--- a/drivers/macintosh/therm_windtunnel.c
+++ b/drivers/macintosh/therm_windtunnel.c
@@ -51,8 +51,10 @@
51static int do_probe( struct i2c_adapter *adapter, int addr, int kind); 51static int do_probe( struct i2c_adapter *adapter, int addr, int kind);
52 52
53/* scan 0x48-0x4f (DS1775) and 0x2c-2x2f (ADM1030) */ 53/* scan 0x48-0x4f (DS1775) and 0x2c-2x2f (ADM1030) */
54static unsigned short normal_i2c[] = { 0x49, 0x2c, I2C_CLIENT_END }; 54static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b,
55static unsigned short normal_i2c_range[] = { 0x48, 0x4f, 0x2c, 0x2f, I2C_CLIENT_END }; 55 0x4c, 0x4d, 0x4e, 0x4f,
56 0x2c, 0x2d, 0x2e, 0x2f,
57 I2C_CLIENT_END };
56 58
57I2C_CLIENT_INSMOD; 59I2C_CLIENT_INSMOD;
58 60
diff --git a/drivers/media/video/adv7170.c b/drivers/media/video/adv7170.c
index 80254caa444c..e9bf3394296a 100644
--- a/drivers/media/video/adv7170.c
+++ b/drivers/media/video/adv7170.c
@@ -384,21 +384,15 @@ static unsigned short normal_i2c[] =
384 I2C_ADV7171 >> 1, (I2C_ADV7171 >> 1) + 1, 384 I2C_ADV7171 >> 1, (I2C_ADV7171 >> 1) + 1,
385 I2C_CLIENT_END 385 I2C_CLIENT_END
386}; 386};
387static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
388 387
389static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 388static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
390static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
391static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 389static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
392static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
393static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 390static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
394 391
395static struct i2c_client_address_data addr_data = { 392static struct i2c_client_address_data addr_data = {
396 .normal_i2c = normal_i2c, 393 .normal_i2c = normal_i2c,
397 .normal_i2c_range = normal_i2c_range,
398 .probe = probe, 394 .probe = probe,
399 .probe_range = probe_range,
400 .ignore = ignore, 395 .ignore = ignore,
401 .ignore_range = ignore_range,
402 .force = force 396 .force = force
403}; 397};
404 398
diff --git a/drivers/media/video/adv7175.c b/drivers/media/video/adv7175.c
index 95d0974b0ab5..2d5fa44fcd4d 100644
--- a/drivers/media/video/adv7175.c
+++ b/drivers/media/video/adv7175.c
@@ -434,21 +434,15 @@ static unsigned short normal_i2c[] =
434 I2C_ADV7176 >> 1, (I2C_ADV7176 >> 1) + 1, 434 I2C_ADV7176 >> 1, (I2C_ADV7176 >> 1) + 1,
435 I2C_CLIENT_END 435 I2C_CLIENT_END
436}; 436};
437static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
438 437
439static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 438static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
440static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
441static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 439static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
442static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
443static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 440static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
444 441
445static struct i2c_client_address_data addr_data = { 442static struct i2c_client_address_data addr_data = {
446 .normal_i2c = normal_i2c, 443 .normal_i2c = normal_i2c,
447 .normal_i2c_range = normal_i2c_range,
448 .probe = probe, 444 .probe = probe,
449 .probe_range = probe_range,
450 .ignore = ignore, 445 .ignore = ignore,
451 .ignore_range = ignore_range,
452 .force = force 446 .force = force
453}; 447};
454 448
diff --git a/drivers/media/video/bt819.c b/drivers/media/video/bt819.c
index cf0db2554a80..31d51851bb44 100644
--- a/drivers/media/video/bt819.c
+++ b/drivers/media/video/bt819.c
@@ -500,21 +500,15 @@ static unsigned short normal_i2c[] = {
500 I2C_BT819 >> 1, 500 I2C_BT819 >> 1,
501 I2C_CLIENT_END, 501 I2C_CLIENT_END,
502}; 502};
503static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
504 503
505static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 504static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
506static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
507static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 505static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
508static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
509static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 506static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
510 507
511static struct i2c_client_address_data addr_data = { 508static struct i2c_client_address_data addr_data = {
512 .normal_i2c = normal_i2c, 509 .normal_i2c = normal_i2c,
513 .normal_i2c_range = normal_i2c_range,
514 .probe = probe, 510 .probe = probe,
515 .probe_range = probe_range,
516 .ignore = ignore, 511 .ignore = ignore,
517 .ignore_range = ignore_range,
518 .force = force 512 .force = force
519}; 513};
520 514
diff --git a/drivers/media/video/bt832.c b/drivers/media/video/bt832.c
index efe605a113a1..07f72f64c5f7 100644
--- a/drivers/media/video/bt832.c
+++ b/drivers/media/video/bt832.c
@@ -39,8 +39,8 @@
39MODULE_LICENSE("GPL"); 39MODULE_LICENSE("GPL");
40 40
41/* Addresses to scan */ 41/* Addresses to scan */
42static unsigned short normal_i2c[] = {I2C_CLIENT_END}; 42static unsigned short normal_i2c[] = { I2C_BT832_ALT1>>1, I2C_BT832_ALT2>>1,
43static unsigned short normal_i2c_range[] = {I2C_BT832_ALT1>>1,I2C_BT832_ALT2>>1,I2C_CLIENT_END}; 43 I2C_CLIENT_END };
44I2C_CLIENT_INSMOD; 44I2C_CLIENT_INSMOD;
45 45
46/* ---------------------------------------------------------------------- */ 46/* ---------------------------------------------------------------------- */
diff --git a/drivers/media/video/bt856.c b/drivers/media/video/bt856.c
index 72c7eb0f8c24..59121a0ec816 100644
--- a/drivers/media/video/bt856.c
+++ b/drivers/media/video/bt856.c
@@ -288,21 +288,15 @@ bt856_command (struct i2c_client *client,
288 * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1' 288 * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1'
289 */ 289 */
290static unsigned short normal_i2c[] = { I2C_BT856 >> 1, I2C_CLIENT_END }; 290static unsigned short normal_i2c[] = { I2C_BT856 >> 1, I2C_CLIENT_END };
291static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
292 291
293static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 292static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
294static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
295static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 293static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
296static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
297static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 294static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
298 295
299static struct i2c_client_address_data addr_data = { 296static struct i2c_client_address_data addr_data = {
300 .normal_i2c = normal_i2c, 297 .normal_i2c = normal_i2c,
301 .normal_i2c_range = normal_i2c_range,
302 .probe = probe, 298 .probe = probe,
303 .probe_range = probe_range,
304 .ignore = ignore, 299 .ignore = ignore,
305 .ignore_range = ignore_range,
306 .force = force 300 .force = force
307}; 301};
308 302
diff --git a/drivers/media/video/msp3400.c b/drivers/media/video/msp3400.c
index 7fbb8581a87d..09464d624a6b 100644
--- a/drivers/media/video/msp3400.c
+++ b/drivers/media/video/msp3400.c
@@ -147,7 +147,6 @@ static unsigned short normal_i2c[] = {
147 I2C_MSP3400C_ALT >> 1, 147 I2C_MSP3400C_ALT >> 1,
148 I2C_CLIENT_END 148 I2C_CLIENT_END
149}; 149};
150static unsigned short normal_i2c_range[] = {I2C_CLIENT_END,I2C_CLIENT_END};
151I2C_CLIENT_INSMOD; 150I2C_CLIENT_INSMOD;
152 151
153/* ----------------------------------------------------------------------- */ 152/* ----------------------------------------------------------------------- */
diff --git a/drivers/media/video/saa5246a.c b/drivers/media/video/saa5246a.c
index ba69f09cbdd1..b8054da31ffd 100644
--- a/drivers/media/video/saa5246a.c
+++ b/drivers/media/video/saa5246a.c
@@ -64,7 +64,6 @@ static struct video_device saa_template; /* Declared near bottom */
64 64
65/* Addresses to scan */ 65/* Addresses to scan */
66static unsigned short normal_i2c[] = { I2C_ADDRESS, I2C_CLIENT_END }; 66static unsigned short normal_i2c[] = { I2C_ADDRESS, I2C_CLIENT_END };
67static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
68I2C_CLIENT_INSMOD; 67I2C_CLIENT_INSMOD;
69 68
70static struct i2c_client client_template; 69static struct i2c_client client_template;
diff --git a/drivers/media/video/saa5249.c b/drivers/media/video/saa5249.c
index d74caa139f0a..7ffa2e9a9bf3 100644
--- a/drivers/media/video/saa5249.c
+++ b/drivers/media/video/saa5249.c
@@ -132,7 +132,6 @@ static struct video_device saa_template; /* Declared near bottom */
132 132
133/* Addresses to scan */ 133/* Addresses to scan */
134static unsigned short normal_i2c[] = {34>>1,I2C_CLIENT_END}; 134static unsigned short normal_i2c[] = {34>>1,I2C_CLIENT_END};
135static unsigned short normal_i2c_range[] = {I2C_CLIENT_END};
136I2C_CLIENT_INSMOD; 135I2C_CLIENT_INSMOD;
137 136
138static struct i2c_client client_template; 137static struct i2c_client client_template;
diff --git a/drivers/media/video/saa7110.c b/drivers/media/video/saa7110.c
index 64273b438530..90b0a0b34f38 100644
--- a/drivers/media/video/saa7110.c
+++ b/drivers/media/video/saa7110.c
@@ -463,21 +463,15 @@ static unsigned short normal_i2c[] = {
463 (I2C_SAA7110 >> 1) + 1, 463 (I2C_SAA7110 >> 1) + 1,
464 I2C_CLIENT_END 464 I2C_CLIENT_END
465}; 465};
466static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
467 466
468static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 467static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
469static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
470static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 468static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
471static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
472static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 469static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
473 470
474static struct i2c_client_address_data addr_data = { 471static struct i2c_client_address_data addr_data = {
475 .normal_i2c = normal_i2c, 472 .normal_i2c = normal_i2c,
476 .normal_i2c_range = normal_i2c_range,
477 .probe = probe, 473 .probe = probe,
478 .probe_range = probe_range,
479 .ignore = ignore, 474 .ignore = ignore,
480 .ignore_range = ignore_range,
481 .force = force 475 .force = force
482}; 476};
483 477
diff --git a/drivers/media/video/saa7111.c b/drivers/media/video/saa7111.c
index 0a873112ae23..e305a89f7cd7 100644
--- a/drivers/media/video/saa7111.c
+++ b/drivers/media/video/saa7111.c
@@ -482,21 +482,15 @@ saa7111_command (struct i2c_client *client,
482 * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1' 482 * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1'
483 */ 483 */
484static unsigned short normal_i2c[] = { I2C_SAA7111 >> 1, I2C_CLIENT_END }; 484static unsigned short normal_i2c[] = { I2C_SAA7111 >> 1, I2C_CLIENT_END };
485static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
486 485
487static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 486static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
488static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
489static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 487static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
490static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
491static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 488static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
492 489
493static struct i2c_client_address_data addr_data = { 490static struct i2c_client_address_data addr_data = {
494 .normal_i2c = normal_i2c, 491 .normal_i2c = normal_i2c,
495 .normal_i2c_range = normal_i2c_range,
496 .probe = probe, 492 .probe = probe,
497 .probe_range = probe_range,
498 .ignore = ignore, 493 .ignore = ignore,
499 .ignore_range = ignore_range,
500 .force = force 494 .force = force
501}; 495};
502 496
diff --git a/drivers/media/video/saa7114.c b/drivers/media/video/saa7114.c
index e73023695e58..1ca4e70fed76 100644
--- a/drivers/media/video/saa7114.c
+++ b/drivers/media/video/saa7114.c
@@ -820,21 +820,15 @@ saa7114_command (struct i2c_client *client,
820 */ 820 */
821static unsigned short normal_i2c[] = 821static unsigned short normal_i2c[] =
822 { I2C_SAA7114 >> 1, I2C_SAA7114A >> 1, I2C_CLIENT_END }; 822 { I2C_SAA7114 >> 1, I2C_SAA7114A >> 1, I2C_CLIENT_END };
823static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
824 823
825static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 824static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
826static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
827static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 825static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
828static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
829static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 826static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
830 827
831static struct i2c_client_address_data addr_data = { 828static struct i2c_client_address_data addr_data = {
832 .normal_i2c = normal_i2c, 829 .normal_i2c = normal_i2c,
833 .normal_i2c_range = normal_i2c_range,
834 .probe = probe, 830 .probe = probe,
835 .probe_range = probe_range,
836 .ignore = ignore, 831 .ignore = ignore,
837 .ignore_range = ignore_range,
838 .force = force 832 .force = force
839}; 833};
840 834
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c
index 1db022682980..42c2b565c9fe 100644
--- a/drivers/media/video/saa7134/saa6752hs.c
+++ b/drivers/media/video/saa7134/saa6752hs.c
@@ -22,7 +22,6 @@
22 22
23/* Addresses to scan */ 23/* Addresses to scan */
24static unsigned short normal_i2c[] = {0x20, I2C_CLIENT_END}; 24static unsigned short normal_i2c[] = {0x20, I2C_CLIENT_END};
25static unsigned short normal_i2c_range[] = {I2C_CLIENT_END};
26I2C_CLIENT_INSMOD; 25I2C_CLIENT_INSMOD;
27 26
28MODULE_DESCRIPTION("device driver for saa6752hs MPEG2 encoder"); 27MODULE_DESCRIPTION("device driver for saa6752hs MPEG2 encoder");
diff --git a/drivers/media/video/saa7185.c b/drivers/media/video/saa7185.c
index 5f0b224c3cb6..5c623fadc8fe 100644
--- a/drivers/media/video/saa7185.c
+++ b/drivers/media/video/saa7185.c
@@ -380,21 +380,15 @@ saa7185_command (struct i2c_client *client,
380 * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1' 380 * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1'
381 */ 381 */
382static unsigned short normal_i2c[] = { I2C_SAA7185 >> 1, I2C_CLIENT_END }; 382static unsigned short normal_i2c[] = { I2C_SAA7185 >> 1, I2C_CLIENT_END };
383static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
384 383
385static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 384static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
386static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
387static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 385static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
388static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
389static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 386static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
390 387
391static struct i2c_client_address_data addr_data = { 388static struct i2c_client_address_data addr_data = {
392 .normal_i2c = normal_i2c, 389 .normal_i2c = normal_i2c,
393 .normal_i2c_range = normal_i2c_range,
394 .probe = probe, 390 .probe = probe,
395 .probe_range = probe_range,
396 .ignore = ignore, 391 .ignore = ignore,
397 .ignore_range = ignore_range,
398 .force = force 392 .force = force
399}; 393};
400 394
diff --git a/drivers/media/video/tda7432.c b/drivers/media/video/tda7432.c
index 376a4a439e9b..07ba6d3ed08c 100644
--- a/drivers/media/video/tda7432.c
+++ b/drivers/media/video/tda7432.c
@@ -74,7 +74,6 @@ static unsigned short normal_i2c[] = {
74 I2C_TDA7432 >> 1, 74 I2C_TDA7432 >> 1,
75 I2C_CLIENT_END, 75 I2C_CLIENT_END,
76}; 76};
77static unsigned short normal_i2c_range[] = { I2C_CLIENT_END, I2C_CLIENT_END };
78I2C_CLIENT_INSMOD; 77I2C_CLIENT_INSMOD;
79 78
80/* Structure of address and subaddresses for the tda7432 */ 79/* Structure of address and subaddresses for the tda7432 */
diff --git a/drivers/media/video/tda9840.c b/drivers/media/video/tda9840.c
index b5177c6f54f6..c29bdfc3244e 100644
--- a/drivers/media/video/tda9840.c
+++ b/drivers/media/video/tda9840.c
@@ -43,7 +43,6 @@ MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
43 43
44/* addresses to scan, found only at 0x42 (7-Bit) */ 44/* addresses to scan, found only at 0x42 (7-Bit) */
45static unsigned short normal_i2c[] = { I2C_TDA9840, I2C_CLIENT_END }; 45static unsigned short normal_i2c[] = { I2C_TDA9840, I2C_CLIENT_END };
46static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
47 46
48/* magic definition of all other variables and things */ 47/* magic definition of all other variables and things */
49I2C_CLIENT_INSMOD; 48I2C_CLIENT_INSMOD;
diff --git a/drivers/media/video/tda9875.c b/drivers/media/video/tda9875.c
index 4f1114c033a1..97b113e070f3 100644
--- a/drivers/media/video/tda9875.c
+++ b/drivers/media/video/tda9875.c
@@ -44,7 +44,6 @@ static unsigned short normal_i2c[] = {
44 I2C_TDA9875 >> 1, 44 I2C_TDA9875 >> 1,
45 I2C_CLIENT_END 45 I2C_CLIENT_END
46}; 46};
47static unsigned short normal_i2c_range[] = {I2C_CLIENT_END};
48I2C_CLIENT_INSMOD; 47I2C_CLIENT_INSMOD;
49 48
50/* This is a superset of the TDA9875 */ 49/* This is a superset of the TDA9875 */
diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c
index debef1910c37..7e6e6dd966a2 100644
--- a/drivers/media/video/tda9887.c
+++ b/drivers/media/video/tda9887.c
@@ -33,7 +33,6 @@ static unsigned short normal_i2c[] = {
33 0x96 >>1, 33 0x96 >>1,
34 I2C_CLIENT_END, 34 I2C_CLIENT_END,
35}; 35};
36static unsigned short normal_i2c_range[] = {I2C_CLIENT_END,I2C_CLIENT_END};
37I2C_CLIENT_INSMOD; 36I2C_CLIENT_INSMOD;
38 37
39/* insmod options */ 38/* insmod options */
diff --git a/drivers/media/video/tea6415c.c b/drivers/media/video/tea6415c.c
index 3ec39550bf46..b44db8a7b94d 100644
--- a/drivers/media/video/tea6415c.c
+++ b/drivers/media/video/tea6415c.c
@@ -43,7 +43,6 @@ MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
43 43
44/* addresses to scan, found only at 0x03 and/or 0x43 (7-bit) */ 44/* addresses to scan, found only at 0x03 and/or 0x43 (7-bit) */
45static unsigned short normal_i2c[] = { I2C_TEA6415C_1, I2C_TEA6415C_2, I2C_CLIENT_END }; 45static unsigned short normal_i2c[] = { I2C_TEA6415C_1, I2C_TEA6415C_2, I2C_CLIENT_END };
46static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
47 46
48/* magic definition of all other variables and things */ 47/* magic definition of all other variables and things */
49I2C_CLIENT_INSMOD; 48I2C_CLIENT_INSMOD;
diff --git a/drivers/media/video/tea6420.c b/drivers/media/video/tea6420.c
index bd10710fd909..48d4db7d507b 100644
--- a/drivers/media/video/tea6420.c
+++ b/drivers/media/video/tea6420.c
@@ -40,7 +40,6 @@ MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
40 40
41/* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */ 41/* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */
42static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END }; 42static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END };
43static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
44 43
45/* magic definition of all other variables and things */ 44/* magic definition of all other variables and things */
46I2C_CLIENT_INSMOD; 45I2C_CLIENT_INSMOD;
diff --git a/drivers/media/video/tuner-3036.c b/drivers/media/video/tuner-3036.c
index 6b20aa902a8f..bedb15e2f233 100644
--- a/drivers/media/video/tuner-3036.c
+++ b/drivers/media/video/tuner-3036.c
@@ -34,19 +34,16 @@ static int this_adap;
34static struct i2c_client client_template; 34static struct i2c_client client_template;
35 35
36/* Addresses to scan */ 36/* Addresses to scan */
37static unsigned short normal_i2c[] = {I2C_CLIENT_END}; 37static unsigned short normal_i2c[] = { 0x60, 0x61, I2C_CLIENT_END };
38static unsigned short normal_i2c_range[] = {0x60, 0x61, I2C_CLIENT_END};
39static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 38static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
40static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
41static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 39static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
42static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
43static unsigned short force[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 40static unsigned short force[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
44 41
45static struct i2c_client_address_data addr_data = { 42static struct i2c_client_address_data addr_data = {
46 normal_i2c, normal_i2c_range, 43 .normal_i2c = normal_i2c,
47 probe, probe_range, 44 .probe = probe,
48 ignore, ignore_range, 45 .ignore = ignore,
49 force 46 .force = force,
50}; 47};
51 48
52/* ---------------------------------------------------------------------- */ 49/* ---------------------------------------------------------------------- */
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 6212388edb75..81882ddab859 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -28,10 +28,8 @@
28/* standard i2c insmod options */ 28/* standard i2c insmod options */
29static unsigned short normal_i2c[] = { 29static unsigned short normal_i2c[] = {
30 0x4b, /* tda8290 */ 30 0x4b, /* tda8290 */
31 I2C_CLIENT_END 31 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
32}; 32 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
33static unsigned short normal_i2c_range[] = {
34 0x60, 0x6f,
35 I2C_CLIENT_END 33 I2C_CLIENT_END
36}; 34};
37I2C_CLIENT_INSMOD; 35I2C_CLIENT_INSMOD;
@@ -225,9 +223,8 @@ static int tuner_attach(struct i2c_adapter *adap, int addr, int kind)
225static int tuner_probe(struct i2c_adapter *adap) 223static int tuner_probe(struct i2c_adapter *adap)
226{ 224{
227 if (0 != addr) { 225 if (0 != addr) {
228 normal_i2c[0] = addr; 226 normal_i2c[0] = addr;
229 normal_i2c_range[0] = addr; 227 normal_i2c[1] = I2C_CLIENT_END;
230 normal_i2c_range[1] = addr;
231 } 228 }
232 this_adap = 0; 229 this_adap = 0;
233 230
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
index 80dc34f18c2c..41b635e0d3c6 100644
--- a/drivers/media/video/tvaudio.c
+++ b/drivers/media/video/tvaudio.c
@@ -148,7 +148,6 @@ static unsigned short normal_i2c[] = {
148 I2C_TDA9874 >> 1, 148 I2C_TDA9874 >> 1,
149 I2C_PIC16C54 >> 1, 149 I2C_PIC16C54 >> 1,
150 I2C_CLIENT_END }; 150 I2C_CLIENT_END };
151static unsigned short normal_i2c_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
152I2C_CLIENT_INSMOD; 151I2C_CLIENT_INSMOD;
153 152
154static struct i2c_driver driver; 153static struct i2c_driver driver;
diff --git a/drivers/media/video/tveeprom.c b/drivers/media/video/tveeprom.c
index e1443a0937e3..3d216973798c 100644
--- a/drivers/media/video/tveeprom.c
+++ b/drivers/media/video/tveeprom.c
@@ -482,7 +482,6 @@ static unsigned short normal_i2c[] = {
482 0xa0 >> 1, 482 0xa0 >> 1,
483 I2C_CLIENT_END, 483 I2C_CLIENT_END,
484}; 484};
485static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
486I2C_CLIENT_INSMOD; 485I2C_CLIENT_INSMOD;
487 486
488struct i2c_driver i2c_driver_tveeprom; 487struct i2c_driver i2c_driver_tveeprom;
diff --git a/drivers/media/video/vpx3220.c b/drivers/media/video/vpx3220.c
index 0fd6c9a70917..b97036910fa9 100644
--- a/drivers/media/video/vpx3220.c
+++ b/drivers/media/video/vpx3220.c
@@ -569,21 +569,15 @@ static unsigned short normal_i2c[] =
569 { I2C_VPX3220 >> 1, (I2C_VPX3220 >> 1) + 4, 569 { I2C_VPX3220 >> 1, (I2C_VPX3220 >> 1) + 4,
570 I2C_CLIENT_END 570 I2C_CLIENT_END
571}; 571};
572static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
573 572
574static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 573static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
575static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
576static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; 574static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
577static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
578static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; 575static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END };
579 576
580static struct i2c_client_address_data addr_data = { 577static struct i2c_client_address_data addr_data = {
581 .normal_i2c = normal_i2c, 578 .normal_i2c = normal_i2c,
582 .normal_i2c_range = normal_i2c_range,
583 .probe = probe, 579 .probe = probe,
584 .probe_range = probe_range,
585 .ignore = ignore, 580 .ignore = ignore,
586 .ignore_range = ignore_range,
587 .force = force 581 .force = force
588}; 582};
589 583
diff --git a/drivers/video/matrox/matroxfb_maven.c b/drivers/video/matrox/matroxfb_maven.c
index e529841cd83d..67f85344f0cc 100644
--- a/drivers/video/matrox/matroxfb_maven.c
+++ b/drivers/video/matrox/matroxfb_maven.c
@@ -1230,7 +1230,6 @@ static int maven_shutdown_client(struct i2c_client* clnt) {
1230} 1230}
1231 1231
1232static unsigned short normal_i2c[] = { MAVEN_I2CID, I2C_CLIENT_END }; 1232static unsigned short normal_i2c[] = { MAVEN_I2CID, I2C_CLIENT_END };
1233static unsigned short normal_i2c_range[] = { MAVEN_I2CID, MAVEN_I2CID, I2C_CLIENT_END };
1234I2C_CLIENT_INSMOD; 1233I2C_CLIENT_INSMOD;
1235 1234
1236static struct i2c_driver maven_driver; 1235static struct i2c_driver maven_driver;
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index ebcd745f4cd6..be837b13f297 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -290,11 +290,8 @@ static inline void i2c_set_adapdata (struct i2c_adapter *dev, void *data)
290 */ 290 */
291struct i2c_client_address_data { 291struct i2c_client_address_data {
292 unsigned short *normal_i2c; 292 unsigned short *normal_i2c;
293 unsigned short *normal_i2c_range;
294 unsigned short *probe; 293 unsigned short *probe;
295 unsigned short *probe_range;
296 unsigned short *ignore; 294 unsigned short *ignore;
297 unsigned short *ignore_range;
298 unsigned short *force; 295 unsigned short *force;
299}; 296};
300 297
@@ -563,24 +560,15 @@ union i2c_smbus_data {
563#define I2C_CLIENT_INSMOD \ 560#define I2C_CLIENT_INSMOD \
564 I2C_CLIENT_MODULE_PARM(probe, \ 561 I2C_CLIENT_MODULE_PARM(probe, \
565 "List of adapter,address pairs to scan additionally"); \ 562 "List of adapter,address pairs to scan additionally"); \
566 I2C_CLIENT_MODULE_PARM(probe_range, \
567 "List of adapter,start-addr,end-addr triples to scan " \
568 "additionally"); \
569 I2C_CLIENT_MODULE_PARM(ignore, \ 563 I2C_CLIENT_MODULE_PARM(ignore, \
570 "List of adapter,address pairs not to scan"); \ 564 "List of adapter,address pairs not to scan"); \
571 I2C_CLIENT_MODULE_PARM(ignore_range, \
572 "List of adapter,start-addr,end-addr triples not to " \
573 "scan"); \
574 I2C_CLIENT_MODULE_PARM(force, \ 565 I2C_CLIENT_MODULE_PARM(force, \
575 "List of adapter,address pairs to boldly assume " \ 566 "List of adapter,address pairs to boldly assume " \
576 "to be present"); \ 567 "to be present"); \
577 static struct i2c_client_address_data addr_data = { \ 568 static struct i2c_client_address_data addr_data = { \
578 .normal_i2c = normal_i2c, \ 569 .normal_i2c = normal_i2c, \
579 .normal_i2c_range = normal_i2c_range, \
580 .probe = probe, \ 570 .probe = probe, \
581 .probe_range = probe_range, \
582 .ignore = ignore, \ 571 .ignore = ignore, \
583 .ignore_range = ignore_range, \
584 .force = force, \ 572 .force = force, \
585 } 573 }
586 574