Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=961f80f9c0c0f7c45d7818f9c9969dfaa9e4463d
Commit:     961f80f9c0c0f7c45d7818f9c9969dfaa9e4463d
Parent:     9b766b814d6a5f31ca1e9da1ebc08164b9352941
Author:     Jean Delvare <[EMAIL PROTECTED]>
AuthorDate: Sun Jan 27 18:14:51 2008 +0100
Committer:  Jean Delvare <[EMAIL PROTECTED]>
CommitDate: 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: Jean Delvare <[EMAIL PROTECTED]>
    Cc: David Brownell <[EMAIL PROTECTED]>
    Cc: Michael Hunold <[EMAIL PROTECTED]>
---
 drivers/media/video/dpc7146.c |   19 +++++++++++++++----
 drivers/media/video/mxb.c     |   40 +++++++++++++++++++++++++---------------
 2 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/drivers/media/video/dpc7146.c b/drivers/media/video/dpc7146.c
index 255dae3..566e479 100644
--- a/drivers/media/video/dpc7146.c
+++ b/drivers/media/video/dpc7146.c
@@ -87,11 +87,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 ) {
@@ -115,9 +128,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/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index 98ad309..add6d0d 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -149,10 +149,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) {
@@ -195,20 +218,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
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to