summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-02-05 09:43:02 -0200
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-02-05 09:43:02 -0200
commit82f5d43d8ee488c6e20a99d71b2e666a72e9e8f9 (patch)
treec0fb5adbaab93803f25eb4a86ef0b0ee8eac5e3d /linux
parent2806626f1cd30e7ba3109dfdd19d9999e75e62af (diff)
downloadmediapointer-dvb-s2-82f5d43d8ee488c6e20a99d71b2e666a72e9e8f9.tar.gz
mediapointer-dvb-s2-82f5d43d8ee488c6e20a99d71b2e666a72e9e8f9.tar.bz2
backport Kernel commit 961f80f9c0c0f7c45d7818f9c9969dfaa9e4463d
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original Changelog: Author: Jean Delvare <khali@linux-fr.org> Date: Sun Jan 27 18:14:51 2008 +0100 i2c: Drivers stop using the redundant client list The redundant i2c client list maintained by i2c-core is going away soon, so drivers should stop using it now. Instead, they can use the standard iterator provided by the device driver model (device_for_each_child). Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/video/dpc7146.c19
-rw-r--r--linux/drivers/media/video/mxb.c40
2 files changed, 40 insertions, 19 deletions
diff --git a/linux/drivers/media/video/dpc7146.c b/linux/drivers/media/video/dpc7146.c
index 9ac8e8682..258d46407 100644
--- a/linux/drivers/media/video/dpc7146.c
+++ b/linux/drivers/media/video/dpc7146.c
@@ -88,11 +88,24 @@ struct dpc
int cur_input; /* current input */
};
+static int dpc_check_clients(struct device *dev, void *data)
+{
+ struct dpc* dpc = data;
+ struct i2c_client *client = i2c_verify_client(dev);
+
+ if( !client )
+ return 0;
+
+ if( I2C_SAA7111A == client->addr )
+ dpc->saa7111a = client;
+
+ return 0;
+}
+
/* fixme: add vbi stuff here */
static int dpc_probe(struct saa7146_dev* dev)
{
struct dpc* dpc = NULL;
- struct i2c_client *client;
dpc = kzalloc(sizeof(struct dpc), GFP_KERNEL);
if( NULL == dpc ) {
@@ -116,9 +129,7 @@ static int dpc_probe(struct saa7146_dev* dev)
}
/* loop through all i2c-devices on the bus and look who is there */
- list_for_each_entry(client, &dpc->i2c_adapter.clients, list)
- if( I2C_SAA7111A == client->addr )
- dpc->saa7111a = client;
+ device_for_each_child(&dpc->i2c_adapter.dev, dpc, dpc_check_clients);
/* check if all devices are present */
if( 0 == dpc->saa7111a ) {
diff --git a/linux/drivers/media/video/mxb.c b/linux/drivers/media/video/mxb.c
index 354ecaf8d..97cc92c82 100644
--- a/linux/drivers/media/video/mxb.c
+++ b/linux/drivers/media/video/mxb.c
@@ -150,10 +150,33 @@ struct mxb
static struct saa7146_extension extension;
+static int mxb_check_clients(struct device *dev, void *data)
+{
+ struct mxb* mxb = data;
+ struct i2c_client *client = i2c_verify_client(dev);
+
+ if( !client )
+ return 0;
+
+ if( I2C_ADDR_TEA6420_1 == client->addr )
+ mxb->tea6420_1 = client;
+ if( I2C_ADDR_TEA6420_2 == client->addr )
+ mxb->tea6420_2 = client;
+ if( I2C_TEA6415C_2 == client->addr )
+ mxb->tea6415c = client;
+ if( I2C_ADDR_TDA9840 == client->addr )
+ mxb->tda9840 = client;
+ if( I2C_SAA7111 == client->addr )
+ mxb->saa7111a = client;
+ if( 0x60 == client->addr )
+ mxb->tuner = client;
+
+ return 0;
+}
+
static int mxb_probe(struct saa7146_dev* dev)
{
struct mxb* mxb = NULL;
- struct i2c_client *client;
int result;
if ((result = request_module("saa7111")) < 0) {
@@ -196,20 +219,7 @@ static int mxb_probe(struct saa7146_dev* dev)
}
/* loop through all i2c-devices on the bus and look who is there */
- list_for_each_entry(client, &mxb->i2c_adapter.clients, list) {
- if( I2C_ADDR_TEA6420_1 == client->addr )
- mxb->tea6420_1 = client;
- if( I2C_ADDR_TEA6420_2 == client->addr )
- mxb->tea6420_2 = client;
- if( I2C_TEA6415C_2 == client->addr )
- mxb->tea6415c = client;
- if( I2C_ADDR_TDA9840 == client->addr )
- mxb->tda9840 = client;
- if( I2C_SAA7111 == client->addr )
- mxb->saa7111a = client;
- if( 0x60 == client->addr )
- mxb->tuner = client;
- }
+ device_for_each_child(&mxb->i2c_adapter.dev, mxb, mxb_check_clients);
/* check if all devices are present */
if( 0 == mxb->tea6420_1 || 0 == mxb->tea6420_2 || 0 == mxb->tea6415c