History

i2c: Convert some more new-style drivers to use module aliasing

Update 3 more new-style i2c drivers to use standard module aliasing instead of the old driver_name/type driver matching scheme. These video drivers aren't used yet so converting them is trivial.

Jean Delvare committed 18 years ago

Commit ae429081 parent 60b129d5 files · +29 −1Browse files

Unified · Split

5 files
  1. drivers/media/video/tcm825x.c +7 −0
  2. drivers/media/video/tlv320aic23b.c +6 −0
  3. drivers/media/video/tvaudio.c +12 −1
  4. include/media/v4l2-i2c-drv-legacy.h +2 −0
  5. include/media/v4l2-i2c-drv.h +2 −0
drivers/media/video/tcm825x.c+7−0
@@ -885,12 +885,19 @@ static int __exit tcm825x_remove(struct i2c_client *client) · 884 unmodified lines
885885 return 0;
886886 }
887887
888+static const struct i2c_device_id tcm825x_id[] = {
889+ { "tcm825x", 0 },
890+ { }
891+};
892+MODULE_DEVICE_TABLE(i2c, tcm825x_id);
893+
888894 static struct i2c_driver tcm825x_i2c_driver = {
889895 .driver = {
890896 .name = TCM825X_NAME,
891897 },
892898 .probe = tcm825x_probe,
893899 .remove = __exit_p(tcm825x_remove),
900+ .id_table = tcm825x_id,
894901 };
895902
896903 static struct tcm825x_sensor tcm825x = {
drivers/media/video/tlv320aic23b.c+6−0
@@ -168,6 +168,11 @@ static int tlv320aic23b_remove(struct i2c_client *client) · 167 unmodified lines
168168
169169 /* ----------------------------------------------------------------------- */
170170
171+static const struct i2c_device_id tlv320aic23b_id[] = {
172+ { "tlv320aic23b", 0 },
173+ { }
174+};
175+MODULE_DEVICE_TABLE(i2c, tlv320aic23b_id);
171176
172177 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
173178 .name = "tlv320aic23b",
@@ -175,4 +180,5 @@ static struct v4l2_i2c_driver_data v4l2_i2c_data = { · 1 unmodified line
175180 .command = tlv320aic23b_command,
176181 .probe = tlv320aic23b_probe,
177182 .remove = tlv320aic23b_remove,
183+ .id_table = tlv320aic23b_id,
178184 };
drivers/media/video/tvaudio.c+12−1
@@ -1505,7 +1505,8 @@ static int chip_probe(struct i2c_client *client, const struct i2c_device_id *id) · 1504 unmodified lines
15051505 }
15061506
15071507 /* fill required data structures */
1508− strcpy(client->name, desc->name);
1508+ if (!id)
1509+ strlcpy(client->name, desc->name, I2C_NAME_SIZE);
15091510 chip->type = desc-chiplist;
15101511 chip->shadow.count = desc->registers+1;
15111512 chip->prevmode = -1;
@@ -1830,6 +1831,15 @@ static int chip_legacy_probe(struct i2c_adapter *adap) · 318 unmodified lines
18301831 return 0;
18311832 }
18321833
1834+/* This driver supports many devices and the idea is to let the driver
1835+ detect which device is present. So rather than listing all supported
1836+ devices here, we pretend to support a single, fake device type. */
1837+static const struct i2c_device_id chip_id[] = {
1838+ { "tvaudio", 0 },
1839+ { }
1840+};
1841+MODULE_DEVICE_TABLE(i2c, chip_id);
1842+
18331843 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
18341844 .name = "tvaudio",
18351845 .driverid = I2C_DRIVERID_TVAUDIO,
@@ -1837,6 +1847,7 @@ static struct v4l2_i2c_driver_data v4l2_i2c_data = { · 1 unmodified line
18371847 .probe = chip_probe,
18381848 .remove = chip_remove,
18391849 .legacy_probe = chip_legacy_probe,
1850+ .id_table = chip_id,
18401851 };
18411852
18421853 /*
include/media/v4l2-i2c-drv-legacy.h+2−0
@@ -31,6 +31,7 @@ struct v4l2_i2c_driver_data { · 30 unmodified lines
3131 int (*resume)(struct i2c_client *client);
3232 int (*legacy_probe)(struct i2c_adapter *adapter);
3333 int legacy_class;
34+ const struct i2c_device_id *id_table;
3435 };
3536
3637 static struct v4l2_i2c_driver_data v4l2_i2c_data;
@@ -124,6 +125,7 @@ static int __init v4l2_i2c_drv_init(void) · 87 unmodified lines
124125 v4l2_i2c_driver.command = v4l2_i2c_data.command;
125126 v4l2_i2c_driver.probe = v4l2_i2c_data.probe;
126127 v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
128+ v4l2_i2c_driver.id_table = v4l2_i2c_data.id_table;
127129 err = i2c_add_driver(&v4l2_i2c_driver);
128130 if (err)
129131 i2c_del_driver(&v4l2_i2c_driver_legacy);
include/media/v4l2-i2c-drv.h+2−0
@@ -36,6 +36,7 @@ struct v4l2_i2c_driver_data { · 35 unmodified lines
3636 int (*resume)(struct i2c_client *client);
3737 int (*legacy_probe)(struct i2c_adapter *adapter);
3838 int legacy_class;
39+ const struct i2c_device_id *id_table;
3940 };
4041
4142 static struct v4l2_i2c_driver_data v4l2_i2c_data;
@@ -53,6 +54,7 @@ static int __init v4l2_i2c_drv_init(void) · 11 unmodified lines
5354 v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
5455 v4l2_i2c_driver.suspend = v4l2_i2c_data.suspend;
5556 v4l2_i2c_driver.resume = v4l2_i2c_data.resume;
57+ v4l2_i2c_driver.id_table = v4l2_i2c_data.id_table;
5658 return i2c_add_driver(&v4l2_i2c_driver);
5759 }
5860