]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/video/saa7134/saa7134-i2c.c
V4L/DVB (8945): mxb: use unique i2c adapter name
[linux-2.6-omap-h63xx.git] / drivers / media / video / saa7134 / saa7134-i2c.c
index 2ccfaba0c490bfc6d42da43722a8ab6f665d42c9..b02965c52476aba7dd1424cf12c96b0e9c35a4fc 100644 (file)
@@ -324,11 +324,11 @@ static u32 functionality(struct i2c_adapter *adap)
 static int attach_inform(struct i2c_client *client)
 {
        struct saa7134_dev *dev = client->adapter->algo_data;
-       int tuner = dev->tuner_type;
-       struct tuner_setup tun_setup;
 
        d1printk( "%s i2c attach [addr=0x%x,client=%s]\n",
                client->driver->driver.name, client->addr, client->name);
+       if (client->addr == 0x20 && client->driver && client->driver->command)
+               dev->mpeg_i2c_client = client;
 
        /* Am I an i2c remote control? */
 
@@ -346,46 +346,6 @@ static int attach_inform(struct i2c_client *client)
                }
        }
 
-       if (!client->driver->command)
-               return 0;
-
-       if (saa7134_boards[dev->board].radio_type != UNSET) {
-
-               tun_setup.type = saa7134_boards[dev->board].radio_type;
-               tun_setup.addr = saa7134_boards[dev->board].radio_addr;
-
-               if ((tun_setup.addr == ADDR_UNSET) || (tun_setup.addr == client->addr)) {
-                       tun_setup.mode_mask = T_RADIO;
-
-                       client->driver->command(client, TUNER_SET_TYPE_ADDR, &tun_setup);
-               }
-       }
-
-       if (tuner != UNSET) {
-               tun_setup.type = tuner;
-               tun_setup.addr = saa7134_boards[dev->board].tuner_addr;
-               tun_setup.config = saa7134_boards[dev->board].tuner_config;
-               tun_setup.tuner_callback = saa7134_tuner_callback;
-
-               if ((tun_setup.addr == ADDR_UNSET)||(tun_setup.addr == client->addr)) {
-
-                       tun_setup.mode_mask = T_ANALOG_TV;
-
-                       client->driver->command(client,TUNER_SET_TYPE_ADDR, &tun_setup);
-               }
-
-               if (tuner == TUNER_TDA9887) {
-                       struct v4l2_priv_tun_config tda9887_cfg;
-
-                       tda9887_cfg.tuner = TUNER_TDA9887;
-                       tda9887_cfg.priv = &dev->tda9887_conf;
-
-                       client->driver->command(client, TUNER_SET_CONFIG,
-                                               &tda9887_cfg);
-               }
-       }
-
-
        return 0;
 }
 
@@ -467,6 +427,16 @@ void saa7134_i2c_call_clients(struct saa7134_dev *dev,
        i2c_clients_command(&dev->i2c_adap, cmd, arg);
 }
 
+int saa7134_i2c_call_saa6752(struct saa7134_dev *dev,
+                                             unsigned int cmd, void *arg)
+{
+       if (dev->mpeg_i2c_client == NULL)
+               return -EINVAL;
+       return dev->mpeg_i2c_client->driver->command(dev->mpeg_i2c_client,
+                                                               cmd, arg);
+}
+EXPORT_SYMBOL_GPL(saa7134_i2c_call_saa6752);
+
 int saa7134_i2c_register(struct saa7134_dev *dev)
 {
        dev->i2c_adap = saa7134_adap_template;