aboutsummaryrefslogtreecommitdiffstats
path: root/i2c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2005-11-30 16:34:59 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2005-11-30 16:34:59 -0800
commitf550b8cb62d3ceab917320724bad8bf413e0d2d9 (patch)
tree01aceded8b8674c01efe71b20b5ffb394e7ef353 /i2c
parent2317108b116924e36615f4f0aaecb60cfe4746aa (diff)
downloadpatches-f550b8cb62d3ceab917320724bad8bf413e0d2d9.tar.gz
i2c patches added
Diffstat (limited to 'i2c')
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-01-core.patch168
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-02-chips.patch214
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-03-hwmon.patch712
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-04-macintosh.patch87
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-05-media.patch945
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-06-oss.patch54
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-07-ppc.patch37
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-08-acorn.patch38
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-09-video.patch39
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-10-arm.patch36
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-11-documentation.patch48
-rw-r--r--i2c/i2c-drop-driver-owner-and-name-12-fix-debug.patch43
12 files changed, 2421 insertions, 0 deletions
diff --git a/i2c/i2c-drop-driver-owner-and-name-01-core.patch b/i2c/i2c-drop-driver-owner-and-name-01-core.patch
new file mode 100644
index 0000000000000..d4a25c07c555f
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-01-core.patch
@@ -0,0 +1,168 @@
+From khali@linux-fr.org Sat Nov 26 19:24:23 2005
+Date: Sat, 26 Nov 2005 20:34:05 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Mauro Carvalho Chehab <mchehab@brturbo.com.br>
+Subject: [PATCH 10/25] i2c: Drop i2c_driver.{owner,name}, 1 of 11
+Message-Id: <20051126203405.438b6713.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-01-core.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the core of the i2c drivers: it removes .name and
+.owner fields from the struct i2c_device and modify various
+functions to use struct device fields instead.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/i2c/busses/i2c-isa.c | 4 +---
+ drivers/i2c/i2c-core.c | 22 +++++++++++-----------
+ drivers/i2c/i2c-dev.c | 6 ++++--
+ include/linux/i2c.h | 5 +++--
+ 4 files changed, 19 insertions(+), 18 deletions(-)
+
+--- gregkh-2.6.orig/drivers/i2c/busses/i2c-isa.c
++++ gregkh-2.6/drivers/i2c/busses/i2c-isa.c
+@@ -92,8 +92,6 @@ int i2c_isa_add_driver(struct i2c_driver
+ int res;
+
+ /* Add the driver to the list of i2c drivers in the driver core */
+- driver->driver.name = driver->name;
+- driver->driver.owner = driver->owner;
+ driver->driver.bus = &i2c_bus_type;
+ driver->driver.probe = i2c_isa_device_probe;
+ driver->driver.remove = i2c_isa_device_remove;
+@@ -124,7 +122,7 @@ int i2c_isa_del_driver(struct i2c_driver
+ if ((res = driver->detach_client(client))) {
+ dev_err(&isa_adapter.dev, "Failed, driver "
+ "%s not unregistered!\n",
+- driver->name);
++ driver->driver.name);
+ return res;
+ }
+ }
+--- gregkh-2.6.orig/drivers/i2c/i2c-core.c
++++ gregkh-2.6/drivers/i2c/i2c-core.c
+@@ -235,7 +235,8 @@ int i2c_del_adapter(struct i2c_adapter *
+ if (driver->detach_adapter)
+ if ((res = driver->detach_adapter(adap))) {
+ dev_err(&adap->dev, "detach_adapter failed "
+- "for driver [%s]\n", driver->name);
++ "for driver [%s]\n",
++ driver->driver.name);
+ goto out_unlock;
+ }
+ }
+@@ -295,8 +296,6 @@ int i2c_add_driver(struct i2c_driver *dr
+ down(&core_lists);
+
+ /* add the driver to the list of i2c drivers in the driver core */
+- driver->driver.owner = driver->owner;
+- driver->driver.name = driver->name;
+ driver->driver.bus = &i2c_bus_type;
+ driver->driver.probe = i2c_device_probe;
+ driver->driver.remove = i2c_device_remove;
+@@ -306,7 +305,7 @@ int i2c_add_driver(struct i2c_driver *dr
+ goto out_unlock;
+
+ list_add_tail(&driver->list,&drivers);
+- pr_debug("i2c-core: driver [%s] registered\n", driver->name);
++ pr_debug("i2c-core: driver [%s] registered\n", driver->driver.name);
+
+ /* now look for instances of driver on our adapters */
+ if (driver->attach_adapter) {
+@@ -344,7 +343,8 @@ int i2c_del_driver(struct i2c_driver *dr
+ if (driver->detach_adapter) {
+ if ((res = driver->detach_adapter(adap))) {
+ dev_err(&adap->dev, "detach_adapter failed "
+- "for driver [%s]\n", driver->name);
++ "for driver [%s]\n",
++ driver->driver.name);
+ goto out_unlock;
+ }
+ } else {
+@@ -368,7 +368,7 @@ int i2c_del_driver(struct i2c_driver *dr
+
+ driver_unregister(&driver->driver);
+ list_del(&driver->list);
+- pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
++ pr_debug("i2c-core: driver [%s] unregistered\n", driver->driver.name);
+
+ out_unlock:
+ up(&core_lists);
+@@ -473,10 +473,10 @@ int i2c_detach_client(struct i2c_client
+ static int i2c_inc_use_client(struct i2c_client *client)
+ {
+
+- if (!try_module_get(client->driver->owner))
++ if (!try_module_get(client->driver->driver.owner))
+ return -ENODEV;
+ if (!try_module_get(client->adapter->owner)) {
+- module_put(client->driver->owner);
++ module_put(client->driver->driver.owner);
+ return -ENODEV;
+ }
+
+@@ -485,7 +485,7 @@ static int i2c_inc_use_client(struct i2c
+
+ static void i2c_dec_use_client(struct i2c_client *client)
+ {
+- module_put(client->driver->owner);
++ module_put(client->driver->driver.owner);
+ module_put(client->adapter->owner);
+ }
+
+@@ -524,14 +524,14 @@ void i2c_clients_command(struct i2c_adap
+ down(&adap->clist_lock);
+ list_for_each(item,&adap->clients) {
+ client = list_entry(item, struct i2c_client, list);
+- if (!try_module_get(client->driver->owner))
++ if (!try_module_get(client->driver->driver.owner))
+ continue;
+ if (NULL != client->driver->command) {
+ up(&adap->clist_lock);
+ client->driver->command(client,cmd,arg);
+ down(&adap->clist_lock);
+ }
+- module_put(client->driver->owner);
++ module_put(client->driver->driver.owner);
+ }
+ up(&adap->clist_lock);
+ }
+--- gregkh-2.6.orig/drivers/i2c/i2c-dev.c
++++ gregkh-2.6/drivers/i2c/i2c-dev.c
+@@ -481,8 +481,10 @@ static int i2cdev_command(struct i2c_cli
+ }
+
+ static struct i2c_driver i2cdev_driver = {
+- .owner = THIS_MODULE,
+- .name = "dev_driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "dev_driver",
++ },
+ .id = I2C_DRIVERID_I2CDEV,
+ .attach_adapter = i2cdev_attach_adapter,
+ .detach_adapter = i2cdev_detach_adapter,
+--- gregkh-2.6.orig/include/linux/i2c.h
++++ gregkh-2.6/include/linux/i2c.h
+@@ -105,11 +105,12 @@ extern s32 i2c_smbus_read_i2c_block_data
+ * A driver is capable of handling one or more physical devices present on
+ * I2C adapters. This information is used to inform the driver of adapter
+ * events.
++ *
++ * The driver.owner field should be set to the module owner of this driver.
++ * The driver.name field should be set to the name of this driver.
+ */
+
+ struct i2c_driver {
+- struct module *owner;
+- char name[32];
+ int id;
+ unsigned int class;
+
diff --git a/i2c/i2c-drop-driver-owner-and-name-02-chips.patch b/i2c/i2c-drop-driver-owner-and-name-02-chips.patch
new file mode 100644
index 0000000000000..7c5ae80348f25
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-02-chips.patch
@@ -0,0 +1,214 @@
+From khali@linux-fr.org Sat Nov 26 19:24:28 2005
+Date: Sat, 26 Nov 2005 20:36:00 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>
+Subject: [PATCH 11/25] i2c: Drop i2c_driver.{owner,name}, 2 of 11
+Message-Id: <20051126203600.4e73e09b.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-02-chips.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the miscellaneaous i2c chip drivers.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/i2c/chips/ds1337.c | 6 ++++--
+ drivers/i2c/chips/ds1374.c | 6 ++++--
+ drivers/i2c/chips/eeprom.c | 6 ++++--
+ drivers/i2c/chips/isp1301_omap.c | 6 ++++--
+ drivers/i2c/chips/m41t00.c | 6 ++++--
+ drivers/i2c/chips/max6875.c | 6 ++++--
+ drivers/i2c/chips/pca9539.c | 6 ++++--
+ drivers/i2c/chips/pcf8574.c | 6 ++++--
+ drivers/i2c/chips/pcf8591.c | 6 ++++--
+ drivers/i2c/chips/rtc8564.c | 6 ++++--
+ drivers/i2c/chips/tps65010.c | 6 ++++--
+ drivers/i2c/chips/x1205.c | 6 ++++--
+ 12 files changed, 48 insertions(+), 24 deletions(-)
+
+--- gregkh-2.6.orig/drivers/i2c/chips/ds1337.c
++++ gregkh-2.6/drivers/i2c/chips/ds1337.c
+@@ -52,8 +52,10 @@ static int ds1337_command(struct i2c_cli
+ * Driver data (common to all clients)
+ */
+ static struct i2c_driver ds1337_driver = {
+- .owner = THIS_MODULE,
+- .name = "ds1337",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "ds1337",
++ },
+ .attach_adapter = ds1337_attach_adapter,
+ .detach_client = ds1337_detach_client,
+ .command = ds1337_command,
+--- gregkh-2.6.orig/drivers/i2c/chips/ds1374.c
++++ gregkh-2.6/drivers/i2c/chips/ds1374.c
+@@ -232,8 +232,10 @@ static int ds1374_detach(struct i2c_clie
+ }
+
+ static struct i2c_driver ds1374_driver = {
+- .owner = THIS_MODULE,
+- .name = DS1374_DRV_NAME,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = DS1374_DRV_NAME,
++ },
+ .id = I2C_DRIVERID_DS1374,
+ .attach_adapter = ds1374_attach,
+ .detach_client = ds1374_detach,
+--- gregkh-2.6.orig/drivers/i2c/chips/eeprom.c
++++ gregkh-2.6/drivers/i2c/chips/eeprom.c
+@@ -68,8 +68,10 @@ static int eeprom_detach_client(struct i
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver eeprom_driver = {
+- .owner = THIS_MODULE,
+- .name = "eeprom",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "eeprom",
++ },
+ .id = I2C_DRIVERID_EEPROM,
+ .attach_adapter = eeprom_attach_adapter,
+ .detach_client = eeprom_detach_client,
+--- gregkh-2.6.orig/drivers/i2c/chips/max6875.c
++++ gregkh-2.6/drivers/i2c/chips/max6875.c
+@@ -67,8 +67,10 @@ static int max6875_detach_client(struct
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver max6875_driver = {
+- .owner = THIS_MODULE,
+- .name = "max6875",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "max6875",
++ },
+ .attach_adapter = max6875_attach_adapter,
+ .detach_client = max6875_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/i2c/chips/pca9539.c
++++ gregkh-2.6/drivers/i2c/chips/pca9539.c
+@@ -38,8 +38,10 @@ static int pca9539_detach_client(struct
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver pca9539_driver = {
+- .owner = THIS_MODULE,
+- .name = "pca9539",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "pca9539",
++ },
+ .attach_adapter = pca9539_attach_adapter,
+ .detach_client = pca9539_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/i2c/chips/pcf8574.c
++++ gregkh-2.6/drivers/i2c/chips/pcf8574.c
+@@ -65,8 +65,10 @@ static void pcf8574_init_client(struct i
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver pcf8574_driver = {
+- .owner = THIS_MODULE,
+- .name = "pcf8574",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "pcf8574",
++ },
+ .id = I2C_DRIVERID_PCF8574,
+ .attach_adapter = pcf8574_attach_adapter,
+ .detach_client = pcf8574_detach_client,
+--- gregkh-2.6.orig/drivers/i2c/chips/pcf8591.c
++++ gregkh-2.6/drivers/i2c/chips/pcf8591.c
+@@ -88,8 +88,10 @@ static int pcf8591_read_channel(struct d
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver pcf8591_driver = {
+- .owner = THIS_MODULE,
+- .name = "pcf8591",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "pcf8591",
++ },
+ .id = I2C_DRIVERID_PCF8591,
+ .attach_adapter = pcf8591_attach_adapter,
+ .detach_client = pcf8591_detach_client,
+--- gregkh-2.6.orig/drivers/i2c/chips/rtc8564.c
++++ gregkh-2.6/drivers/i2c/chips/rtc8564.c
+@@ -358,8 +358,10 @@ rtc8564_command(struct i2c_client *clien
+ }
+
+ static struct i2c_driver rtc8564_driver = {
+- .owner = THIS_MODULE,
+- .name = "RTC8564",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "RTC8564",
++ },
+ .id = I2C_DRIVERID_RTC8564,
+ .attach_adapter = rtc8564_probe,
+ .detach_client = rtc8564_detach,
+--- gregkh-2.6.orig/drivers/i2c/chips/isp1301_omap.c
++++ gregkh-2.6/drivers/i2c/chips/isp1301_omap.c
+@@ -1632,8 +1632,10 @@ static int isp1301_scan_bus(struct i2c_a
+ }
+
+ static struct i2c_driver isp1301_driver = {
+- .owner = THIS_MODULE,
+- .name = "isp1301_omap",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "isp1301_omap",
++ },
+ .id = 1301, /* FIXME "official", i2c-ids.h */
+ .class = I2C_CLASS_HWMON,
+ .attach_adapter = isp1301_scan_bus,
+--- gregkh-2.6.orig/drivers/i2c/chips/m41t00.c
++++ gregkh-2.6/drivers/i2c/chips/m41t00.c
+@@ -211,8 +211,10 @@ m41t00_detach(struct i2c_client *client)
+ }
+
+ static struct i2c_driver m41t00_driver = {
+- .owner = THIS_MODULE,
+- .name = M41T00_DRV_NAME,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = M41T00_DRV_NAME,
++ },
+ .id = I2C_DRIVERID_STM41T00,
+ .attach_adapter = m41t00_attach,
+ .detach_client = m41t00_detach,
+--- gregkh-2.6.orig/drivers/i2c/chips/tps65010.c
++++ gregkh-2.6/drivers/i2c/chips/tps65010.c
+@@ -637,8 +637,10 @@ static int __init tps65010_scan_bus(stru
+ }
+
+ static struct i2c_driver tps65010_driver = {
+- .owner = THIS_MODULE,
+- .name = "tps65010",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tps65010",
++ },
+ .attach_adapter = tps65010_scan_bus,
+ .detach_client = __exit_p(tps65010_detach_client),
+ };
+--- gregkh-2.6.orig/drivers/i2c/chips/x1205.c
++++ gregkh-2.6/drivers/i2c/chips/x1205.c
+@@ -105,8 +105,10 @@ static int x1205_command(struct i2c_clie
+ void *arg);
+
+ static struct i2c_driver x1205_driver = {
+- .owner = THIS_MODULE,
+- .name = "x1205",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "x1205",
++ },
+ .attach_adapter = &x1205_attach,
+ .detach_client = &x1205_detach,
+ };
diff --git a/i2c/i2c-drop-driver-owner-and-name-03-hwmon.patch b/i2c/i2c-drop-driver-owner-and-name-03-hwmon.patch
new file mode 100644
index 0000000000000..da7abe3396152
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-03-hwmon.patch
@@ -0,0 +1,712 @@
+From khali@linux-fr.org Sat Nov 26 19:24:30 2005
+Date: Sat, 26 Nov 2005 20:37:41 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>
+Subject: [PATCH 12/25] i2c: Drop i2c_driver.{owner,name}, 3 of 11
+Message-Id: <20051126203741.7f0d34ed.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-03-hwmon.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the hwmon drivers.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/hwmon/adm1021.c | 6 ++++--
+ drivers/hwmon/adm1025.c | 6 ++++--
+ drivers/hwmon/adm1026.c | 6 ++++--
+ drivers/hwmon/adm1031.c | 6 ++++--
+ drivers/hwmon/adm9240.c | 6 ++++--
+ drivers/hwmon/asb100.c | 6 ++++--
+ drivers/hwmon/atxp1.c | 6 ++++--
+ drivers/hwmon/ds1621.c | 6 ++++--
+ drivers/hwmon/fscher.c | 6 ++++--
+ drivers/hwmon/fscpos.c | 6 ++++--
+ drivers/hwmon/gl518sm.c | 6 ++++--
+ drivers/hwmon/gl520sm.c | 6 ++++--
+ drivers/hwmon/it87.c | 15 ++++++++++-----
+ drivers/hwmon/lm63.c | 6 ++++--
+ drivers/hwmon/lm75.c | 6 ++++--
+ drivers/hwmon/lm77.c | 6 ++++--
+ drivers/hwmon/lm78.c | 14 +++++++++-----
+ drivers/hwmon/lm80.c | 6 ++++--
+ drivers/hwmon/lm83.c | 6 ++++--
+ drivers/hwmon/lm85.c | 6 ++++--
+ drivers/hwmon/lm87.c | 6 ++++--
+ drivers/hwmon/lm90.c | 6 ++++--
+ drivers/hwmon/lm92.c | 6 ++++--
+ drivers/hwmon/max1619.c | 6 ++++--
+ drivers/hwmon/pc87360.c | 8 +++++---
+ drivers/hwmon/sis5595.c | 9 ++++++---
+ drivers/hwmon/smsc47b397.c | 9 ++++++---
+ drivers/hwmon/smsc47m1.c | 8 +++++---
+ drivers/hwmon/via686a.c | 9 ++++++---
+ drivers/hwmon/vt8231.c | 6 ++++--
+ drivers/hwmon/w83627ehf.c | 8 +++++---
+ drivers/hwmon/w83627hf.c | 8 +++++---
+ drivers/hwmon/w83781d.c | 14 +++++++++-----
+ drivers/hwmon/w83792d.c | 6 ++++--
+ drivers/hwmon/w83l785ts.c | 6 ++++--
+ 35 files changed, 166 insertions(+), 86 deletions(-)
+
+--- gregkh-2.6.orig/drivers/hwmon/w83781d.c
++++ gregkh-2.6/drivers/hwmon/w83781d.c
+@@ -269,16 +269,20 @@ static struct w83781d_data *w83781d_upda
+ static void w83781d_init_client(struct i2c_client *client);
+
+ static struct i2c_driver w83781d_driver = {
+- .owner = THIS_MODULE,
+- .name = "w83781d",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "w83781d",
++ },
+ .id = I2C_DRIVERID_W83781D,
+ .attach_adapter = w83781d_attach_adapter,
+ .detach_client = w83781d_detach_client,
+ };
+
+ static struct i2c_driver w83781d_isa_driver = {
+- .owner = THIS_MODULE,
+- .name = "w83781d-isa",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "w83781d-isa",
++ },
+ .attach_adapter = w83781d_isa_attach_adapter,
+ .detach_client = w83781d_detach_client,
+ };
+@@ -1011,7 +1015,7 @@ w83781d_detect(struct i2c_adapter *adapt
+
+ if (is_isa)
+ if (!request_region(address, W83781D_EXTENT,
+- w83781d_isa_driver.name)) {
++ w83781d_isa_driver.driver.name)) {
+ dev_dbg(&adapter->dev, "Request of region "
+ "0x%x-0x%x for w83781d failed\n", address,
+ address + W83781D_EXTENT - 1);
+--- gregkh-2.6.orig/drivers/hwmon/lm80.c
++++ gregkh-2.6/drivers/hwmon/lm80.c
+@@ -143,8 +143,10 @@ static int lm80_write_value(struct i2c_c
+ */
+
+ static struct i2c_driver lm80_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm80",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm80",
++ },
+ .id = I2C_DRIVERID_LM80,
+ .attach_adapter = lm80_attach_adapter,
+ .detach_client = lm80_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/via686a.c
++++ gregkh-2.6/drivers/hwmon/via686a.c
+@@ -572,8 +572,10 @@ static DEVICE_ATTR(alarms, S_IRUGO, show
+ /* The driver. I choose to use type i2c_driver, as at is identical to both
+ smbus_driver and isa_driver, and clients could be of either kind */
+ static struct i2c_driver via686a_driver = {
+- .owner = THIS_MODULE,
+- .name = "via686a",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "via686a",
++ },
+ .attach_adapter = via686a_detect,
+ .detach_client = via686a_detach_client,
+ };
+@@ -615,7 +617,8 @@ static int via686a_detect(struct i2c_ada
+ }
+
+ /* Reserve the ISA region */
+- if (!request_region(address, VIA686A_EXTENT, via686a_driver.name)) {
++ if (!request_region(address, VIA686A_EXTENT,
++ via686a_driver.driver.name)) {
+ dev_err(&adapter->dev, "region 0x%x already in use!\n",
+ address);
+ return -ENODEV;
+--- gregkh-2.6.orig/drivers/hwmon/adm1021.c
++++ gregkh-2.6/drivers/hwmon/adm1021.c
+@@ -126,8 +126,10 @@ static int read_only;
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver adm1021_driver = {
+- .owner = THIS_MODULE,
+- .name = "adm1021",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adm1021",
++ },
+ .id = I2C_DRIVERID_ADM1021,
+ .attach_adapter = adm1021_attach_adapter,
+ .detach_client = adm1021_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/adm1025.c
++++ gregkh-2.6/drivers/hwmon/adm1025.c
+@@ -118,8 +118,10 @@ static struct adm1025_data *adm1025_upda
+ */
+
+ static struct i2c_driver adm1025_driver = {
+- .owner = THIS_MODULE,
+- .name = "adm1025",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adm1025",
++ },
+ .id = I2C_DRIVERID_ADM1025,
+ .attach_adapter = adm1025_attach_adapter,
+ .detach_client = adm1025_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/adm1026.c
++++ gregkh-2.6/drivers/hwmon/adm1026.c
+@@ -308,8 +308,10 @@ static void adm1026_init_client(struct i
+
+
+ static struct i2c_driver adm1026_driver = {
+- .owner = THIS_MODULE,
+- .name = "adm1026",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adm1026",
++ },
+ .attach_adapter = adm1026_attach_adapter,
+ .detach_client = adm1026_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/adm1031.c
++++ gregkh-2.6/drivers/hwmon/adm1031.c
+@@ -105,8 +105,10 @@ static struct adm1031_data *adm1031_upda
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver adm1031_driver = {
+- .owner = THIS_MODULE,
+- .name = "adm1031",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adm1031",
++ },
+ .attach_adapter = adm1031_attach_adapter,
+ .detach_client = adm1031_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/adm9240.c
++++ gregkh-2.6/drivers/hwmon/adm9240.c
+@@ -137,8 +137,10 @@ static struct adm9240_data *adm9240_upda
+
+ /* driver data */
+ static struct i2c_driver adm9240_driver = {
+- .owner = THIS_MODULE,
+- .name = "adm9240",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adm9240",
++ },
+ .id = I2C_DRIVERID_ADM9240,
+ .attach_adapter = adm9240_attach_adapter,
+ .detach_client = adm9240_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/asb100.c
++++ gregkh-2.6/drivers/hwmon/asb100.c
+@@ -217,8 +217,10 @@ static struct asb100_data *asb100_update
+ static void asb100_init_client(struct i2c_client *client);
+
+ static struct i2c_driver asb100_driver = {
+- .owner = THIS_MODULE,
+- .name = "asb100",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "asb100",
++ },
+ .id = I2C_DRIVERID_ASB100,
+ .attach_adapter = asb100_attach_adapter,
+ .detach_client = asb100_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/atxp1.c
++++ gregkh-2.6/drivers/hwmon/atxp1.c
+@@ -50,8 +50,10 @@ static struct atxp1_data * atxp1_update_
+ static int atxp1_detect(struct i2c_adapter *adapter, int address, int kind);
+
+ static struct i2c_driver atxp1_driver = {
+- .owner = THIS_MODULE,
+- .name = "atxp1",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "atxp1",
++ },
+ .attach_adapter = atxp1_attach_adapter,
+ .detach_client = atxp1_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/ds1621.c
++++ gregkh-2.6/drivers/hwmon/ds1621.c
+@@ -89,8 +89,10 @@ static struct ds1621_data *ds1621_update
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver ds1621_driver = {
+- .owner = THIS_MODULE,
+- .name = "ds1621",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "ds1621",
++ },
+ .id = I2C_DRIVERID_DS1621,
+ .attach_adapter = ds1621_attach_adapter,
+ .detach_client = ds1621_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/fscher.c
++++ gregkh-2.6/drivers/hwmon/fscher.c
+@@ -118,8 +118,10 @@ static int fscher_write_value(struct i2c
+ */
+
+ static struct i2c_driver fscher_driver = {
+- .owner = THIS_MODULE,
+- .name = "fscher",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "fscher",
++ },
+ .id = I2C_DRIVERID_FSCHER,
+ .attach_adapter = fscher_attach_adapter,
+ .detach_client = fscher_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/fscpos.c
++++ gregkh-2.6/drivers/hwmon/fscpos.c
+@@ -100,8 +100,10 @@ static void reset_fan_alarm(struct i2c_c
+ * Driver data (common to all clients)
+ */
+ static struct i2c_driver fscpos_driver = {
+- .owner = THIS_MODULE,
+- .name = "fscpos",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "fscpos",
++ },
+ .id = I2C_DRIVERID_FSCPOS,
+ .attach_adapter = fscpos_attach_adapter,
+ .detach_client = fscpos_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/gl518sm.c
++++ gregkh-2.6/drivers/hwmon/gl518sm.c
+@@ -151,8 +151,10 @@ static struct gl518_data *gl518_update_d
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver gl518_driver = {
+- .owner = THIS_MODULE,
+- .name = "gl518sm",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "gl518sm",
++ },
+ .id = I2C_DRIVERID_GL518,
+ .attach_adapter = gl518_attach_adapter,
+ .detach_client = gl518_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/gl520sm.c
++++ gregkh-2.6/drivers/hwmon/gl520sm.c
+@@ -109,8 +109,10 @@ static struct gl520_data *gl520_update_d
+
+ /* Driver data */
+ static struct i2c_driver gl520_driver = {
+- .owner = THIS_MODULE,
+- .name = "gl520sm",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "gl520sm",
++ },
+ .id = I2C_DRIVERID_GL520,
+ .attach_adapter = gl520_attach_adapter,
+ .detach_client = gl520_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/it87.c
++++ gregkh-2.6/drivers/hwmon/it87.c
+@@ -234,16 +234,20 @@ static void it87_init_client(struct i2c_
+
+
+ static struct i2c_driver it87_driver = {
+- .owner = THIS_MODULE,
+- .name = "it87",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "it87",
++ },
+ .id = I2C_DRIVERID_IT87,
+ .attach_adapter = it87_attach_adapter,
+ .detach_client = it87_detach_client,
+ };
+
+ static struct i2c_driver it87_isa_driver = {
+- .owner = THIS_MODULE,
+- .name = "it87-isa",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "it87-isa",
++ },
+ .attach_adapter = it87_isa_attach_adapter,
+ .detach_client = it87_detach_client,
+ };
+@@ -760,7 +764,8 @@ static int it87_detect(struct i2c_adapte
+
+ /* Reserve the ISA region */
+ if (is_isa)
+- if (!request_region(address, IT87_EXTENT, it87_isa_driver.name))
++ if (!request_region(address, IT87_EXTENT,
++ it87_isa_driver.driver.name))
+ goto ERROR0;
+
+ /* For now, we presume we have a valid client. We create the
+--- gregkh-2.6.orig/drivers/hwmon/lm63.c
++++ gregkh-2.6/drivers/hwmon/lm63.c
+@@ -139,8 +139,10 @@ static void lm63_init_client(struct i2c_
+ */
+
+ static struct i2c_driver lm63_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm63",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm63",
++ },
+ .attach_adapter = lm63_attach_adapter,
+ .detach_client = lm63_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/lm75.c
++++ gregkh-2.6/drivers/hwmon/lm75.c
+@@ -66,8 +66,10 @@ static struct lm75_data *lm75_update_dev
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver lm75_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm75",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm75",
++ },
+ .id = I2C_DRIVERID_LM75,
+ .attach_adapter = lm75_attach_adapter,
+ .detach_client = lm75_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/lm77.c
++++ gregkh-2.6/drivers/hwmon/lm77.c
+@@ -74,8 +74,10 @@ static struct lm77_data *lm77_update_dev
+
+ /* This is the driver that will be inserted */
+ static struct i2c_driver lm77_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm77",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm77",
++ },
+ .attach_adapter = lm77_attach_adapter,
+ .detach_client = lm77_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/lm78.c
++++ gregkh-2.6/drivers/hwmon/lm78.c
+@@ -164,16 +164,20 @@ static void lm78_init_client(struct i2c_
+
+
+ static struct i2c_driver lm78_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm78",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm78",
++ },
+ .id = I2C_DRIVERID_LM78,
+ .attach_adapter = lm78_attach_adapter,
+ .detach_client = lm78_detach_client,
+ };
+
+ static struct i2c_driver lm78_isa_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm78-isa",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm78-isa",
++ },
+ .attach_adapter = lm78_isa_attach_adapter,
+ .detach_client = lm78_detach_client,
+ };
+@@ -496,7 +500,7 @@ static int lm78_detect(struct i2c_adapte
+ /* Reserve the ISA region */
+ if (is_isa)
+ if (!request_region(address, LM78_EXTENT,
+- lm78_isa_driver.name)) {
++ lm78_isa_driver.driver.name)) {
+ err = -EBUSY;
+ goto ERROR0;
+ }
+--- gregkh-2.6.orig/drivers/hwmon/lm83.c
++++ gregkh-2.6/drivers/hwmon/lm83.c
+@@ -124,8 +124,10 @@ static struct lm83_data *lm83_update_dev
+ */
+
+ static struct i2c_driver lm83_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm83",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm83",
++ },
+ .id = I2C_DRIVERID_LM83,
+ .attach_adapter = lm83_attach_adapter,
+ .detach_client = lm83_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/lm85.c
++++ gregkh-2.6/drivers/hwmon/lm85.c
+@@ -380,8 +380,10 @@ static void lm85_init_client(struct i2c_
+
+
+ static struct i2c_driver lm85_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm85",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm85",
++ },
+ .id = I2C_DRIVERID_LM85,
+ .attach_adapter = lm85_attach_adapter,
+ .detach_client = lm85_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/lm87.c
++++ gregkh-2.6/drivers/hwmon/lm87.c
+@@ -161,8 +161,10 @@ static struct lm87_data *lm87_update_dev
+ */
+
+ static struct i2c_driver lm87_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm87",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm87",
++ },
+ .id = I2C_DRIVERID_LM87,
+ .attach_adapter = lm87_attach_adapter,
+ .detach_client = lm87_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/lm90.c
++++ gregkh-2.6/drivers/hwmon/lm90.c
+@@ -186,8 +186,10 @@ static struct lm90_data *lm90_update_dev
+ */
+
+ static struct i2c_driver lm90_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm90",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm90",
++ },
+ .id = I2C_DRIVERID_LM90,
+ .attach_adapter = lm90_attach_adapter,
+ .detach_client = lm90_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/lm92.c
++++ gregkh-2.6/drivers/hwmon/lm92.c
+@@ -410,8 +410,10 @@ static int lm92_detach_client(struct i2c
+ */
+
+ static struct i2c_driver lm92_driver = {
+- .owner = THIS_MODULE,
+- .name = "lm92",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "lm92",
++ },
+ .id = I2C_DRIVERID_LM92,
+ .attach_adapter = lm92_attach_adapter,
+ .detach_client = lm92_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/max1619.c
++++ gregkh-2.6/drivers/hwmon/max1619.c
+@@ -90,8 +90,10 @@ static struct max1619_data *max1619_upda
+ */
+
+ static struct i2c_driver max1619_driver = {
+- .owner = THIS_MODULE,
+- .name = "max1619",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "max1619",
++ },
+ .attach_adapter = max1619_attach_adapter,
+ .detach_client = max1619_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/pc87360.c
++++ gregkh-2.6/drivers/hwmon/pc87360.c
+@@ -236,8 +236,10 @@ static struct pc87360_data *pc87360_upda
+ */
+
+ static struct i2c_driver pc87360_driver = {
+- .owner = THIS_MODULE,
+- .name = "pc87360",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "pc87360",
++ },
+ .attach_adapter = pc87360_detect,
+ .detach_client = pc87360_detach_client,
+ };
+@@ -798,7 +800,7 @@ static int pc87360_detect(struct i2c_ada
+ for (i = 0; i < 3; i++) {
+ if (((data->address[i] = extra_isa[i]))
+ && !request_region(extra_isa[i], PC87360_EXTENT,
+- pc87360_driver.name)) {
++ pc87360_driver.driver.name)) {
+ dev_err(&new_client->dev, "Region 0x%x-0x%x already "
+ "in use!\n", extra_isa[i],
+ extra_isa[i]+PC87360_EXTENT-1);
+--- gregkh-2.6.orig/drivers/hwmon/sis5595.c
++++ gregkh-2.6/drivers/hwmon/sis5595.c
+@@ -198,8 +198,10 @@ static struct sis5595_data *sis5595_upda
+ static void sis5595_init_client(struct i2c_client *client);
+
+ static struct i2c_driver sis5595_driver = {
+- .owner = THIS_MODULE,
+- .name = "sis5595",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "sis5595",
++ },
+ .attach_adapter = sis5595_detect,
+ .detach_client = sis5595_detach_client,
+ };
+@@ -484,7 +486,8 @@ static int sis5595_detect(struct i2c_ada
+ if (force_addr)
+ address = force_addr & ~(SIS5595_EXTENT - 1);
+ /* Reserve the ISA region */
+- if (!request_region(address, SIS5595_EXTENT, sis5595_driver.name)) {
++ if (!request_region(address, SIS5595_EXTENT,
++ sis5595_driver.driver.name)) {
+ err = -EBUSY;
+ goto exit;
+ }
+--- gregkh-2.6.orig/drivers/hwmon/smsc47b397.c
++++ gregkh-2.6/drivers/hwmon/smsc47b397.c
+@@ -226,8 +226,10 @@ static int smsc47b397_detach_client(stru
+ static int smsc47b397_detect(struct i2c_adapter *adapter);
+
+ static struct i2c_driver smsc47b397_driver = {
+- .owner = THIS_MODULE,
+- .name = "smsc47b397",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "smsc47b397",
++ },
+ .attach_adapter = smsc47b397_detect,
+ .detach_client = smsc47b397_detach_client,
+ };
+@@ -238,7 +240,8 @@ static int smsc47b397_detect(struct i2c_
+ struct smsc47b397_data *data;
+ int err = 0;
+
+- if (!request_region(address, SMSC_EXTENT, smsc47b397_driver.name)) {
++ if (!request_region(address, SMSC_EXTENT,
++ smsc47b397_driver.driver.name)) {
+ dev_err(&adapter->dev, "Region 0x%x already in use!\n",
+ address);
+ return -EBUSY;
+--- gregkh-2.6.orig/drivers/hwmon/smsc47m1.c
++++ gregkh-2.6/drivers/hwmon/smsc47m1.c
+@@ -126,8 +126,10 @@ static struct smsc47m1_data *smsc47m1_up
+
+
+ static struct i2c_driver smsc47m1_driver = {
+- .owner = THIS_MODULE,
+- .name = "smsc47m1",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "smsc47m1",
++ },
+ .attach_adapter = smsc47m1_detect,
+ .detach_client = smsc47m1_detach_client,
+ };
+@@ -394,7 +396,7 @@ static int smsc47m1_detect(struct i2c_ad
+ int err = 0;
+ int fan1, fan2, pwm1, pwm2;
+
+- if (!request_region(address, SMSC_EXTENT, smsc47m1_driver.name)) {
++ if (!request_region(address, SMSC_EXTENT, smsc47m1_driver.driver.name)) {
+ dev_err(&adapter->dev, "Region 0x%x already in use!\n", address);
+ return -EBUSY;
+ }
+--- gregkh-2.6.orig/drivers/hwmon/w83627ehf.c
++++ gregkh-2.6/drivers/hwmon/w83627ehf.c
+@@ -676,7 +676,7 @@ static int w83627ehf_detect(struct i2c_a
+ int i, err = 0;
+
+ if (!request_region(address + REGION_OFFSET, REGION_LENGTH,
+- w83627ehf_driver.name)) {
++ w83627ehf_driver.driver.name)) {
+ err = -EBUSY;
+ goto exit;
+ }
+@@ -785,8 +785,10 @@ static int w83627ehf_detach_client(struc
+ }
+
+ static struct i2c_driver w83627ehf_driver = {
+- .owner = THIS_MODULE,
+- .name = "w83627ehf",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "w83627ehf",
++ },
+ .attach_adapter = w83627ehf_detect,
+ .detach_client = w83627ehf_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/w83627hf.c
++++ gregkh-2.6/drivers/hwmon/w83627hf.c
+@@ -332,8 +332,10 @@ static struct w83627hf_data *w83627hf_up
+ static void w83627hf_init_client(struct i2c_client *client);
+
+ static struct i2c_driver w83627hf_driver = {
+- .owner = THIS_MODULE,
+- .name = "w83627hf",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "w83627hf",
++ },
+ .attach_adapter = w83627hf_detect,
+ .detach_client = w83627hf_detach_client,
+ };
+@@ -1009,7 +1011,7 @@ static int w83627hf_detect(struct i2c_ad
+ address = force_addr & WINB_ALIGNMENT;
+
+ if (!request_region(address + WINB_REGION_OFFSET, WINB_REGION_SIZE,
+- w83627hf_driver.name)) {
++ w83627hf_driver.driver.name)) {
+ err = -EBUSY;
+ goto ERROR0;
+ }
+--- gregkh-2.6.orig/drivers/hwmon/w83792d.c
++++ gregkh-2.6/drivers/hwmon/w83792d.c
+@@ -317,8 +317,10 @@ static void w83792d_print_debug(struct w
+ static void w83792d_init_client(struct i2c_client *client);
+
+ static struct i2c_driver w83792d_driver = {
+- .owner = THIS_MODULE,
+- .name = "w83792d",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "w83792d",
++ },
+ .attach_adapter = w83792d_attach_adapter,
+ .detach_client = w83792d_detach_client,
+ };
+--- gregkh-2.6.orig/drivers/hwmon/w83l785ts.c
++++ gregkh-2.6/drivers/hwmon/w83l785ts.c
+@@ -92,8 +92,10 @@ static struct w83l785ts_data *w83l785ts_
+ */
+
+ static struct i2c_driver w83l785ts_driver = {
+- .owner = THIS_MODULE,
+- .name = "w83l785ts",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "w83l785ts",
++ },
+ .id = I2C_DRIVERID_W83L785TS,
+ .attach_adapter = w83l785ts_attach_adapter,
+ .detach_client = w83l785ts_detach_client,
+--- gregkh-2.6.orig/drivers/hwmon/vt8231.c
++++ gregkh-2.6/drivers/hwmon/vt8231.c
+@@ -585,8 +585,10 @@ static ssize_t show_alarms(struct device
+ static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL);
+
+ static struct i2c_driver vt8231_driver = {
+- .owner = THIS_MODULE,
+- .name = "vt8231",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "vt8231",
++ },
+ .attach_adapter = vt8231_detect,
+ .detach_client = vt8231_detach_client,
+ };
diff --git a/i2c/i2c-drop-driver-owner-and-name-04-macintosh.patch b/i2c/i2c-drop-driver-owner-and-name-04-macintosh.patch
new file mode 100644
index 0000000000000..c242d980f0317
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-04-macintosh.patch
@@ -0,0 +1,87 @@
+From khali@linux-fr.org Sat Nov 26 19:24:33 2005
+Date: Sat, 26 Nov 2005 20:40:34 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Subject: [PATCH 13/25] i2c: Drop i2c_driver.{owner,name}, 4 of 11
+Message-Id: <20051126204034.4c195439.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-04-macintosh.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the drivers for macintosh.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/macintosh/therm_adt746x.c | 6 ++++--
+ drivers/macintosh/therm_pm72.c | 6 ++++--
+ drivers/macintosh/therm_windtunnel.c | 6 ++++--
+ drivers/macintosh/windfarm_lm75_sensor.c | 6 ++++--
+ 4 files changed, 16 insertions(+), 8 deletions(-)
+
+--- gregkh-2.6.orig/drivers/macintosh/therm_adt746x.c
++++ gregkh-2.6/drivers/macintosh/therm_adt746x.c
+@@ -171,8 +171,10 @@ detach_thermostat(struct i2c_adapter *ad
+ }
+
+ static struct i2c_driver thermostat_driver = {
+- .owner = THIS_MODULE,
+- .name = "therm_adt746x",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "therm_adt746x",
++ },
+ .attach_adapter = attach_thermostat,
+ .detach_adapter = detach_thermostat,
+ };
+--- gregkh-2.6.orig/drivers/macintosh/therm_pm72.c
++++ gregkh-2.6/drivers/macintosh/therm_pm72.c
+@@ -283,8 +283,10 @@ static int therm_pm72_detach(struct i2c_
+
+ static struct i2c_driver therm_pm72_driver =
+ {
+- .owner = THIS_MODULE,
+- .name = "therm_pm72",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "therm_pm72",
++ },
+ .attach_adapter = therm_pm72_attach,
+ .detach_adapter = therm_pm72_detach,
+ };
+--- gregkh-2.6.orig/drivers/macintosh/therm_windtunnel.c
++++ gregkh-2.6/drivers/macintosh/therm_windtunnel.c
+@@ -354,8 +354,10 @@ do_detach( struct i2c_client *client )
+ }
+
+ static struct i2c_driver g4fan_driver = {
+- .owner = THIS_MODULE,
+- .name = "therm_windtunnel",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "therm_windtunnel",
++ },
+ .id = I2C_DRIVERID_G4FAN,
+ .attach_adapter = do_attach,
+ .detach_client = do_detach,
+--- gregkh-2.6.orig/drivers/macintosh/windfarm_lm75_sensor.c
++++ gregkh-2.6/drivers/macintosh/windfarm_lm75_sensor.c
+@@ -47,8 +47,10 @@ static int wf_lm75_attach(struct i2c_ada
+ static int wf_lm75_detach(struct i2c_client *client);
+
+ static struct i2c_driver wf_lm75_driver = {
+- .owner = THIS_MODULE,
+- .name = "wf_lm75",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "wf_lm75",
++ },
+ .attach_adapter = wf_lm75_attach,
+ .detach_client = wf_lm75_detach,
+ };
diff --git a/i2c/i2c-drop-driver-owner-and-name-05-media.patch b/i2c/i2c-drop-driver-owner-and-name-05-media.patch
new file mode 100644
index 0000000000000..a6d2297884d8a
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-05-media.patch
@@ -0,0 +1,945 @@
+From khali@linux-fr.org Sat Nov 26 19:24:35 2005
+Date: Sat, 26 Nov 2005 20:43:39 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Mauro Carvalho Chehab <mchehab@brturbo.com.br>, Luca Risolia <luca.risolia@studio.unibo.it>
+Subject: [PATCH 14/25] i2c: Drop i2c_driver.{owner,name}, 5 of 11
+Message-Id: <20051126204339.57f66813.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-05-media.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the drivers/media/video and usb/media drivers.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/media/video/adv7170.c | 6 ++++--
+ drivers/media/video/adv7175.c | 6 ++++--
+ drivers/media/video/bt819.c | 6 ++++--
+ drivers/media/video/bt832.c | 6 ++++--
+ drivers/media/video/bt856.c | 6 ++++--
+ drivers/media/video/bttv-i2c.c | 2 +-
+ drivers/media/video/cs53l32a.c | 13 ++++++++-----
+ drivers/media/video/cx25840/cx25840-core.c | 6 ++++--
+ drivers/media/video/cx25840/cx25840.h | 7 ++++---
+ drivers/media/video/cx88/cx88-i2c.c | 2 +-
+ drivers/media/video/indycam.c | 6 ++++--
+ drivers/media/video/ir-kbd-i2c.c | 5 ++++-
+ drivers/media/video/msp3400.c | 19 +++++++++++--------
+ drivers/media/video/ovcamchip/ovcamchip_core.c | 6 ++++--
+ drivers/media/video/saa5246a.c | 6 ++++--
+ drivers/media/video/saa5249.c | 6 ++++--
+ drivers/media/video/saa6588.c | 6 ++++--
+ drivers/media/video/saa7110.c | 6 ++++--
+ drivers/media/video/saa7111.c | 6 ++++--
+ drivers/media/video/saa7114.c | 6 ++++--
+ drivers/media/video/saa7115.c | 13 ++++++++-----
+ drivers/media/video/saa711x.c | 6 ++++--
+ drivers/media/video/saa7127.c | 16 ++++++++++------
+ drivers/media/video/saa7134/saa6752hs.c | 6 ++++--
+ drivers/media/video/saa7134/saa7134-i2c.c | 4 ++--
+ drivers/media/video/saa7185.c | 6 ++++--
+ drivers/media/video/saa7191.c | 6 ++++--
+ drivers/media/video/tda7432.c | 6 ++++--
+ drivers/media/video/tda9840.c | 6 ++++--
+ drivers/media/video/tda9875.c | 6 ++++--
+ drivers/media/video/tda9887.c | 4 ++--
+ drivers/media/video/tea6415c.c | 6 ++++--
+ drivers/media/video/tea6420.c | 6 ++++--
+ drivers/media/video/tuner-3036.c | 6 ++++--
+ drivers/media/video/tuner-core.c | 6 +++---
+ drivers/media/video/tvaudio.c | 6 ++++--
+ drivers/media/video/tveeprom.c | 6 ++++--
+ drivers/media/video/tvmixer.c | 8 ++++++--
+ drivers/media/video/tvp5150.c | 6 ++++--
+ drivers/media/video/vpx3220.c | 6 ++++--
+ drivers/media/video/wm8775.c | 10 ++++++----
+ drivers/media/video/zoran_driver.c | 14 +++++++-------
+ drivers/usb/media/w9968cf.c | 4 ++--
+ include/media/tuner.h | 7 ++++---
+ 44 files changed, 191 insertions(+), 111 deletions(-)
+
+--- gregkh-2.6.orig/drivers/media/video/adv7170.c
++++ gregkh-2.6/drivers/media/video/adv7170.c
+@@ -497,8 +497,10 @@ adv7170_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_adv7170 = {
+- .owner = THIS_MODULE,
+- .name = "adv7170", /* name */
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adv7170", /* name */
++ },
+
+ .id = I2C_DRIVERID_ADV7170,
+
+--- gregkh-2.6.orig/drivers/media/video/adv7175.c
++++ gregkh-2.6/drivers/media/video/adv7175.c
+@@ -547,8 +547,10 @@ adv7175_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_adv7175 = {
+- .owner = THIS_MODULE,
+- .name = "adv7175", /* name */
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "adv7175", /* name */
++ },
+
+ .id = I2C_DRIVERID_ADV7175,
+
+--- gregkh-2.6.orig/drivers/media/video/bt819.c
++++ gregkh-2.6/drivers/media/video/bt819.c
+@@ -622,8 +622,10 @@ bt819_detach_client (struct i2c_client *
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_bt819 = {
+- .owner = THIS_MODULE,
+- .name = "bt819",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "bt819",
++ },
+
+ .id = I2C_DRIVERID_BT819,
+
+--- gregkh-2.6.orig/drivers/media/video/bt832.c
++++ gregkh-2.6/drivers/media/video/bt832.c
+@@ -230,8 +230,10 @@ bt832_command(struct i2c_client *client,
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "i2c bt832 driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c bt832 driver",
++ },
+ .id = -1, /* FIXME */
+ .attach_adapter = bt832_probe,
+ .detach_client = bt832_detach,
+--- gregkh-2.6.orig/drivers/media/video/bt856.c
++++ gregkh-2.6/drivers/media/video/bt856.c
+@@ -404,8 +404,10 @@ bt856_detach_client (struct i2c_client *
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_bt856 = {
+- .owner = THIS_MODULE,
+- .name = "bt856",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "bt856",
++ },
+
+ .id = I2C_DRIVERID_BT856,
+
+--- gregkh-2.6.orig/drivers/media/video/bttv-i2c.c
++++ gregkh-2.6/drivers/media/video/bttv-i2c.c
+@@ -300,7 +300,7 @@ static int attach_inform(struct i2c_clie
+
+ if (bttv_debug)
+ printk(KERN_DEBUG "bttv%d: %s i2c attach [addr=0x%x,client=%s]\n",
+- btv->c.nr,client->driver->name,client->addr,
++ btv->c.nr, client->driver->driver.name, client->addr,
+ client->name);
+ if (!client->driver->command)
+ return 0;
+--- gregkh-2.6.orig/drivers/media/video/cs53l32a.c
++++ gregkh-2.6/drivers/media/video/cs53l32a.c
+@@ -42,15 +42,16 @@ MODULE_PARM_DESC(debug, "Debugging messa
+ #define cs53l32a_dbg(fmt, arg...) \
+ do { \
+ if (debug) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+ #define cs53l32a_err(fmt, arg...) do { \
+- printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+ #define cs53l32a_info(fmt, arg...) do { \
+- printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ static unsigned short normal_i2c[] = { 0x22 >> 1, I2C_CLIENT_END };
+@@ -215,12 +216,14 @@ static int cs53l32a_detach(struct i2c_cl
+
+ /* i2c implementation */
+ static struct i2c_driver i2c_driver = {
+- .name = "cs53l32a",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "cs53l32a",
++ },
+ .id = I2C_DRIVERID_CS53L32A,
+ .attach_adapter = cs53l32a_probe,
+ .detach_client = cs53l32a_detach,
+ .command = cs53l32a_command,
+- .owner = THIS_MODULE,
+ };
+
+
+--- gregkh-2.6.orig/drivers/media/video/cx25840/cx25840-core.c
++++ gregkh-2.6/drivers/media/video/cx25840/cx25840-core.c
+@@ -807,14 +807,16 @@ static int cx25840_detach_client(struct
+ /* ----------------------------------------------------------------------- */
+
+ struct i2c_driver i2c_driver_cx25840 = {
+- .name = "cx25840",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "cx25840",
++ },
+
+ .id = I2C_DRIVERID_CX25840,
+
+ .attach_adapter = cx25840_attach_adapter,
+ .detach_client = cx25840_detach_client,
+ .command = cx25840_command,
+- .owner = THIS_MODULE,
+ };
+
+
+--- gregkh-2.6.orig/drivers/media/video/cx25840/cx25840.h
++++ gregkh-2.6/drivers/media/video/cx25840/cx25840.h
+@@ -27,15 +27,16 @@
+ extern int cx25840_debug;
+
+ #define cx25840_dbg(fmt, arg...) do { if (cx25840_debug) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ #define cx25840_err(fmt, arg...) do { \
+- printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ #define cx25840_info(fmt, arg...) do { \
+- printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ #define CX25840_CID_CARDTYPE (V4L2_CID_PRIVATE_BASE+0)
+--- gregkh-2.6.orig/drivers/media/video/cx88/cx88-i2c.c
++++ gregkh-2.6/drivers/media/video/cx88/cx88-i2c.c
+@@ -94,7 +94,7 @@ static int attach_inform(struct i2c_clie
+ struct cx88_core *core = i2c_get_adapdata(client->adapter);
+
+ dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n",
+- client->driver->name, client->addr, client->name);
++ client->driver->driver.name, client->addr, client->name);
+ if (!client->driver->command)
+ return 0;
+
+--- gregkh-2.6.orig/drivers/media/video/indycam.c
++++ gregkh-2.6/drivers/media/video/indycam.c
+@@ -451,8 +451,10 @@ static int indycam_command(struct i2c_cl
+ }
+
+ static struct i2c_driver i2c_driver_indycam = {
+- .owner = THIS_MODULE,
+- .name = "indycam",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "indycam",
++ },
+ .id = I2C_DRIVERID_INDYCAM,
+ .attach_adapter = indycam_probe,
+ .detach_client = indycam_detach,
+--- gregkh-2.6.orig/drivers/media/video/ir-kbd-i2c.c
++++ gregkh-2.6/drivers/media/video/ir-kbd-i2c.c
+@@ -277,7 +277,10 @@ static int ir_detach(struct i2c_client *
+ static int ir_probe(struct i2c_adapter *adap);
+
+ static struct i2c_driver driver = {
+- .name = "ir remote kbd driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "ir remote kbd driver",
++ },
+ .id = I2C_DRIVERID_EXP3, /* FIXME */
+ .attach_adapter = ir_probe,
+ .detach_client = ir_detach,
+--- gregkh-2.6.orig/drivers/media/video/msp3400.c
++++ gregkh-2.6/drivers/media/video/msp3400.c
+@@ -59,7 +59,8 @@
+ #define msp3400_dbg(fmt, arg...) \
+ do { \
+ if (debug) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+@@ -67,7 +68,8 @@
+ #define msp3400_dbg_mediumvol(fmt, arg...) \
+ do { \
+ if (debug >= 2) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+@@ -75,18 +77,19 @@
+ #define msp3400_dbg_highvol(fmt, arg...) \
+ do { \
+ if (debug >= 16) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+ #define msp3400_err(fmt, arg...) do { \
+- printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+ #define msp3400_warn(fmt, arg...) do { \
+- printk(KERN_WARNING "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_WARNING "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+ #define msp3400_info(fmt, arg...) do { \
+- printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ #define OPMODE_AUTO -1
+@@ -1557,13 +1560,13 @@ static int msp_resume(struct device * de
+ static void msp_wake_thread(struct i2c_client *client);
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "msp3400",
+ .id = I2C_DRIVERID_MSP3400,
+ .attach_adapter = msp_probe,
+ .detach_client = msp_detach,
+ .command = msp_command,
+ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c msp3400 driver",
+ .suspend = msp_suspend,
+ .resume = msp_resume,
+ },
+--- gregkh-2.6.orig/drivers/media/video/ovcamchip/ovcamchip_core.c
++++ gregkh-2.6/drivers/media/video/ovcamchip/ovcamchip_core.c
+@@ -410,8 +410,10 @@ static int ovcamchip_command(struct i2c_
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "ovcamchip",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "ovcamchip",
++ },
+ .id = I2C_DRIVERID_OVCAMCHIP,
+ .class = I2C_CLASS_CAM_DIGITAL,
+ .attach_adapter = ovcamchip_attach,
+--- gregkh-2.6.orig/drivers/media/video/saa5246a.c
++++ gregkh-2.6/drivers/media/video/saa5246a.c
+@@ -163,8 +163,10 @@ static int saa5246a_command(struct i2c_c
+
+ static struct i2c_driver i2c_driver_videotext =
+ {
+- .owner = THIS_MODULE,
+- .name = IF_NAME, /* name */
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = IF_NAME, /* name */
++ },
+ .id = I2C_DRIVERID_SAA5249, /* in i2c.h */
+ .attach_adapter = saa5246a_probe,
+ .detach_client = saa5246a_detach,
+--- gregkh-2.6.orig/drivers/media/video/saa5249.c
++++ gregkh-2.6/drivers/media/video/saa5249.c
+@@ -236,8 +236,10 @@ static int saa5249_command(struct i2c_cl
+
+ static struct i2c_driver i2c_driver_videotext =
+ {
+- .owner = THIS_MODULE,
+- .name = IF_NAME, /* name */
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = IF_NAME, /* name */
++ },
+ .id = I2C_DRIVERID_SAA5249, /* in i2c.h */
+ .attach_adapter = saa5249_probe,
+ .detach_client = saa5249_detach,
+--- gregkh-2.6.orig/drivers/media/video/saa6588.c
++++ gregkh-2.6/drivers/media/video/saa6588.c
+@@ -496,8 +496,10 @@ static int saa6588_command(struct i2c_cl
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "i2c saa6588 driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c saa6588 driver",
++ },
+ .id = -1, /* FIXME */
+ .attach_adapter = saa6588_probe,
+ .detach_client = saa6588_detach,
+--- gregkh-2.6.orig/drivers/media/video/saa7110.c
++++ gregkh-2.6/drivers/media/video/saa7110.c
+@@ -586,8 +586,10 @@ saa7110_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_saa7110 = {
+- .owner = THIS_MODULE,
+- .name = "saa7110",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7110",
++ },
+
+ .id = I2C_DRIVERID_SAA7110,
+
+--- gregkh-2.6.orig/drivers/media/video/saa7111.c
++++ gregkh-2.6/drivers/media/video/saa7111.c
+@@ -589,8 +589,10 @@ saa7111_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_saa7111 = {
+- .owner = THIS_MODULE,
+- .name = "saa7111",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7111",
++ },
+
+ .id = I2C_DRIVERID_SAA7111A,
+
+--- gregkh-2.6.orig/drivers/media/video/saa7114.c
++++ gregkh-2.6/drivers/media/video/saa7114.c
+@@ -1203,8 +1203,10 @@ saa7114_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_saa7114 = {
+- .owner = THIS_MODULE,
+- .name = "saa7114",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7114",
++ },
+
+ .id = I2C_DRIVERID_SAA7114,
+
+--- gregkh-2.6.orig/drivers/media/video/saa7115.c
++++ gregkh-2.6/drivers/media/video/saa7115.c
+@@ -52,15 +52,16 @@ MODULE_PARM_DESC(debug, "Debug level (0-
+ #define saa7115_dbg(fmt,arg...) \
+ do { \
+ if (debug) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+ #define saa7115_err(fmt, arg...) do { \
+- printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+ #define saa7115_info(fmt, arg...) do { \
+- printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ static unsigned short normal_i2c[] = { 0x42 >> 1, 0x40 >> 1, I2C_CLIENT_END };
+@@ -1351,12 +1352,14 @@ static int saa7115_detach(struct i2c_cli
+
+ /* i2c implementation */
+ static struct i2c_driver i2c_driver_saa7115 = {
+- .name = "saa7115",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7115",
++ },
+ .id = I2C_DRIVERID_SAA711X,
+ .attach_adapter = saa7115_probe,
+ .detach_client = saa7115_detach,
+ .command = saa7115_command,
+- .owner = THIS_MODULE,
+ };
+
+
+--- gregkh-2.6.orig/drivers/media/video/saa711x.c
++++ gregkh-2.6/drivers/media/video/saa711x.c
+@@ -564,8 +564,10 @@ saa711x_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_saa711x = {
+- .owner = THIS_MODULE,
+- .name = "saa711x",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa711x",
++ },
+
+ .id = I2C_DRIVERID_SAA711X,
+
+--- gregkh-2.6.orig/drivers/media/video/saa7127.c
++++ gregkh-2.6/drivers/media/video/saa7127.c
+@@ -69,7 +69,8 @@ MODULE_PARM_DESC(test_image, "test_image
+ #define saa7127_dbg(fmt, arg...) \
+ do { \
+ if (debug >= 1) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+@@ -77,15 +78,16 @@ MODULE_PARM_DESC(test_image, "test_image
+ #define saa7127_dbg_highvol(fmt, arg...) \
+ do { \
+ if (debug == 2) \
+- printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s debug %d-%04x: " fmt, \
++ client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); \
+ } while (0)
+
+ #define saa7127_err(fmt, arg...) do { \
+- printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+ #define saa7127_info(fmt, arg...) do { \
+- printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+ static unsigned short normal_i2c[] = { 0x88 >> 1, I2C_CLIENT_END };
+@@ -818,12 +820,14 @@ static int saa7127_detach(struct i2c_cli
+ /* ----------------------------------------------------------------------- */
+
+ struct i2c_driver i2c_driver_saa7127 = {
+- .name = "saa7127",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7127",
++ },
+ .id = I2C_DRIVERID_SAA7127,
+ .attach_adapter = saa7127_probe,
+ .detach_client = saa7127_detach,
+ .command = saa7127_command,
+- .owner = THIS_MODULE,
+ };
+
+
+--- gregkh-2.6.orig/drivers/media/video/saa7134/saa6752hs.c
++++ gregkh-2.6/drivers/media/video/saa7134/saa6752hs.c
+@@ -596,8 +596,10 @@ saa6752hs_command(struct i2c_client *cli
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "i2c saa6752hs MPEG encoder",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c saa6752hs MPEG encoder",
++ },
+ .id = I2C_DRIVERID_SAA6752HS,
+ .attach_adapter = saa6752hs_probe,
+ .detach_client = saa6752hs_detach,
+--- gregkh-2.6.orig/drivers/media/video/saa7134/saa7134-i2c.c
++++ gregkh-2.6/drivers/media/video/saa7134/saa7134-i2c.c
+@@ -333,7 +333,7 @@ static int attach_inform(struct i2c_clie
+ struct tuner_setup tun_setup;
+
+ d1printk( "%s i2c attach [addr=0x%x,client=%s]\n",
+- client->driver->name, client->addr, client->name);
++ client->driver->driver.name, client->addr, client->name);
+
+ /* Am I an i2c remote control? */
+
+@@ -343,7 +343,7 @@ static int attach_inform(struct i2c_clie
+ {
+ struct IR_i2c *ir = i2c_get_clientdata(client);
+ d1printk("%s i2c IR detected (%s).\n",
+- client->driver->name,ir->phys);
++ client->driver->driver.name, ir->phys);
+ saa7134_set_i2c_ir(dev,ir);
+ break;
+ }
+--- gregkh-2.6.orig/drivers/media/video/saa7185.c
++++ gregkh-2.6/drivers/media/video/saa7185.c
+@@ -486,8 +486,10 @@ saa7185_detach_client (struct i2c_client
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver i2c_driver_saa7185 = {
+- .owner = THIS_MODULE,
+- .name = "saa7185", /* name */
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7185", /* name */
++ },
+
+ .id = I2C_DRIVERID_SAA7185B,
+
+--- gregkh-2.6.orig/drivers/media/video/saa7191.c
++++ gregkh-2.6/drivers/media/video/saa7191.c
+@@ -788,8 +788,10 @@ static int saa7191_command(struct i2c_cl
+ }
+
+ static struct i2c_driver i2c_driver_saa7191 = {
+- .owner = THIS_MODULE,
+- .name = "saa7191",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "saa7191",
++ },
+ .id = I2C_DRIVERID_SAA7191,
+ .attach_adapter = saa7191_probe,
+ .detach_client = saa7191_detach,
+--- gregkh-2.6.orig/drivers/media/video/tda7432.c
++++ gregkh-2.6/drivers/media/video/tda7432.c
+@@ -501,8 +501,10 @@ static int tda7432_command(struct i2c_cl
+ }
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "i2c tda7432 driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c tda7432 driver",
++ },
+ .id = I2C_DRIVERID_TDA7432,
+ .attach_adapter = tda7432_probe,
+ .detach_client = tda7432_detach,
+--- gregkh-2.6.orig/drivers/media/video/tda9840.c
++++ gregkh-2.6/drivers/media/video/tda9840.c
+@@ -221,8 +221,10 @@ static int detach(struct i2c_client *cli
+ }
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "tda9840",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tda9840",
++ },
+ .id = I2C_DRIVERID_TDA9840,
+ .attach_adapter = attach,
+ .detach_client = detach,
+--- gregkh-2.6.orig/drivers/media/video/tda9875.c
++++ gregkh-2.6/drivers/media/video/tda9875.c
+@@ -372,8 +372,10 @@ static int tda9875_command(struct i2c_cl
+
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "i2c tda9875 driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c tda9875 driver",
++ },
+ .id = I2C_DRIVERID_TDA9875,
+ .attach_adapter = tda9875_probe,
+ .detach_client = tda9875_detach,
+--- gregkh-2.6.orig/drivers/media/video/tda9887.c
++++ gregkh-2.6/drivers/media/video/tda9887.c
+@@ -818,13 +818,13 @@ static int tda9887_resume(struct device
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "i2c tda9887 driver",
+ .id = -1, /* FIXME */
+ .attach_adapter = tda9887_probe,
+ .detach_client = tda9887_detach,
+ .command = tda9887_command,
+ .driver = {
++ .owner = THIS_MODULE,
++ .name = "i2c tda9887 driver",
+ .suspend = tda9887_suspend,
+ .resume = tda9887_resume,
+ },
+--- gregkh-2.6.orig/drivers/media/video/tea6415c.c
++++ gregkh-2.6/drivers/media/video/tea6415c.c
+@@ -190,8 +190,10 @@ static int command(struct i2c_client *cl
+ }
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "tea6415c",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tea6415c",
++ },
+ .id = I2C_DRIVERID_TEA6415C,
+ .attach_adapter = attach,
+ .detach_client = detach,
+--- gregkh-2.6.orig/drivers/media/video/tea6420.c
++++ gregkh-2.6/drivers/media/video/tea6420.c
+@@ -167,8 +167,10 @@ static int command(struct i2c_client *cl
+ }
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "tea6420",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tea6420",
++ },
+ .id = I2C_DRIVERID_TEA6420,
+ .attach_adapter = attach,
+ .detach_client = detach,
+--- gregkh-2.6.orig/drivers/media/video/tuner-3036.c
++++ gregkh-2.6/drivers/media/video/tuner-3036.c
+@@ -175,8 +175,10 @@ tuner_probe(struct i2c_adapter *adap)
+ static struct i2c_driver
+ i2c_driver_tuner =
+ {
+- .owner = THIS_MODULE,
+- .name = "sab3036",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "sab3036",
++ },
+ .id = I2C_DRIVERID_SAB3036,
+ .attach_adapter = tuner_probe,
+ .detach_client = tuner_detach,
+--- gregkh-2.6.orig/drivers/media/video/tuner-core.c
++++ gregkh-2.6/drivers/media/video/tuner-core.c
+@@ -206,7 +206,7 @@ static void set_type(struct i2c_client *
+
+ set_freq(c, t->freq);
+ tuner_dbg("%s %s I2C addr 0x%02x with type %d used for 0x%02x\n",
+- c->adapter->name, c->driver->name, c->addr << 1, type,
++ c->adapter->name, c->driver->driver.name, c->addr << 1, type,
+ t->mode_mask);
+ }
+
+@@ -742,13 +742,13 @@ static int tuner_resume(struct device *d
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "tuner",
+ .id = I2C_DRIVERID_TUNER,
+ .attach_adapter = tuner_probe,
+ .detach_client = tuner_detach,
+ .command = tuner_command,
+ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tuner",
+ .suspend = tuner_suspend,
+ .resume = tuner_resume,
+ },
+--- gregkh-2.6.orig/drivers/media/video/tvaudio.c
++++ gregkh-2.6/drivers/media/video/tvaudio.c
+@@ -1702,8 +1702,10 @@ static int chip_command(struct i2c_clien
+
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "generic i2c audio driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "generic i2c audio driver",
++ },
+ .id = I2C_DRIVERID_TVAUDIO,
+ .attach_adapter = chip_probe,
+ .detach_client = chip_detach,
+--- gregkh-2.6.orig/drivers/media/video/tveeprom.c
++++ gregkh-2.6/drivers/media/video/tveeprom.c
+@@ -735,8 +735,10 @@ tveeprom_detach_client (struct i2c_clien
+ }
+
+ static struct i2c_driver i2c_driver_tveeprom = {
+- .owner = THIS_MODULE,
+- .name = "tveeprom",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tveeprom",
++ },
+ .id = I2C_DRIVERID_TVEEPROM,
+ .attach_adapter = tveeprom_attach_adapter,
+ .detach_client = tveeprom_detach_client,
+--- gregkh-2.6.orig/drivers/media/video/tvmixer.c
++++ gregkh-2.6/drivers/media/video/tvmixer.c
+@@ -228,9 +228,13 @@ static int tvmixer_release(struct inode
+
+ static struct i2c_driver driver = {
+ #ifdef I2C_PEC
+- .owner = THIS_MODULE,
+-#endif
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tv card mixer driver",
++ },
++#else
+ .name = "tv card mixer driver",
++#endif
+ .id = I2C_DRIVERID_TVMIXER,
+ .detach_adapter = tvmixer_adapters,
+ .attach_adapter = tvmixer_adapters,
+--- gregkh-2.6.orig/drivers/media/video/tvp5150.c
++++ gregkh-2.6/drivers/media/video/tvp5150.c
+@@ -801,8 +801,10 @@ static int tvp5150_detach_client(struct
+ /* ----------------------------------------------------------------------- */
+
+ static struct i2c_driver driver = {
+- .owner = THIS_MODULE,
+- .name = "tvp5150",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tvp5150",
++ },
+
+ /* FIXME */
+ .id = I2C_DRIVERID_SAA7110,
+--- gregkh-2.6.orig/drivers/media/video/vpx3220.c
++++ gregkh-2.6/drivers/media/video/vpx3220.c
+@@ -721,8 +721,10 @@ vpx3220_attach_adapter (struct i2c_adapt
+ */
+
+ static struct i2c_driver vpx3220_i2c_driver = {
+- .owner = THIS_MODULE,
+- .name = "vpx3220",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "vpx3220",
++ },
+
+ .id = I2C_DRIVERID_VPX3220,
+
+--- gregkh-2.6.orig/drivers/media/video/wm8775.c
++++ gregkh-2.6/drivers/media/video/wm8775.c
+@@ -40,10 +40,10 @@ MODULE_AUTHOR("Ulf Eklund, Hans Verkuil"
+ MODULE_LICENSE("GPL");
+
+ #define wm8775_err(fmt, arg...) do { \
+- printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+ #define wm8775_info(fmt, arg...) do { \
+- printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
+ i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
+
+
+@@ -232,14 +232,16 @@ static int wm8775_detach(struct i2c_clie
+
+ /* i2c implementation */
+ static struct i2c_driver i2c_driver = {
+- .name = "wm8775",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "wm8775",
++ },
+
+ .id = I2C_DRIVERID_WM8775,
+
+ .attach_adapter = wm8775_probe,
+ .detach_client = wm8775_detach,
+ .command = wm8775_command,
+- .owner = THIS_MODULE,
+ };
+
+
+--- gregkh-2.6.orig/drivers/media/video/zoran_driver.c
++++ gregkh-2.6/drivers/media/video/zoran_driver.c
+@@ -1311,7 +1311,7 @@ zoran_open (struct inode *inode,
+ res = -ENODEV;
+ goto open_unlock_and_return;
+ }
+- if (!try_module_get(zr->decoder->driver->owner)) {
++ if (!try_module_get(zr->decoder->driver->driver.owner)) {
+ dprintk(1,
+ KERN_ERR
+ "%s: failed to grab ownership of i2c decoder\n",
+@@ -1321,13 +1321,13 @@ zoran_open (struct inode *inode,
+ goto open_unlock_and_return;
+ }
+ if (zr->encoder &&
+- !try_module_get(zr->encoder->driver->owner)) {
++ !try_module_get(zr->encoder->driver->driver.owner)) {
+ dprintk(1,
+ KERN_ERR
+ "%s: failed to grab ownership of i2c encoder\n",
+ ZR_DEVNAME(zr));
+ res = -EIO;
+- module_put(zr->decoder->driver->owner);
++ module_put(zr->decoder->driver->driver.owner);
+ module_put(THIS_MODULE);
+ goto open_unlock_and_return;
+ }
+@@ -1393,9 +1393,9 @@ zoran_open (struct inode *inode,
+ open_unlock_and_return:
+ /* if we grabbed locks, release them accordingly */
+ if (have_module_locks) {
+- module_put(zr->decoder->driver->owner);
++ module_put(zr->decoder->driver->driver.owner);
+ if (zr->encoder) {
+- module_put(zr->encoder->driver->owner);
++ module_put(zr->encoder->driver->driver.owner);
+ }
+ module_put(THIS_MODULE);
+ }
+@@ -1461,9 +1461,9 @@ zoran_close (struct inode *inode,
+ kfree(fh);
+
+ /* release locks on the i2c modules */
+- module_put(zr->decoder->driver->owner);
++ module_put(zr->decoder->driver->driver.owner);
+ if (zr->encoder) {
+- module_put(zr->encoder->driver->owner);
++ module_put(zr->encoder->driver->driver.owner);
+ }
+ module_put(THIS_MODULE);
+
+--- gregkh-2.6.orig/drivers/usb/media/w9968cf.c
++++ gregkh-2.6/drivers/usb/media/w9968cf.c
+@@ -1533,12 +1533,12 @@ static int w9968cf_i2c_attach_inform(str
+ }
+ } else {
+ DBG(4, "Rejected client [%s] with driver [%s]",
+- client->name, client->driver->name)
++ client->name, client->driver->driver.name)
+ return -EINVAL;
+ }
+
+ DBG(5, "I2C attach client [%s] with driver [%s]",
+- client->name, client->driver->name)
++ client->name, client->driver->driver.name)
+
+ return 0;
+ }
+--- gregkh-2.6.orig/include/media/tuner.h
++++ gregkh-2.6/include/media/tuner.h
+@@ -218,14 +218,15 @@ extern int default_tuner_init(struct i2c
+ extern int tea5767_autodetection(struct i2c_client *c);
+
+ #define tuner_warn(fmt, arg...) do {\
+- printk(KERN_WARNING "%s %d-%04x: " fmt, t->i2c.driver->name, \
++ printk(KERN_WARNING "%s %d-%04x: " fmt, t->i2c.driver->driver.name, \
+ t->i2c.adapter->nr, t->i2c.addr , ##arg); } while (0)
+ #define tuner_info(fmt, arg...) do {\
+- printk(KERN_INFO "%s %d-%04x: " fmt, t->i2c.driver->name, \
++ printk(KERN_INFO "%s %d-%04x: " fmt, t->i2c.driver->driver.name, \
+ t->i2c.adapter->nr, t->i2c.addr , ##arg); } while (0)
+ #define tuner_dbg(fmt, arg...) do {\
+ if (tuner_debug) \
+- printk(KERN_DEBUG "%s %d-%04x: " fmt, t->i2c.driver->name, \
++ printk(KERN_DEBUG "%s %d-%04x: " fmt, \
++ t->i2c.driver->driver.name, \
+ t->i2c.adapter->nr, t->i2c.addr , ##arg); } while (0)
+
+ #endif /* __KERNEL__ */
diff --git a/i2c/i2c-drop-driver-owner-and-name-06-oss.patch b/i2c/i2c-drop-driver-owner-and-name-06-oss.patch
new file mode 100644
index 0000000000000..5ac9d28d5ce43
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-06-oss.patch
@@ -0,0 +1,54 @@
+From khali@linux-fr.org Sat Nov 26 19:24:39 2005
+Date: Sat, 26 Nov 2005 20:46:32 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>
+Subject: [PATCH 15/25] i2c: Drop i2c_driver.{owner,name}, 6 of 11
+Message-Id: <20051126204632.23576e62.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-06-oss.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the OSS drivers.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/oss/dmasound/dac3550a.c | 6 ++++--
+ sound/oss/dmasound/tas_common.c | 6 ++++--
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+--- gregkh-2.6.orig/sound/oss/dmasound/dac3550a.c
++++ gregkh-2.6/sound/oss/dmasound/dac3550a.c
+@@ -41,8 +41,10 @@ static int daca_detect_client(struct i2c
+ static int daca_detach_client(struct i2c_client *client);
+
+ struct i2c_driver daca_driver = {
+- .owner = THIS_MODULE,
+- .name = "DAC3550A driver V " DACA_VERSION,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "DAC3550A driver V " DACA_VERSION,
++ },
+ .id = I2C_DRIVERID_DACA,
+ .attach_adapter = daca_attach_adapter,
+ .detach_client = daca_detach_client,
+--- gregkh-2.6.orig/sound/oss/dmasound/tas_common.c
++++ gregkh-2.6/sound/oss/dmasound/tas_common.c
+@@ -47,8 +47,10 @@ static int tas_attach_adapter(struct i2c
+ static int tas_detach_client(struct i2c_client *);
+
+ struct i2c_driver tas_driver = {
+- .owner = THIS_MODULE,
+- .name = "tas",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "tas",
++ },
+ .attach_adapter = tas_attach_adapter,
+ .detach_client = tas_detach_client,
+ };
diff --git a/i2c/i2c-drop-driver-owner-and-name-07-ppc.patch b/i2c/i2c-drop-driver-owner-and-name-07-ppc.patch
new file mode 100644
index 0000000000000..c8511ed53c07c
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-07-ppc.patch
@@ -0,0 +1,37 @@
+From khali@linux-fr.org Sat Nov 26 19:24:41 2005
+Date: Sat, 26 Nov 2005 20:48:35 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Takashi Iwai <tiwai@suse.de>
+Subject: [PATCH 16/25] i2c: Drop i2c_driver.{owner,name}, 7 of 11
+Message-Id: <20051126204835.38fb0268.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-07-ppc.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the drivers for ppc arch.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/ppc/keywest.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- gregkh-2.6.orig/sound/ppc/keywest.c
++++ gregkh-2.6/sound/ppc/keywest.c
+@@ -41,7 +41,10 @@ static int keywest_attach_adapter(struct
+ static int keywest_detach_client(struct i2c_client *client);
+
+ struct i2c_driver keywest_driver = {
+- .name = "PMac Keywest Audio",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "PMac Keywest Audio",
++ },
+ .id = I2C_DRIVERID_KEYWEST,
+ .attach_adapter = &keywest_attach_adapter,
+ .detach_client = &keywest_detach_client,
diff --git a/i2c/i2c-drop-driver-owner-and-name-08-acorn.patch b/i2c/i2c-drop-driver-owner-and-name-08-acorn.patch
new file mode 100644
index 0000000000000..9753bd8aeee7d
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-08-acorn.patch
@@ -0,0 +1,38 @@
+From khali@linux-fr.org Sat Nov 26 19:24:45 2005
+Date: Sat, 26 Nov 2005 20:51:06 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Russell King <rmk@arm.linux.org.uk>
+Subject: [PATCH 17/25] i2c: Drop i2c_driver.{owner,name}, 8 of 11
+Message-Id: <20051126205106.154b3d4d.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-08-acorn.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the drivers for acorn arch.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/acorn/char/pcf8583.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- gregkh-2.6.orig/drivers/acorn/char/pcf8583.c
++++ gregkh-2.6/drivers/acorn/char/pcf8583.c
+@@ -257,7 +257,10 @@ pcf8583_command(struct i2c_client *clien
+ }
+
+ static struct i2c_driver pcf8583_driver = {
+- .name = "PCF8583",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "PCF8583",
++ },
+ .id = I2C_DRIVERID_PCF8583,
+ .attach_adapter = pcf8583_probe,
+ .detach_client = pcf8583_detach,
diff --git a/i2c/i2c-drop-driver-owner-and-name-09-video.patch b/i2c/i2c-drop-driver-owner-and-name-09-video.patch
new file mode 100644
index 0000000000000..bc3f8542d92d1
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-09-video.patch
@@ -0,0 +1,39 @@
+From khali@linux-fr.org Sat Nov 26 19:24:47 2005
+Date: Sat, 26 Nov 2005 20:52:34 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Petr Vandrovec <vandrove@vc.cvut.cz>
+Subject: [PATCH 18/25] i2c: Drop i2c_driver.{owner,name}, 9 of 11
+Message-Id: <20051126205234.70e635ef.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-09-video.patch
+
+From: Laurent Riffard <laurent.riffard@free.fr>
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the matroxfb driver.
+
+Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Acked-by: Petr Vandrovec <petr@vandrovec.name>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/video/matrox/matroxfb_maven.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- gregkh-2.6.orig/drivers/video/matrox/matroxfb_maven.c
++++ gregkh-2.6/drivers/video/matrox/matroxfb_maven.c
+@@ -1293,8 +1293,10 @@ static int maven_command(struct i2c_clie
+ }
+
+ static struct i2c_driver maven_driver={
+- .owner = THIS_MODULE,
+- .name = "maven",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "maven",
++ },
+ .id = I2C_DRIVERID_MGATVO,
+ .attach_adapter = maven_attach_adapter,
+ .detach_client = maven_detach_client,
diff --git a/i2c/i2c-drop-driver-owner-and-name-10-arm.patch b/i2c/i2c-drop-driver-owner-and-name-10-arm.patch
new file mode 100644
index 0000000000000..807b59c414b0b
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-10-arm.patch
@@ -0,0 +1,36 @@
+From khali@linux-fr.org Sat Nov 26 19:24:50 2005
+Date: Sat, 26 Nov 2005 20:54:10 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>, Richard Purdie <richard@openedhand.com>
+Subject: [PATCH 19/25] i2c: Drop i2c_driver.{owner,name}, 10 of 11
+Message-Id: <20051126205410.4305279b.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-10-arm.patch
+
+We should use the i2c_driver.driver's .name and .owner fields
+instead of the i2c_driver's ones.
+
+This patch updates the drivers for arm arch.
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+CC: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ arch/arm/mach-pxa/akita-ioexp.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- gregkh-2.6.orig/arch/arm/mach-pxa/akita-ioexp.c
++++ gregkh-2.6/arch/arm/mach-pxa/akita-ioexp.c
+@@ -124,8 +124,10 @@ static int max7310_detach_client(struct
+ }
+
+ static struct i2c_driver max7310_i2c_driver = {
+- .owner = THIS_MODULE,
+- .name = "akita-max7310",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "akita-max7310",
++ },
+ .id = I2C_DRIVERID_AKITAIOEXP,
+ .attach_adapter = max7310_attach_adapter,
+ .detach_client = max7310_detach_client,
diff --git a/i2c/i2c-drop-driver-owner-and-name-11-documentation.patch b/i2c/i2c-drop-driver-owner-and-name-11-documentation.patch
new file mode 100644
index 0000000000000..3e8699968b239
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-11-documentation.patch
@@ -0,0 +1,48 @@
+From khali@linux-fr.org Sat Nov 26 19:24:54 2005
+Date: Sat, 26 Nov 2005 20:55:35 +0100
+From: Jean Delvare <khali@linux-fr.org>
+To: Greg KH <greg@kroah.com>
+Cc: Laurent Riffard <laurent.riffard@free.fr>
+Subject: [PATCH 20/25] i2c: Drop i2c_driver.{owner,name}, 11 of 11
+Message-Id: <20051126205535.7a7f6a76.khali@linux-fr.org>
+Content-Disposition: inline; filename=i2c-drop-driver-owner-and-name-11-documentation.patch
+
+Document the drop of the owner and name fields of the i2c_driver
+structure.
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+CC: Laurent Riffard <laurent.riffard@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ Documentation/i2c/porting-clients | 4 ++++
+ Documentation/i2c/writing-clients | 6 ++++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+--- gregkh-2.6.orig/Documentation/i2c/porting-clients
++++ gregkh-2.6/Documentation/i2c/porting-clients
+@@ -125,6 +125,10 @@ Technical changes:
+
+ * [Driver] The flags field of the i2c_driver structure is gone.
+ I2C_DF_NOTIFY is now the default behavior.
++ The i2c_driver structure has a driver member, which is itself a
++ structure, those owner and name members should be initialized to
++ THIS_MODULE and a driver name string, respectively. i2c_driver
++ itself has no name member anymore.
+
+ Coding policy:
+
+--- gregkh-2.6.orig/Documentation/i2c/writing-clients
++++ gregkh-2.6/Documentation/i2c/writing-clients
+@@ -25,8 +25,10 @@ routines, a client structure specific in
+ address.
+
+ static struct i2c_driver foo_driver = {
+- .owner = THIS_MODULE,
+- .name = "Foo version 2.3 driver",
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "foo",
++ },
+ .attach_adapter = &foo_attach_adapter,
+ .detach_client = &foo_detach_client,
+ .command = &foo_command /* may be NULL */
diff --git a/i2c/i2c-drop-driver-owner-and-name-12-fix-debug.patch b/i2c/i2c-drop-driver-owner-and-name-12-fix-debug.patch
new file mode 100644
index 0000000000000..5080b31b66f67
--- /dev/null
+++ b/i2c/i2c-drop-driver-owner-and-name-12-fix-debug.patch
@@ -0,0 +1,43 @@
+From foo@baz Wed Nov 30 16:35:36 2005
+Date: Wed, 30 Nov 2005 16:35:09 -0800
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Subject: I2C: Fix up debug build error for previous i2c structure changes
+
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+Cc: Jean Delvare <khali@linux-fr.org>
+
+
+---
+ drivers/i2c/busses/i2c-isa.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- gregkh-2.6.orig/drivers/i2c/busses/i2c-isa.c
++++ gregkh-2.6/drivers/i2c/busses/i2c-isa.c
+@@ -98,7 +98,7 @@ int i2c_isa_add_driver(struct i2c_driver
+ res = driver_register(&driver->driver);
+ if (res)
+ return res;
+- dev_dbg(&isa_adapter.dev, "Driver %s registered\n", driver->name);
++ dev_dbg(&isa_adapter.dev, "Driver %s registered\n", driver->driver.name);
+
+ /* Now look for clients */
+ driver->attach_adapter(&isa_adapter);
+@@ -129,7 +129,7 @@ int i2c_isa_del_driver(struct i2c_driver
+
+ /* Get the driver off the core list */
+ driver_unregister(&driver->driver);
+- dev_dbg(&isa_adapter.dev, "Driver %s unregistered\n", driver->name);
++ dev_dbg(&isa_adapter.dev, "Driver %s unregistered\n", driver->driver.name);
+
+ return 0;
+ }
+@@ -174,7 +174,7 @@ static void __exit i2c_isa_exit(void)
+ list_for_each_safe(item, _n, &isa_adapter.clients) {
+ client = list_entry(item, struct i2c_client, list);
+ dev_err(&isa_adapter.dev, "Driver %s still has an active "
+- "ISA client at 0x%x\n", client->driver->name,
++ "ISA client at 0x%x\n", client->driver->driver.name,
+ client->addr);
+ }
+ if (client != NULL)