[i2c] [patch 2.6.21-rc3-git +i2c 2/4] remove i2c_client.adapter
David Brownell
david-b at pacbell.net
Mon Mar 12 19:37:36 CET 2007
Remove some more (error prone) duplication in the i2c stack:
i2c_client.adapter == to_i2c_adapter(i2c_client.dev.parent)
The i2c_client.adapter field should be removed, since the driver model
field is more fundamental. This means that all legacy I2C drivers need
to change the line which previously initialized that field ... making
this a large patch.
In some cases, other accesses also need to change. Some drivers made
direct calls to the I2C messaging layer using client->adapter (which
were easy to fix). The windfarm driver is more problematic, since it
must stop using "adapter is null" as a proxy for missing internal state.
Signed-off-by: David Brownell <dbrownell at users.sourceforge.net>
---
NOTE: Not everything here has been test-built. And as with the patch
to remove the "driver" field, some parts of this (not related to init
of that field) could be merged earlier, in a smaller patch. Also, I
suspect an inline function to get the adapter of an i2c_client would
be a useful addition to the API.
Documentation/i2c/writing-clients | 2
arch/arm/mach-pxa/akita-ioexp.c | 2
drivers/hwmon/adm1021.c | 2
drivers/hwmon/adm1025.c | 2
drivers/hwmon/adm1026.c | 2
drivers/hwmon/adm1029.c | 2
drivers/hwmon/adm1031.c | 2
drivers/hwmon/adm9240.c | 2
drivers/hwmon/asb100.c | 4 -
drivers/hwmon/atxp1.c | 2
drivers/hwmon/ds1621.c | 2
drivers/hwmon/fscher.c | 2
drivers/hwmon/fscpos.c | 2
drivers/hwmon/gl518sm.c | 2
drivers/hwmon/gl520sm.c | 2
drivers/hwmon/it87.c | 2
drivers/hwmon/lm63.c | 2
drivers/hwmon/lm75.c | 2
drivers/hwmon/lm77.c | 2
drivers/hwmon/lm78.c | 2
drivers/hwmon/lm80.c | 2
drivers/hwmon/lm83.c | 2
drivers/hwmon/lm85.c | 9 +--
drivers/hwmon/lm87.c | 2
drivers/hwmon/lm90.c | 4 -
drivers/hwmon/lm92.c | 2
drivers/hwmon/max1619.c | 2
drivers/hwmon/pc87360.c | 2
drivers/hwmon/sis5595.c | 2
drivers/hwmon/smsc47b397.c | 2
drivers/hwmon/smsc47m1.c | 2
drivers/hwmon/smsc47m192.c | 2
drivers/hwmon/via686a.c | 2
drivers/hwmon/vt8231.c | 2
drivers/hwmon/w83627ehf.c | 2
drivers/hwmon/w83627hf.c | 2
drivers/hwmon/w83781d.c | 4 -
drivers/hwmon/w83791d.c | 4 -
drivers/hwmon/w83792d.c | 4 -
drivers/hwmon/w83793.c | 4 -
drivers/hwmon/w83l785ts.c | 2
drivers/i2c/chips/ds1337.c | 10 +--
drivers/i2c/chips/ds1374.c | 2
drivers/i2c/chips/eeprom.c | 5 +
drivers/i2c/chips/isp1301_omap.c | 2
drivers/i2c/chips/m41t00.c | 2
drivers/i2c/chips/max6875.c | 6 +-
drivers/i2c/chips/pca9539.c | 2
drivers/i2c/chips/pcf8574.c | 2
drivers/i2c/chips/pcf8591.c | 2
drivers/i2c/chips/tps65010.c | 2
drivers/i2c/i2c-core.c | 69 ++++++++++++++++---------
drivers/i2c/i2c-dev.c | 26 ++++-----
drivers/macintosh/therm_adt746x.c | 2
drivers/macintosh/therm_pm72.c | 2
drivers/macintosh/therm_windtunnel.c | 2
drivers/macintosh/windfarm_lm75_sensor.c | 8 --
drivers/macintosh/windfarm_max6690_sensor.c | 6 --
drivers/macintosh/windfarm_smu_sat.c | 6 --
drivers/media/video/adv7170.c | 2
drivers/media/video/bt819.c | 2
drivers/media/video/bt856.c | 2
drivers/media/video/bt866.c | 2
drivers/media/video/bt8xx/bt832.c | 2
drivers/media/video/cs53l32a.c | 2
drivers/media/video/cx25840/cx25840-core.c | 2
drivers/media/video/em28xx/em28xx-i2c.c | 8 +-
drivers/media/video/indycam.c | 2
drivers/media/video/ir-kbd-i2c.c | 4 -
drivers/media/video/ks0127.c | 2
drivers/media/video/msp3400-driver.c | 2
drivers/media/video/ov7670.c | 2
drivers/media/video/ovcamchip/ov6x20.c | 7 +-
drivers/media/video/ovcamchip/ov6x30.c | 6 +-
drivers/media/video/ovcamchip/ovcamchip_core.c | 2
drivers/media/video/pvrusb2/pvrusb2-eeprom.c | 2
drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | 6 +-
drivers/media/video/saa5246a.c | 2
drivers/media/video/saa5249.c | 2
drivers/media/video/saa6588.c | 3 -
drivers/media/video/saa7110.c | 2
drivers/media/video/saa7111.c | 2
drivers/media/video/saa7114.c | 2
drivers/media/video/saa7115.c | 2
drivers/media/video/saa711x.c | 2
drivers/media/video/saa7127.c | 2
drivers/media/video/saa7134/saa6752hs.c | 2
drivers/media/video/saa7185.c | 2
drivers/media/video/saa7191.c | 2
drivers/media/video/tda7432.c | 2
drivers/media/video/tda8290.c | 51 +++++++++---------
drivers/media/video/tda9840.c | 2
drivers/media/video/tda9875.c | 2
drivers/media/video/tda9887.c | 6 +-
drivers/media/video/tea6415c.c | 2
drivers/media/video/tea6420.c | 2
drivers/media/video/tlv320aic23b.c | 2
drivers/media/video/tuner-3036.c | 2
drivers/media/video/tuner-core.c | 5 +
drivers/media/video/tuner-simple.c | 6 +-
drivers/media/video/tvaudio.c | 2
drivers/media/video/tveeprom.c | 10 ++-
drivers/media/video/tvp5150.c | 10 ++-
drivers/media/video/upd64031a.c | 2
drivers/media/video/upd64083.c | 2
drivers/media/video/vpx3220.c | 2
drivers/media/video/w9968cf.c | 6 +-
drivers/media/video/wm8739.c | 2
drivers/media/video/wm8775.c | 2
drivers/rtc/rtc-ds1672.c | 8 +-
drivers/rtc/rtc-isl1208.c | 6 +-
drivers/rtc/rtc-pcf8563.c | 7 +-
drivers/rtc/rtc-pcf8583.c | 12 ++--
drivers/rtc/rtc-rs5c372.c | 4 -
drivers/rtc/rtc-x1205.c | 20 ++++---
drivers/usb/host/ohci-pnx4008.c | 2
drivers/video/matrox/matroxfb_maven.c | 8 +-
drivers/w1/masters/ds2482.c | 2
include/linux/i2c-isa.h | 2
include/linux/i2c.h | 1
include/media/tuner.h | 9 ++-
include/media/v4l2-common.h | 3 -
sound/aoa/codecs/snd-aoa-codec-onyx.c | 2
sound/oss/dmasound/dac3550a.c | 2
sound/oss/dmasound/tas_common.c | 2
sound/ppc/keywest.c | 2
sound/soc/codecs/wm8731.c | 2
sound/soc/codecs/wm8750.c | 2
128 files changed, 306 insertions(+), 249 deletions(-)
Index: at91/include/linux/i2c.h
===================================================================
--- at91.orig/include/linux/i2c.h 2007-03-12 10:54:06.000000000 -0700
+++ at91/include/linux/i2c.h 2007-03-12 11:06:29.000000000 -0700
@@ -167,7 +167,6 @@ struct i2c_client {
/* addresses are stored in the */
/* _LOWER_ 7 bits */
char name[I2C_NAME_SIZE];
- struct i2c_adapter *adapter; /* the adapter we sit on */
int usage_count; /* How many accesses currently */
/* to the client */
struct device dev; /* the device structure */
Index: at91/Documentation/i2c/writing-clients
===================================================================
--- at91.orig/Documentation/i2c/writing-clients 2007-03-12 10:54:06.000000000 -0700
+++ at91/Documentation/i2c/writing-clients 2007-03-12 11:06:29.000000000 -0700
@@ -389,7 +389,7 @@ For now, you can ignore the `flags' para
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &foo_driver.driver;
new_client->flags = 0;
Index: at91/drivers/i2c/i2c-core.c
===================================================================
--- at91.orig/drivers/i2c/i2c-core.c 2007-03-12 10:56:35.000000000 -0700
+++ at91/drivers/i2c/i2c-core.c 2007-03-12 11:09:05.000000000 -0700
@@ -213,7 +213,7 @@ i2c_new_device(struct i2c_adapter *adap,
if (!client)
return NULL;
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->driver_name = info->driver_name;
client->dev.platform_data = info->platform_data;
@@ -243,7 +243,7 @@ EXPORT_SYMBOL_GPL(i2c_new_device);
*/
void i2c_unregister_device(struct i2c_client *client)
{
- struct i2c_adapter *adap = client->adapter;
+ struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent);
struct i2c_driver *driver = to_i2c_driver(client->dev.driver);
int status;
@@ -689,19 +689,22 @@ EXPORT_SYMBOL(i2c_check_addr);
int i2c_attach_client(struct i2c_client *client)
{
- struct i2c_adapter *adapter = client->adapter;
+ struct i2c_adapter *adapter;
int res = 0;
+ if (!client->dev.parent)
+ return -ENOENT;
+
+ adapter = to_i2c_adapter(client->dev.parent);
mutex_lock(&adapter->clist_lock);
- if (__i2c_check_addr(client->adapter, client->addr)) {
+ if (__i2c_check_addr(adapter, client->addr)) {
res = -EBUSY;
goto out_unlock;
}
- list_add_tail(&client->list,&adapter->clients);
+ list_add_tail(&client->list, &adapter->clients);
client->usage_count = 0;
- client->dev.parent = &client->adapter->dev;
client->dev.bus = &i2c_bus_type;
client->dev.release = &i2c_client_release;
@@ -736,7 +739,7 @@ EXPORT_SYMBOL(i2c_attach_client);
int i2c_detach_client(struct i2c_client *client)
{
- struct i2c_adapter *adapter = client->adapter;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
int res = 0;
if (client->usage_count > 0) {
@@ -769,10 +772,11 @@ EXPORT_SYMBOL(i2c_detach_client);
static int i2c_inc_use_client(struct i2c_client *client)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
if (!try_module_get(client->dev.driver->owner))
return -ENODEV;
- if (!try_module_get(client->adapter->owner)) {
+ if (!try_module_get(adapter->owner)) {
module_put(client->dev.driver->owner);
return -ENODEV;
}
@@ -782,8 +786,10 @@ static int i2c_inc_use_client(struct i2c
static void i2c_dec_use_client(struct i2c_client *client)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
module_put(client->dev.driver->owner);
- module_put(client->adapter->owner);
+ module_put(adapter->owner);
}
int i2c_use_client(struct i2c_client *client)
@@ -892,7 +898,7 @@ EXPORT_SYMBOL(i2c_transfer);
int i2c_master_send(struct i2c_client *client,const char *buf ,int count)
{
int ret;
- struct i2c_adapter *adap=client->adapter;
+ struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent);
struct i2c_msg msg;
msg.addr = client->addr;
@@ -910,7 +916,7 @@ EXPORT_SYMBOL(i2c_master_send);
int i2c_master_recv(struct i2c_client *client, char *buf ,int count)
{
- struct i2c_adapter *adap=client->adapter;
+ struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent);
struct i2c_msg msg;
int ret;
@@ -932,9 +938,9 @@ int i2c_control(struct i2c_client *clien
unsigned int cmd, unsigned long arg)
{
int ret = 0;
- struct i2c_adapter *adap = client->adapter;
+ struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent);
- dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
+ dev_dbg(&adap->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
switch (cmd) {
case I2C_RETRIES:
adap->retries = arg;
@@ -1176,7 +1182,9 @@ static int i2c_smbus_check_pec(u8 cpec,
s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
{
- return i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
+ return i2c_smbus_xfer(adapter, client->addr, client->flags,
value,0,I2C_SMBUS_QUICK,NULL);
}
EXPORT_SYMBOL(i2c_smbus_write_quick);
@@ -1184,7 +1192,9 @@ EXPORT_SYMBOL(i2c_smbus_write_quick);
s32 i2c_smbus_read_byte(struct i2c_client *client)
{
union i2c_smbus_data data;
- if (i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
+ if (i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_READ,0,I2C_SMBUS_BYTE, &data))
return -1;
else
@@ -1194,7 +1204,9 @@ EXPORT_SYMBOL(i2c_smbus_read_byte);
s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
{
- return i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
+ return i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, NULL);
}
EXPORT_SYMBOL(i2c_smbus_write_byte);
@@ -1202,7 +1214,9 @@ EXPORT_SYMBOL(i2c_smbus_write_byte);
s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
{
union i2c_smbus_data data;
- if (i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
+ if (i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_READ,command, I2C_SMBUS_BYTE_DATA,&data))
return -1;
else
@@ -1213,8 +1227,10 @@ EXPORT_SYMBOL(i2c_smbus_read_byte_data);
s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
{
union i2c_smbus_data data;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
data.byte = value;
- return i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ return i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_WRITE,command,
I2C_SMBUS_BYTE_DATA,&data);
}
@@ -1223,7 +1239,9 @@ EXPORT_SYMBOL(i2c_smbus_write_byte_data)
s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
{
union i2c_smbus_data data;
- if (i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
+ if (i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_READ,command, I2C_SMBUS_WORD_DATA, &data))
return -1;
else
@@ -1234,8 +1252,10 @@ EXPORT_SYMBOL(i2c_smbus_read_word_data);
s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
{
union i2c_smbus_data data;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+
data.word = value;
- return i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ return i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_WRITE,command,
I2C_SMBUS_WORD_DATA,&data);
}
@@ -1244,13 +1264,14 @@ EXPORT_SYMBOL(i2c_smbus_write_word_data)
s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
u8 length, const u8 *values)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
union i2c_smbus_data data;
if (length > I2C_SMBUS_BLOCK_MAX)
length = I2C_SMBUS_BLOCK_MAX;
data.block[0] = length;
memcpy(&data.block[1], values, length);
- return i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ return i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_WRITE,command,
I2C_SMBUS_BLOCK_DATA,&data);
}
@@ -1259,9 +1280,10 @@ EXPORT_SYMBOL(i2c_smbus_write_block_data
/* Returns the number of read bytes */
s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
union i2c_smbus_data data;
- if (i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ if (i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_READ,command,
I2C_SMBUS_I2C_BLOCK_DATA,&data))
return -1;
@@ -1274,13 +1296,14 @@ EXPORT_SYMBOL(i2c_smbus_read_i2c_block_d
s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, u8 command,
u8 length, const u8 *values)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
union i2c_smbus_data data;
if (length > I2C_SMBUS_BLOCK_MAX)
length = I2C_SMBUS_BLOCK_MAX;
data.block[0] = length;
memcpy(data.block + 1, values, length);
- return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ return i2c_smbus_xfer(adapter, client->addr, client->flags,
I2C_SMBUS_WRITE, command,
I2C_SMBUS_I2C_BLOCK_DATA, &data);
}
Index: at91/include/linux/i2c-isa.h
===================================================================
--- at91.orig/include/linux/i2c-isa.h 2007-03-08 12:13:07.000000000 -0800
+++ at91/include/linux/i2c-isa.h 2007-03-12 11:06:29.000000000 -0700
@@ -31,6 +31,6 @@ extern int i2c_isa_del_driver(struct i2c
#define i2c_is_isa_adapter(adapptr) \
((adapptr)->id == I2C_HW_ISA)
#define i2c_is_isa_client(clientptr) \
- i2c_is_isa_adapter((clientptr)->adapter)
+ i2c_is_isa_adapter(to_i2c_adapter((clientptr)->dev.parent))
#endif /* _LINUX_I2C_ISA_H */
Index: at91/drivers/i2c/i2c-dev.c
===================================================================
--- at91.orig/drivers/i2c/i2c-dev.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/i2c-dev.c 2007-03-12 11:06:29.000000000 -0700
@@ -159,6 +159,7 @@ static int i2cdev_ioctl(struct inode *in
unsigned int cmd, unsigned long arg)
{
struct i2c_client *client = (struct i2c_client *)file->private_data;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
struct i2c_rdwr_ioctl_data rdwr_arg;
struct i2c_smbus_ioctl_data data_arg;
union i2c_smbus_data temp;
@@ -167,7 +168,7 @@ static int i2cdev_ioctl(struct inode *in
int i,datasize,res;
unsigned long funcs;
- dev_dbg(&client->adapter->dev, "ioctl, cmd=0x%02x, arg=0x%02lx\n",
+ dev_dbg(&adapter->dev, "ioctl, cmd=0x%02x, arg=0x%02lx\n",
cmd, arg);
switch ( cmd ) {
@@ -176,7 +177,7 @@ static int i2cdev_ioctl(struct inode *in
if ((arg > 0x3ff) ||
(((client->flags & I2C_M_TEN) == 0) && arg > 0x7f))
return -EINVAL;
- if ((cmd == I2C_SLAVE) && i2c_check_addr(client->adapter,arg))
+ if ((cmd == I2C_SLAVE) && i2c_check_addr(adapter,arg))
return -EBUSY;
client->addr = arg;
return 0;
@@ -193,7 +194,7 @@ static int i2cdev_ioctl(struct inode *in
client->flags &= ~I2C_CLIENT_PEC;
return 0;
case I2C_FUNCS:
- funcs = i2c_get_functionality(client->adapter);
+ funcs = i2c_get_functionality(adapter);
return put_user(funcs, (unsigned long __user *)arg);
case I2C_RDWR:
@@ -255,9 +256,7 @@ static int i2cdev_ioctl(struct inode *in
return res;
}
- res = i2c_transfer(client->adapter,
- rdwr_pa,
- rdwr_arg.nmsgs);
+ res = i2c_transfer(adapter, rdwr_pa, rdwr_arg.nmsgs);
while(i-- > 0) {
if( res>=0 && (rdwr_pa[i].flags & I2C_M_RD)) {
if(copy_to_user(
@@ -286,7 +285,7 @@ static int i2cdev_ioctl(struct inode *in
(data_arg.size != I2C_SMBUS_BLOCK_DATA) &&
(data_arg.size != I2C_SMBUS_I2C_BLOCK_DATA) &&
(data_arg.size != I2C_SMBUS_BLOCK_PROC_CALL)) {
- dev_dbg(&client->adapter->dev,
+ dev_dbg(&adapter->dev,
"size out of range (%x) in ioctl I2C_SMBUS.\n",
data_arg.size);
return -EINVAL;
@@ -295,7 +294,7 @@ static int i2cdev_ioctl(struct inode *in
so the check is valid if size==I2C_SMBUS_QUICK too. */
if ((data_arg.read_write != I2C_SMBUS_READ) &&
(data_arg.read_write != I2C_SMBUS_WRITE)) {
- dev_dbg(&client->adapter->dev,
+ dev_dbg(&adapter->dev,
"read_write out of range (%x) in ioctl I2C_SMBUS.\n",
data_arg.read_write);
return -EINVAL;
@@ -307,14 +306,14 @@ static int i2cdev_ioctl(struct inode *in
((data_arg.size == I2C_SMBUS_BYTE) &&
(data_arg.read_write == I2C_SMBUS_WRITE)))
/* These are special: we do not use data */
- return i2c_smbus_xfer(client->adapter, client->addr,
+ return i2c_smbus_xfer(adapter, client->addr,
client->flags,
data_arg.read_write,
data_arg.command,
data_arg.size, NULL);
if (data_arg.data == NULL) {
- dev_dbg(&client->adapter->dev,
+ dev_dbg(&adapter->dev,
"data is NULL pointer in ioctl I2C_SMBUS.\n");
return -EINVAL;
}
@@ -334,7 +333,7 @@ static int i2cdev_ioctl(struct inode *in
if (copy_from_user(&temp, data_arg.data, datasize))
return -EFAULT;
}
- res = i2c_smbus_xfer(client->adapter,client->addr,client->flags,
+ res = i2c_smbus_xfer(adapter,client->addr,client->flags,
data_arg.read_write,
data_arg.command,data_arg.size,&temp);
if (! res && ((data_arg.size == I2C_SMBUS_PROC_CALL) ||
@@ -375,7 +374,7 @@ static int i2cdev_open(struct inode *ino
client->dev.driver = &i2cdev_driver.driver;
/* registered with adapter, passed as client to user */
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
file->private_data = client;
return 0;
@@ -384,8 +383,9 @@ static int i2cdev_open(struct inode *ino
static int i2cdev_release(struct inode *inode, struct file *file)
{
struct i2c_client *client = file->private_data;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
- i2c_put_adapter(client->adapter);
+ i2c_put_adapter(adapter);
kfree(client);
file->private_data = NULL;
Index: at91/drivers/i2c/chips/tps65010.c
===================================================================
--- at91.orig/drivers/i2c/chips/tps65010.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/tps65010.c 2007-03-12 11:06:29.000000000 -0700
@@ -511,7 +511,7 @@ tps65010_probe(struct i2c_adapter *bus,
INIT_DELAYED_WORK(&tps->work, tps65010_work);
tps->irq = -1;
tps->client.addr = address;
- tps->client.adapter = bus;
+ tps->client.dev.parent = &bus->dev;
tps->client.dev.driver = &tps65010_driver.driver;
strlcpy(tps->client.name, DRIVER_NAME, I2C_NAME_SIZE);
Index: at91/drivers/i2c/chips/ds1337.c
===================================================================
--- at91.orig/drivers/i2c/chips/ds1337.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/ds1337.c 2007-03-12 11:06:29.000000000 -0700
@@ -111,7 +111,7 @@ static int ds1337_get_datetime(struct i2
msg[1].len = sizeof(buf);
msg[1].buf = &buf[0];
- result = i2c_transfer(client->adapter, msg, 2);
+ result = i2c_transfer(to_i2c_adapter(client->dev.parent), msg, 2);
dev_dbg(&client->dev, "%s: [%d] %02x %02x %02x %02x %02x %02x %02x\n",
__FUNCTION__, result, buf[0], buf[1], buf[2], buf[3],
@@ -179,7 +179,7 @@ static int ds1337_set_datetime(struct i2
msg[0].len = sizeof(buf);
msg[0].buf = &buf[0];
- result = i2c_transfer(client->adapter, msg, 1);
+ result = i2c_transfer(to_i2c_adapter(client->dev.parent), msg, 1);
if (result == 1)
return 0;
@@ -216,7 +216,7 @@ int ds1337_do_command(int bus, int cmd,
list_for_each_safe(walk, tmp, &ds1337_clients) {
data = list_entry(walk, struct ds1337_data, list);
- if (data->client.adapter->nr == bus)
+ if (to_i2c_adapter(data->client.dev.parent)->nr == bus)
return ds1337_command(&data->client, cmd, arg);
}
@@ -255,7 +255,7 @@ static int ds1337_detect(struct i2c_adap
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &ds1337_driver.driver;
new_client->flags = 0;
@@ -365,7 +365,7 @@ static void ds1337_init_client(struct i2
msg[0].len = sizeof(buf);
msg[0].buf = &buf[0];
- i2c_transfer(client->adapter, msg, 1);
+ i2c_transfer(to_i2c_adapter(client->dev.parent), msg, 1);
} else {
/* Running: ensure that device is set in 24-hour mode */
s32 val;
Index: at91/drivers/i2c/chips/eeprom.c
===================================================================
--- at91.orig/drivers/i2c/chips/eeprom.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/eeprom.c 2007-03-12 11:06:29.000000000 -0700
@@ -87,7 +87,8 @@ static void eeprom_update_client(struct
time_after(jiffies, data->last_updated[slice] + 300 * HZ)) {
dev_dbg(&client->dev, "Starting eeprom update, slice %u\n", slice);
- if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
+ if (i2c_check_functionality(to_i2c_adapter(client->dev.parent),
+ I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
for (i = slice << 5; i < (slice + 1) << 5; i += I2C_SMBUS_BLOCK_MAX)
if (i2c_smbus_read_i2c_block_data(client, i, data->data + i) != I2C_SMBUS_BLOCK_MAX)
goto exit;
@@ -180,7 +181,7 @@ static int eeprom_detect(struct i2c_adap
memset(data->data, 0xff, EEPROM_SIZE);
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &eeprom_driver.driver;
new_client->flags = 0;
Index: at91/drivers/i2c/chips/pcf8574.c
===================================================================
--- at91.orig/drivers/i2c/chips/pcf8574.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/pcf8574.c 2007-03-12 11:06:29.000000000 -0700
@@ -145,7 +145,7 @@ static int pcf8574_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &pcf8574_driver.driver;
new_client->flags = 0;
Index: at91/drivers/i2c/chips/pca9539.c
===================================================================
--- at91.orig/drivers/i2c/chips/pca9539.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/pca9539.c 2007-03-12 11:06:29.000000000 -0700
@@ -130,7 +130,7 @@ static int pca9539_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &pca9539_driver.driver;
new_client->flags = 0;
Index: at91/drivers/i2c/chips/pcf8591.c
===================================================================
--- at91.orig/drivers/i2c/chips/pcf8591.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/pcf8591.c 2007-03-12 11:06:29.000000000 -0700
@@ -209,7 +209,7 @@ static int pcf8591_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &pcf8591_driver.driver;
new_client->flags = 0;
Index: at91/drivers/i2c/chips/m41t00.c
===================================================================
--- at91.orig/drivers/i2c/chips/m41t00.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/m41t00.c 2007-03-12 11:06:29.000000000 -0700
@@ -304,7 +304,7 @@ m41t00_probe(struct i2c_adapter *adap, i
strlcpy(client->name, m41t00_chip->name, I2C_NAME_SIZE);
client->addr = addr;
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->dev.driver = &m41t00_driver.driver;
if ((rc = i2c_attach_client(client)))
Index: at91/drivers/i2c/chips/ds1374.c
===================================================================
--- at91.orig/drivers/i2c/chips/ds1374.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/ds1374.c 2007-03-12 11:06:29.000000000 -0700
@@ -203,7 +203,7 @@ static int ds1374_probe(struct i2c_adapt
strncpy(client->name, DS1374_DRV_NAME, I2C_NAME_SIZE);
client->addr = addr;
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->dev.driver = &ds1374_driver.driver;
ds1374_workqueue = create_singlethread_workqueue("ds1374");
Index: at91/drivers/i2c/chips/isp1301_omap.c
===================================================================
--- at91.orig/drivers/i2c/chips/isp1301_omap.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/isp1301_omap.c 2007-03-12 11:06:29.000000000 -0700
@@ -1502,7 +1502,7 @@ static int isp1301_probe(struct i2c_adap
isp->irq = -1;
isp->client.addr = address;
i2c_set_clientdata(&isp->client, isp);
- isp->client.adapter = bus;
+ isp->client.dev.parent = &bus->dev;
isp->client.dev.driver = &isp1301_driver.driver;
strlcpy(isp->client.name, DRIVER_NAME, I2C_NAME_SIZE);
i2c = &isp->client;
Index: at91/drivers/i2c/chips/max6875.c
===================================================================
--- at91.orig/drivers/i2c/chips/max6875.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/i2c/chips/max6875.c 2007-03-12 11:06:29.000000000 -0700
@@ -102,7 +102,7 @@ static void max6875_update_slice(struct
goto exit_up;
}
- if (i2c_check_functionality(client->adapter,
+ if (i2c_check_functionality(to_i2c_adapter(client->dev.parent),
I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
if (i2c_smbus_read_i2c_block_data(client,
MAX6875_CMD_BLK_READ,
@@ -192,7 +192,7 @@ static int max6875_detect(struct i2c_ada
real_client = &data->client;
i2c_set_clientdata(real_client, data);
real_client->addr = address;
- real_client->adapter = adapter;
+ real_client->dev.parent = &adapter->dev;
real_client->dev.driver = &max6875_driver.driver;
real_client->flags = 0;
strlcpy(real_client->name, "max6875", I2C_NAME_SIZE);
@@ -201,7 +201,7 @@ static int max6875_detect(struct i2c_ada
/* Init fake client data */
i2c_set_clientdata(fake_client, NULL);
fake_client->addr = address | 1;
- fake_client->adapter = adapter;
+ fake_client->dev.parent = &adapter->dev;
fake_client->dev.driver = &max6875_driver.driver;
fake_client->flags = 0;
strlcpy(fake_client->name, "max6875 subclient", I2C_NAME_SIZE);
Index: at91/drivers/rtc/rtc-pcf8563.c
===================================================================
--- at91.orig/drivers/rtc/rtc-pcf8563.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/rtc/rtc-pcf8563.c 2007-03-12 11:06:29.000000000 -0700
@@ -90,7 +90,7 @@ static int pcf8563_get_datetime(struct i
};
/* read registers */
- if ((i2c_transfer(client->adapter, msgs, 2)) != 2) {
+ if ((i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 2)) != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -214,7 +214,8 @@ static int pcf8563_validate_client(struc
{ client->addr, I2C_M_RD, 1, &buf },
};
- xfer = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
+ xfer = i2c_transfer(to_i2c_adapter(client->dev.parent),
+ msgs, ARRAY_SIZE(msgs));
if (xfer != ARRAY_SIZE(msgs)) {
dev_err(&client->dev,
@@ -294,7 +295,7 @@ static int pcf8563_probe(struct i2c_adap
client = &pcf8563->client;
client->addr = address;
client->dev.driver = &pcf8563_driver.driver;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
strlcpy(client->name, pcf8563_driver.driver.name, I2C_NAME_SIZE);
Index: at91/drivers/rtc/rtc-rs5c372.c
===================================================================
--- at91.orig/drivers/rtc/rtc-rs5c372.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/rtc/rtc-rs5c372.c 2007-03-12 11:06:29.000000000 -0700
@@ -107,7 +107,7 @@ static int rs5c_get_regs(struct rs5c372
* The first method doesn't work with the iop3xx adapter driver, on at
* least 80219 chips; this works around that bug.
*/
- if ((i2c_transfer(client->adapter, msgs, 1)) != 1) {
+ if ((i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 1)) != 1) {
pr_debug("%s: can't read registers\n", rs5c->rtc->name);
return -EIO;
}
@@ -523,7 +523,7 @@ static int rs5c372_probe(struct i2c_adap
/* I2C client */
client->addr = address;
client->dev.driver = &rs5c372_driver.driver;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
strlcpy(client->name, rs5c372_driver.driver.name, I2C_NAME_SIZE);
Index: at91/drivers/rtc/rtc-ds1672.c
===================================================================
--- at91.orig/drivers/rtc/rtc-ds1672.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/rtc/rtc-ds1672.c 2007-03-12 11:06:29.000000000 -0700
@@ -49,7 +49,8 @@ static int ds1672_get_datetime(struct i2
};
/* read date registers */
- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
+ if (i2c_transfer(to_i2c_adapter(client->dev.parent), &msgs[0], 2)
+ != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -132,7 +133,8 @@ static int ds1672_get_control(struct i2c
};
/* read control register */
- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
+ if (i2c_transfer(to_i2c_adapter(client->dev.parent), &msgs[0], 2)
+ != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -214,7 +216,7 @@ static int ds1672_probe(struct i2c_adapt
/* I2C client */
client->addr = address;
client->dev.driver = &ds1672_driver.driver;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
strlcpy(client->name, ds1672_driver.driver.name, I2C_NAME_SIZE);
Index: at91/drivers/rtc/rtc-pcf8583.c
===================================================================
--- at91.orig/drivers/rtc/rtc-pcf8583.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/rtc/rtc-pcf8583.c 2007-03-12 11:06:29.000000000 -0700
@@ -73,7 +73,7 @@ static int pcf8583_get_datetime(struct i
memset(buf, 0, sizeof(buf));
- ret = i2c_transfer(client->adapter, msgs, 2);
+ ret = i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 2);
if (ret == 2) {
dt->tm_year = buf[4] >> 6;
dt->tm_wday = buf[5] >> 5;
@@ -158,7 +158,8 @@ static int pcf8583_read_mem(struct i2c_c
addr[0] = mem->loc;
- return i2c_transfer(client->adapter, msgs, 2) == 2 ? 0 : -EIO;
+ return i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 2) == 2
+ ? 0 : -EIO;
}
static int pcf8583_write_mem(struct i2c_client *client, struct rtc_mem *mem)
@@ -183,7 +184,8 @@ static int pcf8583_write_mem(struct i2c_
addr[0] = mem->loc;
- return i2c_transfer(client->adapter, msgs, 2) == 2 ? 0 : -EIO;
+ return i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 2) == 2
+ ? 0 : -EIO;
}
static int pcf8583_rtc_read_time(struct device *dev, struct rtc_time *tm)
@@ -339,12 +341,12 @@ static int pcf8583_probe(struct i2c_adap
client = &pcf->client;
client->addr = addr;
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->dev.driver = &pcf8583_driver.driver;
strlcpy(client->name, pcf8583_driver.driver.name, I2C_NAME_SIZE);
- if (i2c_transfer(client->adapter, msgs, 2) != 2) {
+ if (i2c_transfer(adap, msgs, 2) != 2) {
err = -EIO;
goto exit_kfree;
}
Index: at91/drivers/rtc/rtc-x1205.c
===================================================================
--- at91.orig/drivers/rtc/rtc-x1205.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/rtc/rtc-x1205.c 2007-03-12 11:06:29.000000000 -0700
@@ -120,7 +120,8 @@ static int x1205_get_datetime(struct i2c
};
/* read date registers */
- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
+ if ((i2c_transfer(to_i2c_adapter(client->dev.parent), &msgs[0], 2))
+ != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -160,7 +161,8 @@ static int x1205_get_status(struct i2c_c
};
/* read status register */
- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
+ if ((i2c_transfer(to_i2c_adapter(client->dev.parent), &msgs[0], 2))
+ != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -270,7 +272,8 @@ static int x1205_get_dtrim(struct i2c_cl
};
/* read dtr register */
- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
+ if ((i2c_transfer(to_i2c_adapter(client->dev.parent), &msgs[0], 2))
+ != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -302,7 +305,8 @@ static int x1205_get_atrim(struct i2c_cl
};
/* read atr register */
- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
+ if ((i2c_transfer(to_i2c_adapter(client->dev.parent), &msgs[0], 2))
+ != 2) {
dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
return -EIO;
}
@@ -371,7 +375,8 @@ static int x1205_validate_client(struct
{ client->addr, I2C_M_RD, 1, &buf },
};
- if ((xfer = i2c_transfer(client->adapter, msgs, 2)) != 2) {
+ if ((xfer = i2c_transfer(to_i2c_adapter(client->dev.parent),
+ msgs, 2)) != 2) {
dev_err(&client->dev,
"%s: could not read register %x\n",
__FUNCTION__, probe_zero_pattern[i]);
@@ -399,7 +404,8 @@ static int x1205_validate_client(struct
{ client->addr, I2C_M_RD, 1, ® },
};
- if ((xfer = i2c_transfer(client->adapter, msgs, 2)) != 2) {
+ if ((xfer = i2c_transfer(to_i2c_adapter(client->dev.parent),
+ msgs, 2)) != 2) {
dev_err(&client->dev,
"%s: could not read register %x\n",
__FUNCTION__, probe_limits_pattern[i].reg);
@@ -521,7 +527,7 @@ static int x1205_probe(struct i2c_adapte
/* I2C client */
client->addr = address;
client->dev.driver = &x1205_driver.driver;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
strlcpy(client->name, x1205_driver.driver.name, I2C_NAME_SIZE);
Index: at91/drivers/rtc/rtc-isl1208.c
===================================================================
--- at91.orig/drivers/rtc/rtc-isl1208.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/rtc/rtc-isl1208.c 2007-03-12 11:06:29.000000000 -0700
@@ -94,7 +94,7 @@ isl1208_i2c_read_regs(struct i2c_client
BUG_ON(reg > ISL1208_REG_USR2);
BUG_ON(reg + len > ISL1208_REG_USR2 + 1);
- ret = i2c_transfer(client->adapter, msgs, 2);
+ ret = i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 2);
if (ret > 0)
ret = 0;
return ret;
@@ -118,7 +118,7 @@ isl1208_i2c_set_regs(struct i2c_client *
i2c_buf[0] = reg;
memcpy(&i2c_buf[1], &buf[0], len);
- ret = i2c_transfer(client->adapter, msgs, 1);
+ ret = i2c_transfer(to_i2c_adapter(client->dev.parent), msgs, 1);
if (ret > 0)
ret = 0;
return ret;
@@ -482,7 +482,7 @@ isl1208_probe(struct i2c_adapter *adapte
}
new_client->addr = addr;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &isl1208_driver.driver;
new_client->flags = 0;
strcpy(new_client->name, DRV_NAME);
Index: at91/drivers/hwmon/asb100.c
===================================================================
--- at91.orig/drivers/hwmon/asb100.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/asb100.c 2007-03-12 11:06:29.000000000 -0700
@@ -706,7 +706,7 @@ static int asb100_detect_subclients(stru
for (i = 0; i <= 1; i++) {
i2c_set_clientdata(data->lm75[i], NULL);
- data->lm75[i]->adapter = adapter;
+ data->lm75[i]->dev.parent = &adapter->dev;
data->lm75[i]->dev.driver = &asb100_driver.driver;
data->lm75[i]->flags = 0;
strlcpy(data->lm75[i]->name, "asb100 subclient", I2C_NAME_SIZE);
@@ -764,7 +764,7 @@ static int asb100_detect(struct i2c_adap
mutex_init(&data->lock);
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &asb100_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/smsc47m192.c
===================================================================
--- at91.orig/drivers/hwmon/smsc47m192.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/smsc47m192.c 2007-03-12 11:06:29.000000000 -0700
@@ -501,7 +501,7 @@ static int smsc47m192_detect(struct i2c_
client = &data->client;
i2c_set_clientdata(client, data);
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &smsc47m192_driver.driver;
if (kind == 0)
Index: at91/drivers/hwmon/adm1025.c
===================================================================
--- at91.orig/drivers/hwmon/adm1025.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/adm1025.c 2007-03-12 11:06:29.000000000 -0700
@@ -383,7 +383,7 @@ static int adm1025_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &adm1025_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/lm85.c
===================================================================
--- at91.orig/drivers/hwmon/lm85.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm85.c 2007-03-12 11:06:29.000000000 -0700
@@ -1131,7 +1131,7 @@ static int lm85_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm85_driver.driver;
new_client->flags = 0;
@@ -1352,6 +1352,7 @@ static void lm85_init_client(struct i2c_
{
int value;
struct lm85_data *data = i2c_get_clientdata(client);
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
dev_dbg(&client->dev, "Initializing device\n");
@@ -1360,18 +1361,18 @@ static void lm85_init_client(struct i2c_
dev_dbg(&client->dev, "LM85_REG_CONFIG is: 0x%02x\n", value);
if( value & 0x02 ) {
dev_err(&client->dev, "Client (%d,0x%02x) config is locked.\n",
- i2c_adapter_id(client->adapter), client->addr );
+ i2c_adapter_id(adapter), client->addr );
};
if( ! (value & 0x04) ) {
dev_err(&client->dev, "Client (%d,0x%02x) is not ready.\n",
- i2c_adapter_id(client->adapter), client->addr );
+ i2c_adapter_id(adapter), client->addr );
};
if( value & 0x10
&& ( data->type == adm1027
|| data->type == adt7463 ) ) {
dev_err(&client->dev, "Client (%d,0x%02x) VxI mode is set. "
"Please report this to the lm85 maintainer.\n",
- i2c_adapter_id(client->adapter), client->addr );
+ i2c_adapter_id(adapter), client->addr );
};
/* WE INTENTIONALLY make no changes to the limits,
Index: at91/drivers/hwmon/adm1031.c
===================================================================
--- at91.orig/drivers/hwmon/adm1031.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/adm1031.c 2007-03-12 11:06:29.000000000 -0700
@@ -804,7 +804,7 @@ static int adm1031_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &adm1031_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83627hf.c
===================================================================
--- at91.orig/drivers/hwmon/w83627hf.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83627hf.c 2007-03-12 11:06:29.000000000 -0700
@@ -1101,7 +1101,7 @@ static int w83627hf_detect(struct i2c_ad
i2c_set_clientdata(new_client, data);
new_client->addr = address;
mutex_init(&data->lock);
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &w83627hf_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/lm75.c
===================================================================
--- at91.orig/drivers/hwmon/lm75.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm75.c 2007-03-12 11:06:29.000000000 -0700
@@ -148,7 +148,7 @@ static int lm75_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm75_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/gl520sm.c
===================================================================
--- at91.orig/drivers/hwmon/gl520sm.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/gl520sm.c 2007-03-12 11:06:29.000000000 -0700
@@ -573,7 +573,7 @@ static int gl520_detect(struct i2c_adapt
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &gl520_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/adm1021.c
===================================================================
--- at91.orig/drivers/hwmon/adm1021.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/adm1021.c 2007-03-12 11:06:29.000000000 -0700
@@ -228,7 +228,7 @@ static int adm1021_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &adm1021_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/ds1621.c
===================================================================
--- at91.orig/drivers/hwmon/ds1621.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/ds1621.c 2007-03-12 11:06:29.000000000 -0700
@@ -224,7 +224,7 @@ static int ds1621_detect(struct i2c_adap
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &ds1621_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/via686a.c
===================================================================
--- at91.orig/drivers/hwmon/via686a.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/via686a.c 2007-03-12 11:06:29.000000000 -0700
@@ -675,7 +675,7 @@ static int via686a_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &via686a_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/adm1026.c
===================================================================
--- at91.orig/drivers/hwmon/adm1026.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/adm1026.c 2007-03-12 11:06:29.000000000 -0700
@@ -1595,7 +1595,7 @@ static int adm1026_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &adm1026_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83627ehf.c
===================================================================
--- at91.orig/drivers/hwmon/w83627ehf.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83627ehf.c 2007-03-12 11:06:29.000000000 -0700
@@ -1209,7 +1209,7 @@ static int w83627ehf_detect(struct i2c_a
i2c_set_clientdata(client, data);
client->addr = address;
mutex_init(&data->lock);
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &w83627ehf_driver.driver;
client->flags = 0;
dev = &client->dev;
Index: at91/drivers/hwmon/lm92.c
===================================================================
--- at91.orig/drivers/hwmon/lm92.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm92.c 2007-03-12 11:06:29.000000000 -0700
@@ -328,7 +328,7 @@ static int lm92_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm92_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/adm9240.c
===================================================================
--- at91.orig/drivers/hwmon/adm9240.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/adm9240.c 2007-03-12 11:06:29.000000000 -0700
@@ -526,7 +526,7 @@ static int adm9240_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &adm9240_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83781d.c
===================================================================
--- at91.orig/drivers/hwmon/w83781d.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83781d.c 2007-03-12 11:06:29.000000000 -0700
@@ -907,7 +907,7 @@ w83781d_detect_subclients(struct i2c_ada
for (i = 0; i <= 1; i++) {
/* store all data in w83781d */
i2c_set_clientdata(data->lm75[i], NULL);
- data->lm75[i]->adapter = adapter;
+ data->lm75[i]->dev.parent = &adapter->dev;
data->lm75[i]->dev.driver = &w83781d_driver.driver;
data->lm75[i]->flags = 0;
strlcpy(data->lm75[i]->name, client_name,
@@ -1080,7 +1080,7 @@ w83781d_detect(struct i2c_adapter *adapt
i2c_set_clientdata(client, data);
client->addr = address;
mutex_init(&data->lock);
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = is_isa
? &w83781d_isa_driver.driver
: &w83781d_driver.driver;
Index: at91/drivers/hwmon/sis5595.c
===================================================================
--- at91.orig/drivers/hwmon/sis5595.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/sis5595.c 2007-03-12 11:06:29.000000000 -0700
@@ -574,7 +574,7 @@ static int sis5595_detect(struct i2c_ada
new_client->addr = address;
mutex_init(&data->lock);
i2c_set_clientdata(new_client, data);
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &sis5595_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83792d.c
===================================================================
--- at91.orig/drivers/hwmon/w83792d.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83792d.c 2007-03-12 11:06:29.000000000 -0700
@@ -881,7 +881,7 @@ w83792d_create_subclient(struct i2c_adap
}
sub_client->addr = 0x48 + addr;
i2c_set_clientdata(sub_client, NULL);
- sub_client->adapter = adapter;
+ sub_client->dev.parent = &adapter->dev;
sub_client->dev.driver = &w83792d_driver.driver;
sub_client->flags = 0;
strlcpy(sub_client->name, "w83792d subclient", I2C_NAME_SIZE);
@@ -1273,7 +1273,7 @@ w83792d_detect(struct i2c_adapter *adapt
dev = &client->dev;
i2c_set_clientdata(client, data);
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &w83792d_driver.driver;
client->flags = 0;
Index: at91/drivers/hwmon/smsc47m1.c
===================================================================
--- at91.orig/drivers/hwmon/smsc47m1.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/smsc47m1.c 2007-03-12 11:06:29.000000000 -0700
@@ -437,7 +437,7 @@ static int smsc47m1_detect(struct i2c_ad
i2c_set_clientdata(new_client, data);
new_client->addr = address;
mutex_init(&data->lock);
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &smsc47m1_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/gl518sm.c
===================================================================
--- at91.orig/drivers/hwmon/gl518sm.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/gl518sm.c 2007-03-12 11:06:29.000000000 -0700
@@ -412,7 +412,7 @@ static int gl518_detect(struct i2c_adapt
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &gl518_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83791d.c
===================================================================
--- at91.orig/drivers/hwmon/w83791d.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83791d.c 2007-03-12 11:06:29.000000000 -0700
@@ -818,7 +818,7 @@ static int w83791d_create_subclient(stru
}
sub_client->addr = 0x48 + addr;
i2c_set_clientdata(sub_client, NULL);
- sub_client->adapter = adapter;
+ sub_client->dev.parent = &adapter->dev;
sub_client->dev.driver = &w83791d_driver.driver;
strlcpy(sub_client->name, "w83791d subclient", I2C_NAME_SIZE);
if ((err = i2c_attach_client(sub_client))) {
@@ -918,7 +918,7 @@ static int w83791d_detect(struct i2c_ada
dev = &client->dev;
i2c_set_clientdata(client, data);
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &w83791d_driver.driver;
mutex_init(&data->update_lock);
Index: at91/drivers/hwmon/lm87.c
===================================================================
--- at91.orig/drivers/hwmon/lm87.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm87.c 2007-03-12 11:06:29.000000000 -0700
@@ -637,7 +637,7 @@ static int lm87_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm87_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83l785ts.c
===================================================================
--- at91.orig/drivers/hwmon/w83l785ts.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83l785ts.c 2007-03-12 11:06:29.000000000 -0700
@@ -167,7 +167,7 @@ static int w83l785ts_detect(struct i2c_a
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &w83l785ts_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/lm77.c
===================================================================
--- at91.orig/drivers/hwmon/lm77.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm77.c 2007-03-12 11:06:29.000000000 -0700
@@ -252,7 +252,7 @@ static int lm77_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm77_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/w83793.c
===================================================================
--- at91.orig/drivers/hwmon/w83793.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/w83793.c 2007-03-12 11:06:29.000000000 -0700
@@ -1125,7 +1125,7 @@ w83793_create_subclient(struct i2c_adapt
}
sub_client->addr = 0x48 + addr;
i2c_set_clientdata(sub_client, NULL);
- sub_client->adapter = adapter;
+ sub_client->dev.parent = &adapter->dev;
sub_client->dev.driver = &w83793_driver.driver;
strlcpy(sub_client->name, "w83793 subclient", I2C_NAME_SIZE);
if ((err = i2c_attach_client(sub_client))) {
@@ -1227,7 +1227,7 @@ static int w83793_detect(struct i2c_adap
dev = &client->dev;
i2c_set_clientdata(client, data);
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &w83793_driver.driver;
data->bank = i2c_smbus_read_byte_data(client, W83793_REG_BANKSEL);
Index: at91/drivers/hwmon/fscpos.c
===================================================================
--- at91.orig/drivers/hwmon/fscpos.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/fscpos.c 2007-03-12 11:06:29.000000000 -0700
@@ -501,7 +501,7 @@ static int fscpos_detect(struct i2c_adap
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &fscpos_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/lm83.c
===================================================================
--- at91.orig/drivers/hwmon/lm83.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm83.c 2007-03-12 11:06:29.000000000 -0700
@@ -312,7 +312,7 @@ static int lm83_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm83_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/max1619.c
===================================================================
--- at91.orig/drivers/hwmon/max1619.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/max1619.c 2007-03-12 11:06:29.000000000 -0700
@@ -225,7 +225,7 @@ static int max1619_detect(struct i2c_ada
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &max1619_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/fscher.c
===================================================================
--- at91.orig/drivers/hwmon/fscher.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/fscher.c 2007-03-12 11:06:29.000000000 -0700
@@ -313,7 +313,7 @@ static int fscher_detect(struct i2c_adap
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &fscher_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/smsc47b397.c
===================================================================
--- at91.orig/drivers/hwmon/smsc47b397.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/smsc47b397.c 2007-03-12 11:06:29.000000000 -0700
@@ -269,7 +269,7 @@ static int smsc47b397_detect(struct i2c_
i2c_set_clientdata(new_client, data);
new_client->addr = address;
mutex_init(&data->lock);
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &smsc47b397_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/pc87360.c
===================================================================
--- at91.orig/drivers/hwmon/pc87360.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/pc87360.c 2007-03-12 11:06:29.000000000 -0700
@@ -930,7 +930,7 @@ static int pc87360_detect(struct i2c_ada
i2c_set_clientdata(client, data);
client->addr = address;
mutex_init(&data->lock);
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &pc87360_driver.driver;
client->flags = 0;
Index: at91/drivers/hwmon/lm78.c
===================================================================
--- at91.orig/drivers/hwmon/lm78.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm78.c 2007-03-12 11:06:29.000000000 -0700
@@ -595,7 +595,7 @@ static int lm78_detect(struct i2c_adapte
mutex_init(&data->lock);
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = is_isa
? &lm78_isa_driver.driver
: &lm78_driver.driver;
Index: at91/drivers/hwmon/lm63.c
===================================================================
--- at91.orig/drivers/hwmon/lm63.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm63.c 2007-03-12 11:06:29.000000000 -0700
@@ -441,7 +441,7 @@ static int lm63_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm63_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/vt8231.c
===================================================================
--- at91.orig/drivers/hwmon/vt8231.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/vt8231.c 2007-03-12 11:06:29.000000000 -0700
@@ -725,7 +725,7 @@ int vt8231_detect(struct i2c_adapter *ad
client = &data->client;
i2c_set_clientdata(client, data);
client->addr = isa_address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &vt8231_driver.driver;
/* Fill in the remaining client fields and put into the global list */
Index: at91/drivers/hwmon/lm90.c
===================================================================
--- at91.orig/drivers/hwmon/lm90.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm90.c 2007-03-12 11:06:29.000000000 -0700
@@ -432,7 +432,7 @@ static DEVICE_ATTR(pec, S_IWUSR | S_IRUG
to explicitely ask for a transaction without PEC. */
static inline s32 adm1032_write_byte(struct i2c_client *client, u8 value)
{
- return i2c_smbus_xfer(client->adapter, client->addr,
+ return i2c_smbus_xfer(to_i2c_adapter(client->dev.parent), client->addr,
client->flags & ~I2C_CLIENT_PEC,
I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, NULL);
}
@@ -493,7 +493,7 @@ static int lm90_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm90_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/atxp1.c
===================================================================
--- at91.orig/drivers/hwmon/atxp1.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/atxp1.c 2007-03-12 11:06:29.000000000 -0700
@@ -289,7 +289,7 @@ static int atxp1_detect(struct i2c_adapt
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &atxp1_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/adm1029.c
===================================================================
--- at91.orig/drivers/hwmon/adm1029.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/adm1029.c 2007-03-12 11:06:29.000000000 -0700
@@ -315,7 +315,7 @@ static int adm1029_detect(struct i2c_ada
client = &data->client;
i2c_set_clientdata(client, data);
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &adm1029_driver.driver;
/* Now we do the detection and identification. A negative kind
Index: at91/drivers/hwmon/lm80.c
===================================================================
--- at91.orig/drivers/hwmon/lm80.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/lm80.c 2007-03-12 11:06:29.000000000 -0700
@@ -458,7 +458,7 @@ static int lm80_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &lm80_driver.driver;
new_client->flags = 0;
Index: at91/drivers/hwmon/it87.c
===================================================================
--- at91.orig/drivers/hwmon/it87.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/hwmon/it87.c 2007-03-12 11:06:29.000000000 -0700
@@ -949,7 +949,7 @@ static int it87_detect(struct i2c_adapte
new_client = &data->client;
i2c_set_clientdata(new_client, data);
new_client->addr = isa_address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &it87_isa_driver.driver;
/* Now, we do the remaining detection. */
Index: at91/drivers/media/video/tlv320aic23b.c
===================================================================
--- at91.orig/drivers/media/video/tlv320aic23b.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tlv320aic23b.c 2007-03-12 11:06:29.000000000 -0700
@@ -142,7 +142,7 @@ static int tlv320aic23b_attach(struct i2
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "tlv320aic23b");
Index: at91/drivers/media/video/saa7127.c
===================================================================
--- at91.orig/drivers/media/video/saa7127.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7127.c 2007-03-12 11:06:29.000000000 -0700
@@ -682,7 +682,7 @@ static int saa7127_attach(struct i2c_ada
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa7127.driver;
snprintf(client->name, sizeof(client->name) - 1, "saa7127");
Index: at91/drivers/media/video/upd64083.c
===================================================================
--- at91.orig/drivers/media/video/upd64083.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/upd64083.c 2007-03-12 11:06:29.000000000 -0700
@@ -183,7 +183,7 @@ static int upd64083_attach(struct i2c_ad
}
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "uPD64083");
Index: at91/drivers/media/video/tea6415c.c
===================================================================
--- at91.orig/drivers/media/video/tea6415c.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tea6415c.c 2007-03-12 11:06:29.000000000 -0700
@@ -71,7 +71,7 @@ static int detect(struct i2c_adapter *ad
/* fill client structure */
memcpy(client, &client_template, sizeof(struct i2c_client));
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
/* tell the i2c layer a new client has arrived */
if (0 != (err = i2c_attach_client(client))) {
Index: at91/drivers/media/video/wm8775.c
===================================================================
--- at91.orig/drivers/media/video/wm8775.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/wm8775.c 2007-03-12 11:06:29.000000000 -0700
@@ -171,7 +171,7 @@ static int wm8775_attach(struct i2c_adap
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "wm8775");
Index: at91/drivers/media/video/ov7670.c
===================================================================
--- at91.orig/drivers/media/video/ov7670.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/ov7670.c 2007-03-12 11:06:29.000000000 -0700
@@ -1224,7 +1224,7 @@ static int ov7670_attach(struct i2c_adap
client = kzalloc(sizeof (struct i2c_client), GFP_KERNEL);
if (! client)
return -ENOMEM;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->addr = OV7670_I2C_ADDR;
client->dev.driver = &ov7670_driver.driver,
strcpy(client->name, "OV7670");
Index: at91/drivers/media/video/tuner-core.c
===================================================================
--- at91.orig/drivers/media/video/tuner-core.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tuner-core.c 2007-03-12 11:06:29.000000000 -0700
@@ -216,7 +216,8 @@ static void set_type(struct i2c_client *
set_freq(c, (V4L2_TUNER_RADIO == t->mode) ? t->radio_freq : t->tv_freq);
tuner_dbg("%s %s I2C addr 0x%02x with type %d used for 0x%02x\n",
- c->adapter->name, c->dev.driver->name, c->addr << 1, type,
+ to_i2c_adapter(c->dev.parent)->name,
+ c->dev.driver->name, c->addr << 1, type,
t->mode_mask);
}
@@ -421,13 +422,13 @@ static int tuner_attach(struct i2c_adapt
{
struct tuner *t;
- client_template.adapter = adap;
client_template.addr = addr;
t = kzalloc(sizeof(struct tuner), GFP_KERNEL);
if (NULL == t)
return -ENOMEM;
memcpy(&t->i2c, &client_template, sizeof(struct i2c_client));
+ t->i2c.dev.parent = &adap->dev;
i2c_set_clientdata(&t->i2c, t);
t->type = UNSET;
t->radio_if2 = 10700 * 1000; /* 10.7MHz - FM radio */
Index: at91/drivers/media/video/tuner-3036.c
===================================================================
--- at91.orig/drivers/media/video/tuner-3036.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tuner-3036.c 2007-03-12 11:06:29.000000000 -0700
@@ -118,13 +118,13 @@ tuner_attach(struct i2c_adapter *adap, i
return -1;
this_adap++;
- client_template.adapter = adap;
client_template.addr = addr;
client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
if (client == NULL)
return -ENOMEM;
memcpy(client, &client_template, sizeof(struct i2c_client));
+ client->dev.parent = &adap->dev;
printk("tuner: SAB3036 found, status %02x\n", tuner_getstatus(client));
Index: at91/drivers/media/video/adv7170.c
===================================================================
--- at91.orig/drivers/media/video/adv7170.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/adv7170.c 2007-03-12 11:06:29.000000000 -0700
@@ -412,7 +412,7 @@ adv7170_detect_client (struct i2c_adapte
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_adv7170.driver;
if ((client->addr == I2C_ADV7170 >> 1) ||
(client->addr == (I2C_ADV7170 >> 1) + 1)) {
Index: at91/drivers/media/video/tea6420.c
===================================================================
--- at91.orig/drivers/media/video/tea6420.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tea6420.c 2007-03-12 11:06:29.000000000 -0700
@@ -108,7 +108,7 @@ static int tea6420_detect(struct i2c_ada
/* fill client structure */
memcpy(client, &client_template, sizeof(struct i2c_client));
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
/* tell the i2c layer a new client has arrived */
if (0 != (err = i2c_attach_client(client))) {
Index: at91/drivers/media/video/saa6588.c
===================================================================
--- at91.orig/drivers/media/video/saa6588.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa6588.c 2007-03-12 11:06:29.000000000 -0700
@@ -392,7 +392,7 @@ static int saa6588_configure(struct saa6
static int saa6588_attach(struct i2c_adapter *adap, int addr, int kind)
{
struct saa6588 *s;
- client_template.adapter = adap;
+
client_template.addr = addr;
printk(PREFIX "chip found @ 0x%x\n", addr << 1);
@@ -407,6 +407,7 @@ static int saa6588_attach(struct i2c_ada
return -ENOMEM;
}
s->client = client_template;
+ s->client.dev.parent = &adap->dev;
s->block_count = 0;
s->wr_index = 0;
s->rd_index = 0;
Index: at91/drivers/media/video/vpx3220.c
===================================================================
--- at91.orig/drivers/media/video/vpx3220.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/vpx3220.c 2007-03-12 11:06:29.000000000 -0700
@@ -627,7 +627,7 @@ vpx3220_detect_client (struct i2c_adapte
}
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &vpx3220_i2c_driver.driver;
/* Check for manufacture ID and part number */
Index: at91/drivers/media/video/tda7432.c
===================================================================
--- at91.orig/drivers/media/video/tda7432.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/tda7432.c 2007-03-12 11:06:29.000000000 -0700
@@ -304,7 +304,7 @@ static int tda7432_attach(struct i2c_ada
client = &t->c;
memcpy(client,&client_template,sizeof(struct i2c_client));
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->addr = addr;
i2c_set_clientdata(client, t);
Index: at91/drivers/media/video/ir-kbd-i2c.c
===================================================================
--- at91.orig/drivers/media/video/ir-kbd-i2c.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/ir-kbd-i2c.c 2007-03-12 11:06:29.000000000 -0700
@@ -316,7 +316,7 @@ static int ir_attach(struct i2c_adapter
ir->c = client_template;
ir->input = input_dev;
- ir->c.adapter = adap;
+ ir->c.dev.parent = &adap->dev;
ir->c.addr = addr;
i2c_set_clientdata(&ir->c, ir);
@@ -473,7 +473,7 @@ static int ir_probe(struct i2c_adapter *
return 0;
memset(&c,0,sizeof(c));
- c.adapter = adap;
+ c->dev.parent = &adap->dev;
for (i = 0; -1 != probe[i]; i++) {
c.addr = probe[i];
rc = i2c_master_recv(&c,&buf,0);
Index: at91/drivers/media/video/cs53l32a.c
===================================================================
--- at91.orig/drivers/media/video/cs53l32a.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/cs53l32a.c 2007-03-12 11:06:29.000000000 -0700
@@ -146,7 +146,7 @@ static int cs53l32a_attach(struct i2c_ad
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "cs53l32a");
Index: at91/drivers/media/video/tveeprom.c
===================================================================
--- at91.orig/drivers/media/video/tveeprom.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tveeprom.c 2007-03-12 11:06:29.000000000 -0700
@@ -53,13 +53,15 @@ MODULE_PARM_DESC(debug, "Debug level (0-
#define STRM(array,i) (i < sizeof(array)/sizeof(char*) ? array[i] : "unknown")
+#define adapter(c) to_i2c_adapter((c)->dev.parent)
+
#define tveeprom_info(fmt, arg...) \
- v4l_printk(KERN_INFO, "tveeprom", c->adapter, c->addr, fmt , ## arg)
+ v4l_printk(KERN_INFO, "tveeprom", adapter(c), c->addr, fmt , ## arg)
#define tveeprom_warn(fmt, arg...) \
- v4l_printk(KERN_WARNING, "tveeprom", c->adapter, c->addr, fmt , ## arg)
+ v4l_printk(KERN_WARNING, "tveeprom", adapter(c), c->addr, fmt , ## arg)
#define tveeprom_dbg(fmt, arg...) do { \
if (debug) \
- v4l_printk(KERN_DEBUG, "tveeprom", c->adapter, c->addr, fmt , ## arg); \
+ v4l_printk(KERN_DEBUG, "tveeprom", adapter(c), c->addr, fmt , ## arg); \
} while (0)
/*
@@ -749,7 +751,7 @@ tveeprom_detect_client(struct i2c_adapte
if (NULL == client)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_tveeprom.driver;
snprintf(client->name, sizeof(client->name), "tveeprom");
i2c_attach_client(client);
Index: at91/drivers/video/matrox/matroxfb_maven.c
===================================================================
--- at91.orig/drivers/video/matrox/matroxfb_maven.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/video/matrox/matroxfb_maven.c 2007-03-12 11:06:29.000000000 -0700
@@ -130,6 +130,7 @@ static int get_ctrl_id(__u32 v4l2_id) {
struct maven_data {
struct matrox_fb_info* primary_head;
struct i2c_client client;
+ struct i2c_adapter *adapter;
int version;
};
@@ -143,7 +144,7 @@ static int maven_get_reg(struct i2c_clie
{ c->addr, I2C_M_RD | I2C_M_NOSTART, sizeof(dst), &dst }};
s32 err;
- err = i2c_transfer(c->adapter, msgs, 2);
+ err = i2c_transfer(to_i2c_adapter(c->dev.parent), msgs, 2);
if (err < 0)
printk(KERN_INFO "ReadReg(%d) failed\n", reg);
return dst & 0xFF;
@@ -1182,7 +1183,7 @@ static struct matrox_altout maven_altout
static int maven_init_client(struct i2c_client* clnt) {
struct maven_data* md = i2c_get_clientdata(clnt);
- MINFO_FROM(container_of(clnt->adapter, struct i2c_bit_adapter, adapter)->minfo);
+ MINFO_FROM(container_of(md->adapter, struct i2c_bit_adapter, adapter)->minfo);
md->primary_head = MINFO;
down_write(&ACCESS_FBINFO(altout.lock));
@@ -1247,9 +1248,10 @@ static int maven_detect_client(struct i2
goto ERROR0;
}
new_client = &data->client;
+ data->adapter = adapter;
i2c_set_clientdata(new_client, data);
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &maven_driver.driver;
new_client->flags = 0;
strlcpy(new_client->name, "maven", I2C_NAME_SIZE);
Index: at91/drivers/media/video/saa711x.c
===================================================================
--- at91.orig/drivers/media/video/saa711x.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa711x.c 2007-03-12 11:06:29.000000000 -0700
@@ -489,7 +489,7 @@ saa711x_detect_client (struct i2c_adapte
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa711x.driver;
strlcpy(I2C_NAME(client), "saa711x", sizeof(I2C_NAME(client)));
decoder = kzalloc(sizeof(struct saa711x), GFP_KERNEL);
Index: at91/drivers/media/video/wm8739.c
===================================================================
--- at91.orig/drivers/media/video/wm8739.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/wm8739.c 2007-03-12 11:06:29.000000000 -0700
@@ -271,7 +271,7 @@ static int wm8739_attach(struct i2c_adap
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "wm8739");
Index: at91/drivers/media/video/saa7114.c
===================================================================
--- at91.orig/drivers/media/video/saa7114.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7114.c 2007-03-12 11:06:29.000000000 -0700
@@ -847,7 +847,7 @@ saa7114_detect_client (struct i2c_adapte
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa7114.driver;
strlcpy(I2C_NAME(client), "saa7114", sizeof(I2C_NAME(client)));
Index: at91/drivers/media/video/msp3400-driver.c
===================================================================
--- at91.orig/drivers/media/video/msp3400-driver.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/msp3400-driver.c 2007-03-12 11:06:29.000000000 -0700
@@ -818,7 +818,7 @@ static int msp_attach(struct i2c_adapter
return -ENOMEM;
memset(client, 0, sizeof(*client));
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "msp3400");
Index: at91/drivers/media/video/tda9875.c
===================================================================
--- at91.orig/drivers/media/video/tda9875.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tda9875.c 2007-03-12 11:06:29.000000000 -0700
@@ -235,7 +235,7 @@ static int tda9875_attach(struct i2c_ada
client = &t->c;
memcpy(client,&client_template,sizeof(struct i2c_client));
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->addr = addr;
i2c_set_clientdata(client, t);
Index: at91/drivers/media/video/bt866.c
===================================================================
--- at91.orig/drivers/media/video/bt866.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/bt866.c 2007-03-12 11:06:29.000000000 -0700
@@ -322,7 +322,7 @@ static int bt866_found_proc(struct i2c_a
}
i2c_set_clientdata(client, encoder);
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->addr = addr;
sprintf(client->name, "%s-%02x", BT866_DEVNAME, adapter->id);
Index: at91/drivers/media/video/cx25840/cx25840-core.c
===================================================================
--- at91.orig/drivers/media/video/cx25840/cx25840-core.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/cx25840/cx25840-core.c 2007-03-12 11:06:29.000000000 -0700
@@ -862,7 +862,7 @@ static int cx25840_detect_client(struct
client = &state->c;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->driver = &i2c_driver_cx25840;
snprintf(client->name, sizeof(client->name) - 1, "cx25840");
Index: at91/drivers/media/video/saa5246a.c
===================================================================
--- at91.orig/drivers/media/video/saa5246a.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa5246a.c 2007-03-12 11:06:29.000000000 -0700
@@ -82,7 +82,7 @@ static int saa5246a_attach(struct i2c_ad
client=kmalloc(sizeof(*client), GFP_KERNEL);
if(client==NULL)
return -ENOMEM;
- client_template.adapter = adap;
+ client->dev.parent = &adap->dev;
client_template.addr = addr;
memcpy(client, &client_template, sizeof(*client));
t = kzalloc(sizeof(*t), GFP_KERNEL);
Index: at91/drivers/media/video/saa7110.c
===================================================================
--- at91.orig/drivers/media/video/saa7110.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7110.c 2007-03-12 11:06:29.000000000 -0700
@@ -491,7 +491,7 @@ saa7110_detect_client (struct i2c_adapte
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa7110.driver;
strlcpy(I2C_NAME(client), "saa7110", sizeof(I2C_NAME(client)));
Index: at91/drivers/media/video/saa7134/saa6752hs.c
===================================================================
--- at91.orig/drivers/media/video/saa7134/saa6752hs.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/saa7134/saa6752hs.c 2007-03-12 11:06:29.000000000 -0700
@@ -698,7 +698,7 @@ static int saa6752hs_attach(struct i2c_a
h->client = client_template;
h->params = param_defaults;
h->old_params = old_param_defaults;
- h->client.adapter = adap;
+ h->client.dev.parent = &adap->dev;
h->client.addr = addr;
/* Assume 625 input lines */
Index: at91/drivers/media/video/bt856.c
===================================================================
--- at91.orig/drivers/media/video/bt856.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/bt856.c 2007-03-12 11:06:29.000000000 -0700
@@ -315,7 +315,7 @@ bt856_detect_client (struct i2c_adapter
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_bt856.driver;
strlcpy(I2C_NAME(client), "bt856", sizeof(I2C_NAME(client)));
Index: at91/drivers/media/video/ovcamchip/ovcamchip_core.c
===================================================================
--- at91.orig/drivers/media/video/ovcamchip/ovcamchip_core.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/ovcamchip/ovcamchip_core.c 2007-03-12 11:06:29.000000000 -0700
@@ -313,7 +313,7 @@ static int ovcamchip_attach(struct i2c_a
goto no_client;
}
memcpy(c, &client_template, sizeof *c);
- c->adapter = adap;
+ c->dev.parent = &adap->dev;
strcpy(c->name, "OV????");
ov = kzalloc(sizeof *ov, GFP_KERNEL);
Index: at91/drivers/media/video/saa7115.c
===================================================================
--- at91.orig/drivers/media/video/saa7115.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7115.c 2007-03-12 11:06:29.000000000 -0700
@@ -1468,7 +1468,7 @@ static int saa711x_attach(struct i2c_ada
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa711x.driver;
snprintf(client->name, sizeof(client->name) - 1, "saa7115");
Index: at91/drivers/media/video/tda9840.c
===================================================================
--- at91.orig/drivers/media/video/tda9840.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tda9840.c 2007-03-12 11:06:29.000000000 -0700
@@ -180,7 +180,7 @@ static int detect(struct i2c_adapter *ad
/* fill client structure */
memcpy(client, &client_template, sizeof(struct i2c_client));
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
/* tell the i2c layer a new client has arrived */
if (0 != (result = i2c_attach_client(client))) {
Index: at91/drivers/media/video/ks0127.c
===================================================================
--- at91.orig/drivers/media/video/ks0127.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/ks0127.c 2007-03-12 11:06:29.000000000 -0700
@@ -784,7 +784,7 @@ static int ks0127_found_proc(struct i2c_
}
i2c_set_clientdata(client, ks);
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->addr = addr;
sprintf(client->name, "ks0127-%02x", adapter->id);
Index: at91/drivers/media/video/tvaudio.c
===================================================================
--- at91.orig/drivers/media/video/tvaudio.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tvaudio.c 2007-03-12 11:06:29.000000000 -0700
@@ -1473,7 +1473,7 @@ static int chip_attach(struct i2c_adapte
if (!chip)
return -ENOMEM;
memcpy(&chip->c,&client_template,sizeof(struct i2c_client));
- chip->c.adapter = adap;
+ chip->c.dev.parent = &adap->dev;
chip->c.addr = addr;
i2c_set_clientdata(&chip->c, chip);
Index: at91/drivers/media/video/tvp5150.c
===================================================================
--- at91.orig/drivers/media/video/tvp5150.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tvp5150.c 2007-03-12 11:06:29.000000000 -0700
@@ -31,18 +31,20 @@ static int debug = 0;
module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "Debug level (0-1)");
+#define adapter_id(c) i2c_adapter_id(to_i2c_adapter(c->dev.parent))
+
#define tvp5150_err(fmt, arg...) do { \
printk(KERN_ERR "%s %d-%04x: " fmt, c->dev.driver->name, \
- i2c_adapter_id(c->adapter), c->addr , ## arg); } while (0)
+ adapter_id(c), c->addr , ## arg); } while (0)
#define tvp5150_info(fmt, arg...) do { \
printk(KERN_INFO "%s %d-%04x: " fmt, c->dev.driver->name, \
- i2c_adapter_id(c->adapter), c->addr , ## arg); } while (0)
+ adapter_id(c), c->addr , ## arg); } while (0)
#define tvp5150_dbg(num, fmt, arg...) \
do { \
if (debug >= num) \
printk(KERN_DEBUG "%s debug %d-%04x: " fmt,\
c->dev.driver->name, \
- i2c_adapter_id(c->adapter), \
+ adapter_id(c), \
c->addr , ## arg); } while (0)
/* supported controls */
@@ -1051,7 +1053,6 @@ static int tvp5150_detect_client(struct
"tvp5150.c: detecting tvp5150 client on address 0x%x\n",
address << 1);
- client_template.adapter = adapter;
client_template.addr = address;
/* Check if the adapter supports the needed features */
@@ -1064,6 +1065,7 @@ static int tvp5150_detect_client(struct
if (c == 0)
return -ENOMEM;
memcpy(c, &client_template, sizeof(struct i2c_client));
+ c->dev.parent = &adapter->dev;
core = kzalloc(sizeof(struct tvp5150), GFP_KERNEL);
if (core == 0) {
Index: at91/drivers/media/video/upd64031a.c
===================================================================
--- at91.orig/drivers/media/video/upd64031a.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/upd64031a.c 2007-03-12 11:06:29.000000000 -0700
@@ -206,7 +206,7 @@ static int upd64031a_attach(struct i2c_a
}
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver.driver;
snprintf(client->name, sizeof(client->name) - 1, "uPD64031A");
Index: at91/drivers/media/video/bt8xx/bt832.c
===================================================================
--- at91.orig/drivers/media/video/bt8xx/bt832.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/bt8xx/bt832.c 2007-03-12 11:06:29.000000000 -0700
@@ -163,12 +163,12 @@ static int bt832_attach(struct i2c_adapt
{
struct bt832 *t;
- client_template.adapter = adap;
client_template.addr = addr;
if (NULL == (t = kzalloc(sizeof(*t), GFP_KERNEL)))
return -ENOMEM;
t->client = client_template;
+ t->client.dev.parent = &adap->dev;
i2c_set_clientdata(&t->client, t);
i2c_attach_client(&t->client);
Index: at91/drivers/media/video/saa7111.c
===================================================================
--- at91.orig/drivers/media/video/saa7111.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7111.c 2007-03-12 11:06:29.000000000 -0700
@@ -513,7 +513,7 @@ saa7111_detect_client (struct i2c_adapte
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa7111.driver;
strlcpy(I2C_NAME(client), "saa7111", sizeof(I2C_NAME(client)));
Index: at91/drivers/media/video/saa5249.c
===================================================================
--- at91.orig/drivers/media/video/saa5249.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa5249.c 2007-03-12 11:06:29.000000000 -0700
@@ -146,9 +146,9 @@ static int saa5249_attach(struct i2c_ada
client=kmalloc(sizeof(*client), GFP_KERNEL);
if(client==NULL)
return -ENOMEM;
- client_template.adapter = adap;
client_template.addr = addr;
memcpy(client, &client_template, sizeof(*client));
+ client->dev.parent = &adap->dev;
t = kzalloc(sizeof(*t), GFP_KERNEL);
if(t==NULL)
{
Index: at91/drivers/media/video/bt819.c
===================================================================
--- at91.orig/drivers/media/video/bt819.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/bt819.c 2007-03-12 11:06:29.000000000 -0700
@@ -527,7 +527,7 @@ bt819_detect_client (struct i2c_adapter
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_bt819.driver;
decoder = kzalloc(sizeof(struct bt819), GFP_KERNEL);
Index: at91/drivers/media/video/indycam.c
===================================================================
--- at91.orig/drivers/media/video/indycam.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/indycam.c 2007-03-12 11:06:29.000000000 -0700
@@ -298,7 +298,7 @@ static int indycam_attach(struct i2c_ada
}
client->addr = addr;
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->dev.driver = &i2c_driver_indycam.driver;
client->flags = 0;
strcpy(client->name, "IndyCam client");
Index: at91/drivers/media/video/saa7185.c
===================================================================
--- at91.orig/drivers/media/video/saa7185.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7185.c 2007-03-12 11:06:29.000000000 -0700
@@ -407,7 +407,7 @@ saa7185_detect_client (struct i2c_adapte
if (client == 0)
return -ENOMEM;
client->addr = address;
- client->adapter = adapter;
+ client->dev.parent = &adapter->dev;
client->dev.driver = &i2c_driver_saa7185.driver;
strlcpy(I2C_NAME(client), "saa7185", sizeof(I2C_NAME(client)));
Index: at91/drivers/media/video/saa7191.c
===================================================================
--- at91.orig/drivers/media/video/saa7191.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/saa7191.c 2007-03-12 11:06:29.000000000 -0700
@@ -580,7 +580,7 @@ static int saa7191_attach(struct i2c_ada
}
client->addr = addr;
- client->adapter = adap;
+ client->dev.parent = &adap->dev;
client->dev.driver = &i2c_driver_saa7191.driver;
client->flags = 0;
strcpy(client->name, "saa7191 client");
Index: at91/arch/arm/mach-pxa/akita-ioexp.c
===================================================================
--- at91.orig/arch/arm/mach-pxa/akita-ioexp.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/arch/arm/mach-pxa/akita-ioexp.c 2007-03-12 11:06:29.000000000 -0700
@@ -88,7 +88,7 @@ static int max7310_detect(struct i2c_ada
if (!(new_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL)))
return -ENOMEM;
- max7310_template.adapter = adapter;
+ max7310_template.dev.parent = &adapter->dev;
max7310_template.addr = address;
memcpy(new_client, &max7310_template, sizeof(struct i2c_client));
Index: at91/drivers/macintosh/windfarm_smu_sat.c
===================================================================
--- at91.orig/drivers/macintosh/windfarm_smu_sat.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/macintosh/windfarm_smu_sat.c 2007-03-12 11:06:29.000000000 -0700
@@ -180,7 +180,7 @@ static int wf_sat_get(struct wf_sensor *
int i, err;
s32 val;
- if (sat->i2c.adapter == NULL)
+ if (sat->i2c.dev.parent == NULL)
return -ENODEV;
down(&sat->mutex);
@@ -214,7 +214,6 @@ static void wf_sat_release(struct wf_sen
if (atomic_dec_and_test(&sat->refcnt)) {
if (sat->i2c.adapter) {
i2c_detach_client(&sat->i2c);
- sat->i2c.adapter = NULL;
}
if (sat->nr >= 0)
sats[sat->nr] = NULL;
@@ -255,7 +254,7 @@ static void wf_sat_create(struct i2c_ada
atomic_set(&sat->refcnt, 0);
init_MUTEX(&sat->mutex);
sat->i2c.addr = (addr >> 1) & 0x7f;
- sat->i2c.adapter = adapter;
+ sat->i2c.dev.parent = &adapter->dev;
sat->i2c.dev.driver = &wf_sat_driver.driver;
strncpy(sat->i2c.name, "smu-sat", I2C_NAME_SIZE-1);
@@ -391,7 +390,6 @@ static int wf_sat_detach(struct i2c_clie
/* XXX TODO */
- sat->i2c.adapter = NULL;
return 0;
}
Index: at91/drivers/macintosh/windfarm_lm75_sensor.c
===================================================================
--- at91.orig/drivers/macintosh/windfarm_lm75_sensor.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/macintosh/windfarm_lm75_sensor.c 2007-03-12 11:06:29.000000000 -0700
@@ -59,7 +59,7 @@ static int wf_lm75_get(struct wf_sensor
struct wf_lm75_sensor *lm = wf_to_lm75(sr);
s32 data;
- if (lm->i2c.adapter == NULL)
+ if (lm->i2c.dev.parent == NULL)
return -ENODEV;
/* Init chip if necessary */
@@ -95,7 +95,6 @@ static void wf_lm75_release(struct wf_se
/* check if client is registered and detach from i2c */
if (lm->i2c.adapter) {
i2c_detach_client(&lm->i2c);
- lm->i2c.adapter = NULL;
}
kfree(lm);
@@ -135,7 +134,7 @@ static struct wf_lm75_sensor *wf_lm75_cr
lm->sens.ops = &wf_lm75_ops;
lm->ds1775 = ds1775;
lm->i2c.addr = (addr >> 1) & 0x7f;
- lm->i2c.adapter = adapter;
+ lm->i2c.dev.parent = &adapter->dev;
lm->i2c.dev.driver = &wf_lm75_driver.driver;
strncpy(lm->i2c.name, lm->sens.name, I2C_NAME_SIZE-1);
@@ -203,9 +202,6 @@ static int wf_lm75_detach(struct i2c_cli
DBG("wf_lm75: i2c detatch called for %s\n", lm->sens.name);
- /* Mark client detached */
- lm->i2c.adapter = NULL;
-
/* release sensor */
wf_unregister_sensor(&lm->sens);
Index: at91/drivers/macintosh/windfarm_max6690_sensor.c
===================================================================
--- at91.orig/drivers/macintosh/windfarm_max6690_sensor.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/macintosh/windfarm_max6690_sensor.c 2007-03-12 11:06:29.000000000 -0700
@@ -49,7 +49,7 @@ static int wf_max6690_get(struct wf_sens
struct wf_6690_sensor *max = wf_to_6690(sr);
s32 data;
- if (max->i2c.adapter == NULL)
+ if (max->i2c.dev.parent == NULL)
return -ENODEV;
/* chip gets initialized by firmware */
@@ -66,7 +66,6 @@ static void wf_max6690_release(struct wf
if (max->i2c.adapter) {
i2c_detach_client(&max->i2c);
- max->i2c.adapter = NULL;
}
kfree(max);
}
@@ -92,7 +91,7 @@ static void wf_max6690_create(struct i2c
max->sens.ops = &wf_max6690_ops;
max->sens.name = name;
max->i2c.addr = addr >> 1;
- max->i2c.adapter = adapter;
+ max->i2c.dev.parent = &adapter->dev;
max->i2c.dev.driver = &wf_max6690_driver.driver;
strncpy(max->i2c.name, name, I2C_NAME_SIZE-1);
@@ -150,7 +149,6 @@ static int wf_max6690_detach(struct i2c_
{
struct wf_6690_sensor *max = i2c_to_6690(client);
- max->i2c.adapter = NULL;
wf_unregister_sensor(&max->sens);
return 0;
Index: at91/drivers/macintosh/therm_windtunnel.c
===================================================================
--- at91.orig/drivers/macintosh/therm_windtunnel.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/macintosh/therm_windtunnel.c 2007-03-12 11:06:29.000000000 -0700
@@ -436,7 +436,7 @@ do_probe( struct i2c_adapter *adapter, i
memset( cl, 0, sizeof(struct i2c_client) );
cl->addr = addr;
- cl->adapter = adapter;
+ cl->dev.parent = &adapter->dev;
cl->dev.driver = &g4fan_driver.driver;
cl->flags = 0;
Index: at91/drivers/macintosh/therm_adt746x.c
===================================================================
--- at91.orig/drivers/macintosh/therm_adt746x.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/macintosh/therm_adt746x.c 2007-03-12 11:06:29.000000000 -0700
@@ -387,7 +387,7 @@ static int attach_one_thermostat(struct
memset(th, 0, sizeof(*th));
th->clt.addr = addr;
- th->clt.adapter = adapter;
+ th->clt.dev.parent = &adapter->dev;
th->clt.dev.driver = &thermostat_driver.driver;
strcpy(th->clt.name, "thermostat");
Index: at91/drivers/macintosh/therm_pm72.c
===================================================================
--- at91.orig/drivers/macintosh/therm_pm72.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/macintosh/therm_pm72.c 2007-03-12 11:06:29.000000000 -0700
@@ -325,7 +325,7 @@ static struct i2c_client *attach_i2c_chi
memset(clt, 0, sizeof(struct i2c_client));
clt->addr = (id >> 1) & 0x7f;
- clt->adapter = adap;
+ clt->dev.parent = &adap->dev;
clt->dev.driver = &therm_pm72_driver.driver;
strncpy(clt->name, name, I2C_NAME_SIZE-1);
Index: at91/sound/soc/codecs/wm8750.c
===================================================================
--- at91.orig/sound/soc/codecs/wm8750.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/sound/soc/codecs/wm8750.c 2007-03-12 11:06:29.000000000 -0700
@@ -892,7 +892,6 @@ static int wm8750_codec_probe(struct i2c
if (addr != setup->i2c_address)
return -ENODEV;
- client_template.adapter = adap;
client_template.addr = addr;
i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
@@ -900,6 +899,7 @@ static int wm8750_codec_probe(struct i2c
kfree(codec);
return -ENOMEM;
}
+ i2c->dev.parent = &adap->dev;
i2c_set_clientdata(i2c, codec);
codec->control_data = i2c;
Index: at91/sound/oss/dmasound/tas_common.c
===================================================================
--- at91.orig/sound/oss/dmasound/tas_common.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/sound/oss/dmasound/tas_common.c 2007-03-12 11:06:29.000000000 -0700
@@ -140,7 +140,7 @@ tas_detect_client(struct i2c_adapter *ad
return -ENOMEM;
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &tas_driver.driver;
strlcpy(new_client->name, client_name, DEVICE_NAME_SIZE);
Index: at91/drivers/w1/masters/ds2482.c
===================================================================
--- at91.orig/drivers/w1/masters/ds2482.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/w1/masters/ds2482.c 2007-03-12 11:06:29.000000000 -0700
@@ -450,7 +450,7 @@ static int ds2482_detect(struct i2c_adap
i2c_set_clientdata(new_client, data);
new_client->addr = address;
new_client->dev.driver = &ds2482_driver.driver;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
/* Reset the device (sets the read_ptr to status) */
if (ds2482_send_cmd(data, DS2482_CMD_RESET) < 0) {
Index: at91/sound/oss/dmasound/dac3550a.c
===================================================================
--- at91.orig/sound/oss/dmasound/dac3550a.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/sound/oss/dmasound/dac3550a.c 2007-03-12 11:06:29.000000000 -0700
@@ -168,7 +168,7 @@ static int daca_detect_client(struct i2c
return -ENOMEM;
new_client->addr = address;
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &daca_driver.driver;
new_client->flags = 0;
strcpy(new_client->name, client_name);
Index: at91/drivers/usb/host/ohci-pnx4008.c
===================================================================
--- at91.orig/drivers/usb/host/ohci-pnx4008.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/usb/host/ohci-pnx4008.c 2007-03-12 11:06:29.000000000 -0700
@@ -142,7 +142,7 @@ static int isp1301_attach(struct i2c_ada
strcpy(c->name, "isp1301");
c->flags = 0;
c->addr = addr;
- c->adapter = adap;
+ c->dev.parent = &adap->dev;
c->dev.driver = &isp1301_driver.driver;
isp1301_i2c_client = c;
Index: at91/sound/soc/codecs/wm8731.c
===================================================================
--- at91.orig/sound/soc/codecs/wm8731.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/sound/soc/codecs/wm8731.c 2007-03-12 11:06:29.000000000 -0700
@@ -620,7 +620,6 @@ static int wm8731_codec_probe(struct i2c
if (addr != setup->i2c_address)
return -ENODEV;
- client_template.adapter = adap;
client_template.addr = addr;
i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
@@ -628,6 +627,7 @@ static int wm8731_codec_probe(struct i2c
kfree(codec);
return -ENOMEM;
}
+ i2c->dev.parent = &adap->dev;
i2c_set_clientdata(i2c, codec);
codec->control_data = i2c;
Index: at91/sound/aoa/codecs/snd-aoa-codec-onyx.c
===================================================================
--- at91.orig/sound/aoa/codecs/snd-aoa-codec-onyx.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/sound/aoa/codecs/snd-aoa-codec-onyx.c 2007-03-12 11:06:29.000000000 -0700
@@ -1016,7 +1016,7 @@ static int onyx_create(struct i2c_adapte
mutex_init(&onyx->mutex);
onyx->i2c.dev.driver = &onyx_driver.driver;
- onyx->i2c.adapter = adapter;
+ onyx->i2c.dev.parent = &adapter->dev;
onyx->i2c.addr = addr & 0x7f;
strlcpy(onyx->i2c.name, "onyx audio codec", I2C_NAME_SIZE-1);
Index: at91/sound/ppc/keywest.c
===================================================================
--- at91.orig/sound/ppc/keywest.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/sound/ppc/keywest.c 2007-03-12 11:06:29.000000000 -0700
@@ -70,7 +70,7 @@ static int keywest_attach_adapter(struct
new_client->addr = keywest_ctx->addr;
i2c_set_clientdata(new_client, keywest_ctx);
- new_client->adapter = adapter;
+ new_client->dev.parent = &adapter->dev;
new_client->dev.driver = &keywest_driver.driver;
new_client->flags = 0;
Index: at91/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
===================================================================
--- at91.orig/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c 2007-03-12 11:06:29.000000000 -0700
@@ -901,7 +901,8 @@ unsigned int pvr2_i2c_report(struct pvr2
static int pvr2_i2c_attach_inform(struct i2c_client *client)
{
- struct pvr2_hdw *hdw = (struct pvr2_hdw *)(client->adapter->algo_data);
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+ struct pvr2_hdw *hdw = (struct pvr2_hdw *)(adapter->algo_data);
struct pvr2_i2c_client *cp;
int fl = !(hdw->i2c_pend_types & PVR2_I2C_PEND_ALL);
cp = kzalloc(sizeof(*cp),GFP_KERNEL);
@@ -922,7 +923,8 @@ static int pvr2_i2c_attach_inform(struct
static int pvr2_i2c_detach_inform(struct i2c_client *client)
{
- struct pvr2_hdw *hdw = (struct pvr2_hdw *)(client->adapter->algo_data);
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+ struct pvr2_hdw *hdw = (struct pvr2_hdw *)(adapter->algo_data);
struct pvr2_i2c_client *cp;
struct list_head *item,*nc;
unsigned long amask = 0;
Index: at91/include/media/tuner.h
===================================================================
--- at91.orig/include/media/tuner.h 2007-03-12 10:54:06.000000000 -0700
+++ at91/include/media/tuner.h 2007-03-12 11:06:29.000000000 -0700
@@ -235,15 +235,18 @@ extern int tda9887_tuner_init(struct i2c
#define tuner_warn(fmt, arg...) do {\
printk(KERN_WARNING "%s %d-%04x: " fmt, t->i2c.dev.driver->name, \
- i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
+ i2c_adapter_id(to_i2c_adapter(t->i2c.dev.parent)), \
+ t->i2c.addr , ##arg); } while (0)
#define tuner_info(fmt, arg...) do {\
printk(KERN_INFO "%s %d-%04x: " fmt, t->i2c.dev.driver->name, \
- i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
+ i2c_adapter_id(to_i2c_adapter(t->i2c.dev.parent)), \
+ t->i2c.addr , ##arg); } while (0)
#define tuner_dbg(fmt, arg...) do {\
extern int tuner_debug; \
if (tuner_debug) \
printk(KERN_DEBUG "%s %d-%04x: " fmt, t->i2c.dev.driver->name, \
- i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
+ i2c_adapter_id(to_i2c_adapter(t->i2c.dev.parent)), \
+ t->i2c.addr , ##arg); } while (0)
#endif /* __KERNEL__ */
Index: at91/drivers/media/video/em28xx/em28xx-i2c.c
===================================================================
--- at91.orig/drivers/media/video/em28xx/em28xx-i2c.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/em28xx/em28xx-i2c.c 2007-03-12 11:06:29.000000000 -0700
@@ -402,7 +402,8 @@ static u32 functionality(struct i2c_adap
static int em28xx_set_tuner(int check_eeprom, struct i2c_client *client)
{
- struct em28xx *dev = client->adapter->algo_data;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+ struct em28xx *dev = adapter->algo_data;
struct tuner_setup tun_setup;
if (dev->has_tuner) {
@@ -422,7 +423,8 @@ static int em28xx_set_tuner(int check_ee
*/
static int attach_inform(struct i2c_client *client)
{
- struct em28xx *dev = client->adapter->algo_data;
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+ struct em28xx *dev = adapter->algo_data;
switch (client->addr << 1) {
case 0x43:
@@ -558,7 +560,7 @@ int em28xx_i2c_register(struct em28xx *d
i2c_add_adapter(&dev->i2c_adap);
dev->i2c_client = em28xx_client_template;
- dev->i2c_client.adapter = &dev->i2c_adap;
+ dev->i2c_client.dev.parent = &dev->i2c_adap.dev;
em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata));
Index: at91/include/media/v4l2-common.h
===================================================================
--- at91.orig/include/media/v4l2-common.h 2007-03-12 10:54:06.000000000 -0700
+++ at91/include/media/v4l2-common.h 2007-03-12 11:06:29.000000000 -0700
@@ -41,7 +41,8 @@
printk(level "%s %d-%04x: " fmt, name, i2c_adapter_id(adapter), addr , ## arg)
#define v4l_client_printk(level, client, fmt, arg...) \
- v4l_printk(level, (client)->dev.driver->name, (client)->adapter, \
+ v4l_printk(level, (client)->dev.driver->name, \
+ to_i2c_adapter((client)->dev.parent), \
(client)->addr, fmt , ## arg)
#define v4l_err(client, fmt, arg...) \
Index: at91/drivers/media/video/pvrusb2/pvrusb2-eeprom.c
===================================================================
--- at91.orig/drivers/media/video/pvrusb2/pvrusb2-eeprom.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/pvrusb2/pvrusb2-eeprom.c 2007-03-12 11:06:29.000000000 -0700
@@ -129,7 +129,7 @@ int pvr2_eeprom_analyze(struct pvr2_hdw
struct i2c_client fake_client;
/* Newer version expects a useless client interface */
fake_client.addr = hdw->eeprom_addr;
- fake_client.adapter = &hdw->i2c_adap;
+ fake_client.dev.parent = &hdw->i2c_adap.dev;
tveeprom_hauppauge_analog(&fake_client,&tvdata,eeprom);
}
Index: at91/drivers/media/video/ovcamchip/ov6x20.c
===================================================================
--- at91.orig/drivers/media/video/ovcamchip/ov6x20.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/ovcamchip/ov6x20.c 2007-03-12 11:06:29.000000000 -0700
@@ -157,13 +157,14 @@ static struct ovcamchip_regvals regvals_
/* This initializes the OV6x20 camera chip and relevant variables. */
static int ov6x20_init(struct i2c_client *c)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(c->dev.parent);
struct ovcamchip *ov = i2c_get_clientdata(c);
struct ov6x20 *s;
int rc;
DDEBUG(4, &c->dev, "entered");
- switch (c->adapter->id) {
+ switch (adapter->id) {
case I2C_HW_SMBUS_OV511:
rc = ov_write_regvals(c, regvals_init_6x20_511);
break;
@@ -330,6 +331,8 @@ static int ov6x20_get_control(struct i2c
static int ov6x20_mode_init(struct i2c_client *c, struct ovcamchip_window *win)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(c->dev.parent);
+
/******** QCIF-specific regs ********/
ov_write(c, 0x14, win->quarter?0x24:0x04);
@@ -337,7 +340,7 @@ static int ov6x20_mode_init(struct i2c_c
/******** Palette-specific regs ********/
/* OV518 needs 8 bit multiplexed in color mode, and 16 bit in B&W */
- if (c->adapter->id == I2C_HW_SMBUS_OV518) {
+ if (adapter->id == I2C_HW_SMBUS_OV518) {
if (win->format == VIDEO_PALETTE_GREY)
ov_write_mask(c, 0x13, 0x00, 0x20);
else
Index: at91/drivers/media/video/w9968cf.c
===================================================================
--- at91.orig/drivers/media/video/w9968cf.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/w9968cf.c 2007-03-12 11:06:29.000000000 -0700
@@ -1508,7 +1508,8 @@ static u32 w9968cf_i2c_func(struct i2c_a
static int w9968cf_i2c_attach_inform(struct i2c_client* client)
{
- struct w9968cf_device* cam = i2c_get_adapdata(client->adapter);
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+ struct w9968cf_device* cam = i2c_get_adapdata(adapter);
struct i2c_driver *driver = to_i2c_driver(client->dev.driver);
int id = driver->id, err = 0;
@@ -1534,7 +1535,8 @@ static int w9968cf_i2c_attach_inform(str
static int w9968cf_i2c_detach_inform(struct i2c_client* client)
{
- struct w9968cf_device* cam = i2c_get_adapdata(client->adapter);
+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
+ struct w9968cf_device* cam = i2c_get_adapdata(adapter);
if (cam->sensor_client == client)
cam->sensor_client = NULL;
Index: at91/drivers/media/video/tda9887.c
===================================================================
--- at91.orig/drivers/media/video/tda9887.c 2007-03-12 10:54:06.000000000 -0700
+++ at91/drivers/media/video/tda9887.c 2007-03-12 11:06:29.000000000 -0700
@@ -21,13 +21,15 @@
Used as part of several tuners
*/
+#define adapter(c) to_i2c_adapter((c)->dev.parent)
+
#define tda9887_info(fmt, arg...) do {\
printk(KERN_INFO "%s %d-%04x: " fmt, t->i2c.name, \
- i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
+ i2c_adapter_id(adapter(&t->i2c)), t->i2c.addr , ##arg); } while (0)
#define tda9887_dbg(fmt, arg...) do {\
if (tuner_debug) \
printk(KERN_INFO "%s %d-%04x: " fmt, t->i2c.name, \
- i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
+ i2c_adapter_id(adapter(&t->i2c)), t->i2c.addr , ##arg); } while (0)
/* ---------------------------------------------------------------------- */
Index: at91/drivers/media/video/tuner-simple.c
===================================================================
--- at91.orig/drivers/media/video/tuner-simple.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/tuner-simple.c 2007-03-12 11:06:29.000000000 -0700
@@ -334,7 +334,8 @@ static void default_set_tv_freq(struct i
}
if (params->default_pll_gating_18)
config |= TDA9887_GATING_18;
- i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
+ i2c_clients_command(to_i2c_adapter(c->dev.parent),
+ TDA9887_SET_CONFIG, &config);
}
tuner_dbg("tv 0x%02x 0x%02x 0x%02x 0x%02x\n",
buffer[0],buffer[1],buffer[2],buffer[3]);
@@ -469,7 +470,8 @@ static void default_set_radio_freq(struc
config &= ~TDA9887_PORT1_ACTIVE;*/
if (params->fm_gain_normal)
config |= TDA9887_GAIN_NORMAL;
- i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
+ i2c_clients_command(to_i2c_adapter(c->dev.parent),
+ TDA9887_SET_CONFIG, &config);
}
if (4 != (rc = i2c_master_send(c,buffer,4)))
tuner_warn("i2c i/o error: rc == %d (should be 4)\n",rc);
Index: at91/drivers/media/video/ovcamchip/ov6x30.c
===================================================================
--- at91.orig/drivers/media/video/ovcamchip/ov6x30.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/ovcamchip/ov6x30.c 2007-03-12 11:06:29.000000000 -0700
@@ -293,6 +293,8 @@ static int ov6x30_get_control(struct i2c
static int ov6x30_mode_init(struct i2c_client *c, struct ovcamchip_window *win)
{
+ struct i2c_adapter *adapter = to_i2c_adapter(c->dev.parent);
+
/******** QCIF-specific regs ********/
ov_write_mask(c, 0x14, win->quarter?0x20:0x00, 0x20);
@@ -300,7 +302,7 @@ static int ov6x30_mode_init(struct i2c_c
/******** Palette-specific regs ********/
if (win->format == VIDEO_PALETTE_GREY) {
- if (c->adapter->id == I2C_HW_SMBUS_OV518) {
+ if (adapter->id == I2C_HW_SMBUS_OV518) {
/* Do nothing - we're already in 8-bit mode */
} else {
ov_write_mask(c, 0x13, 0x20, 0x20);
@@ -312,7 +314,7 @@ static int ov6x30_mode_init(struct i2c_c
* Therefore, the OV6630 needs to be in 8-bit multiplexed
* output mode */
- if (c->adapter->id == I2C_HW_SMBUS_OV518) {
+ if (adapter->id == I2C_HW_SMBUS_OV518) {
/* Do nothing - we want to stay in 8-bit mode */
/* Warning: Messing with reg 0x13 breaks OV518 color */
} else {
Index: at91/drivers/media/video/tda8290.c
===================================================================
--- at91.orig/drivers/media/video/tda8290.c 2007-03-08 12:13:07.000000000 -0800
+++ at91/drivers/media/video/tda8290.c 2007-03-12 11:06:29.000000000 -0700
@@ -77,6 +77,7 @@ static void tda827x_tune(struct i2c_clie
int i;
struct tuner *t = i2c_get_clientdata(c);
struct i2c_msg msg = {.addr = t->tda827x_addr, .flags = 0};
+ struct i2c_adapter *adapter = to_i2c_adapter(c->dev.parent);
if (t->mode == V4L2_TUNER_RADIO)
freq = freq / 1000;
@@ -103,44 +104,44 @@ static void tda827x_tune(struct i2c_clie
msg.buf = tuner_reg;
msg.len = 8;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msg.buf= reg2;
msg.len = 2;
reg2[0] = 0x80;
reg2[1] = 0;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0x60;
reg2[1] = 0xbf;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0x30;
reg2[1] = tuner_reg[4] + 0x80;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msleep(1);
reg2[0] = 0x30;
reg2[1] = tuner_reg[4] + 4;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msleep(1);
reg2[0] = 0x30;
reg2[1] = tuner_reg[4];
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msleep(550);
reg2[0] = 0x30;
reg2[1] = (tuner_reg[4] & 0xfc) + tda827x_analog[i].cp ;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0x60;
reg2[1] = 0x3f;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0x80;
reg2[1] = 0x08; // Vsync en
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
}
static void tda827x_agcf(struct i2c_client *c)
@@ -149,7 +150,7 @@ static void tda827x_agcf(struct i2c_clie
unsigned char data[] = {0x80, 0x0c};
struct i2c_msg msg = {.addr = t->tda827x_addr, .buf = data,
.flags = 0, .len = 2};
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(to_i2c_adapter(c->dev.parent), &msg, 1);
}
/* ---------------------------------------------------------------------- */
@@ -200,6 +201,7 @@ static void tda827xa_tune(struct i2c_cli
int i;
struct tuner *t = i2c_get_clientdata(c);
struct i2c_msg msg = {.addr = t->tda827x_addr, .flags = 0};
+ struct i2c_adapter *adapter = to_i2c_adapter(c->dev.parent);
if (t->mode == V4L2_TUNER_RADIO)
freq = freq / 1000;
@@ -232,39 +234,39 @@ static void tda827xa_tune(struct i2c_cli
msg.buf = tuner_reg;
msg.len = 14;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msg.buf= reg2;
msg.len = 2;
reg2[0] = 0x60;
reg2[1] = 0x3c;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0xa0;
reg2[1] = 0xc0;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msleep(2);
reg2[0] = 0x30;
reg2[1] = 0x10 + tda827xa_analog[i].scr;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
msleep(550);
reg2[0] = 0x50;
reg2[1] = 0x8f + (tda827xa_analog[i].gc3 << 4);
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0x80;
reg2[1] = 0x28;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0xb0;
reg2[1] = 0x01;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
reg2[0] = 0xc0;
reg2[1] = 0x19 + (t->tda827x_lpsel << 1);
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(adapter, &msg, 1);
}
static void tda827xa_agcf(struct i2c_client *c)
@@ -273,7 +275,7 @@ static void tda827xa_agcf(struct i2c_cli
unsigned char data[] = {0x80, 0x2c};
struct i2c_msg msg = {.addr = t->tda827x_addr, .buf = data,
.flags = 0, .len = 2};
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(to_i2c_adapter(c->dev.parent), &msg, 1);
}
/*---------------------------------------------------------------------*/
@@ -478,7 +480,7 @@ static void standby(struct i2c_client *c
tda8290_i2c_bridge(c, 1);
if (t->tda827x_ver != 0)
cb1[1] = 0x90;
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(to_i2c_adapter(c->dev.parent), &msg, 1);
tda8290_i2c_bridge(c, 0);
i2c_master_send(c, tda8290_agc_tri, 2);
i2c_master_send(c, tda8290_standby, 2);
@@ -507,7 +509,7 @@ static void tda8290_init_tuner(struct i2
msg.buf = tda8275a_init;
tda8290_i2c_bridge(c, 1);
- i2c_transfer(c->adapter, &msg, 1);
+ i2c_transfer(to_i2c_adapter(c->dev.parent), &msg, 1);
tda8290_i2c_bridge(c, 0);
}
@@ -527,7 +529,7 @@ int tda8290_init(struct i2c_client *c)
tuner_addrs = 0;
for (i=0x60; i<= 0x63; i++) {
msg.addr = i;
- ret = i2c_transfer(c->adapter, &msg, 1);
+ ret = i2c_transfer(to_i2c_adapter(c->dev.parent), &msg, 1);
if (ret == 1) {
tuners_found++;
tuner_addrs = (tuner_addrs << 8) + i;
@@ -541,7 +543,8 @@ int tda8290_init(struct i2c_client *c)
if(tuners_found > 1)
for (i = 0; i < tuners_found; i++) {
msg.addr = tuner_addrs & 0xff;
- ret = i2c_transfer(c->adapter, &msg, 1);
+ ret = i2c_transfer(to_i2c_adapter(c->dev.parent),
+ &msg, 1);
if(ret == 1)
tuner_addrs = tuner_addrs >> 8;
else
@@ -559,7 +562,7 @@ int tda8290_init(struct i2c_client *c)
msg.addr = tuner_addrs;
tda8290_i2c_bridge(c, 1);
- ret = i2c_transfer(c->adapter, &msg, 1);
+ ret = i2c_transfer(to_i2c_adapter(c->dev.parent), &msg, 1);
if( ret != 1)
tuner_warn ("TDA827x access failed!\n");
if ((data & 0x3c) == 0) {
More information about the i2c
mailing list