[PATCH] v4l: CX88 Update
[linux-2.6.git] / drivers / media / video / cx88 / cx88-i2c.c
index b534223..8403c4e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    $Id: cx88-i2c.c,v 1.24 2005/06/17 18:46:23 mkrufky Exp $
+    $Id: cx88-i2c.c,v 1.28 2005/07/05 17:37:35 nsh Exp $
 
     cx88-i2c.c  --  all the i2c code is here
 
@@ -91,25 +91,32 @@ static int cx8800_bit_getsda(void *data)
 
 static int attach_inform(struct i2c_client *client)
 {
-        struct tuner_addr tun_addr;
+        struct tuner_setup tun_setup;
        struct cx88_core *core = i2c_get_adapdata(client->adapter);
 
-       dprintk(1, "i2c attach [addr=0x%x,client=%s]\n",
-               client->addr, i2c_clientname(client));
+       dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n",
+               client->driver->name,client->addr,i2c_clientname(client));
        if (!client->driver->command)
                return 0;
 
         if (core->radio_type != UNSET) {
-                tun_addr.v4l2_tuner = V4L2_TUNER_RADIO;
-                tun_addr.type = core->radio_type;
-                tun_addr.addr = core->radio_addr;
-                client->driver->command(client,TUNER_SET_TYPE_ADDR, &tun_addr);
+               if ((core->radio_addr==ADDR_UNSET)||(core->radio_addr==client->addr)) {
+                       tun_setup.mode_mask = T_RADIO;
+                       tun_setup.type = core->radio_type;
+                       tun_setup.addr = core->radio_addr;
+
+                       client->driver->command (client, TUNER_SET_TYPE_ADDR, &tun_setup);
+               }
         }
         if (core->tuner_type != UNSET) {
-                tun_addr.v4l2_tuner = V4L2_TUNER_ANALOG_TV;
-                tun_addr.type = core->tuner_type;
-                tun_addr.addr = core->tuner_addr;
-                client->driver->command(client,TUNER_SET_TYPE_ADDR, &tun_addr);
+               if ((core->tuner_addr==ADDR_UNSET)||(core->tuner_addr==client->addr)) {
+
+                       tun_setup.mode_mask = T_ANALOG_TV;
+                       tun_setup.type = core->tuner_type;
+                       tun_setup.addr = core->tuner_addr;
+
+                       client->driver->command (client,TUNER_SET_TYPE_ADDR, &tun_setup);
+               }
         }
 
        if (core->tda9887_conf)