Merge branch 'topic/hda' into for-linus
[pandora-kernel.git] / drivers / media / video / tvaudio.c
index 226bf35..0869baf 100644 (file)
@@ -35,7 +35,7 @@
 #include <media/tvaudio.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-chip-ident.h>
-#include <media/v4l2-i2c-drv-legacy.h>
+#include <media/v4l2-i2c-drv.h>
 
 #include <media/i2c-addr.h>
 
@@ -136,20 +136,6 @@ static inline struct CHIPSTATE *to_state(struct v4l2_subdev *sd)
        return container_of(sd, struct CHIPSTATE, sd);
 }
 
-/* ---------------------------------------------------------------------- */
-/* i2c addresses                                                          */
-
-static unsigned short normal_i2c[] = {
-       I2C_ADDR_TDA8425   >> 1,
-       I2C_ADDR_TEA6300   >> 1,
-       I2C_ADDR_TEA6420   >> 1,
-       I2C_ADDR_TDA9840   >> 1,
-       I2C_ADDR_TDA985x_L >> 1,
-       I2C_ADDR_TDA985x_H >> 1,
-       I2C_ADDR_TDA9874   >> 1,
-       I2C_ADDR_PIC16C54  >> 1,
-       I2C_CLIENT_END };
-I2C_CLIENT_INSMOD;
 
 /* ---------------------------------------------------------------------- */
 /* i2c I/O functions                                                      */
@@ -1795,17 +1781,18 @@ static int tvaudio_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc)
        return -EINVAL;
 }
 
-static int tvaudio_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *rt)
+static int tvaudio_s_routing(struct v4l2_subdev *sd,
+                            u32 input, u32 output, u32 config)
 {
        struct CHIPSTATE *chip = to_state(sd);
        struct CHIPDESC *desc = chip->desc;
 
        if (!(desc->flags & CHIP_HAS_INPUTSEL))
                return 0;
-       if (rt->input >= 4)
+       if (input >= 4)
                return -EINVAL;
        /* There are four inputs: tuner, radio, extern and intern. */
-       chip->input = rt->input;
+       chip->input = input;
        if (chip->muted)
                return 0;
        chip_write_masked(chip, desc->inputreg,
@@ -1918,11 +1905,6 @@ static int tvaudio_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ide
        return v4l2_chip_ident_i2c_client(client, chip, V4L2_IDENT_TVAUDIO, 0);
 }
 
-static int tvaudio_command(struct i2c_client *client, unsigned cmd, void *arg)
-{
-       return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg);
-}
-
 /* ----------------------------------------------------------------------- */
 
 static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
@@ -1930,12 +1912,12 @@ static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
        .queryctrl = tvaudio_queryctrl,
        .g_ctrl = tvaudio_g_ctrl,
        .s_ctrl = tvaudio_s_ctrl,
+       .s_std = tvaudio_s_std,
 };
 
 static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = {
        .s_radio = tvaudio_s_radio,
        .s_frequency = tvaudio_s_frequency,
-       .s_std = tvaudio_s_std,
        .s_tuner = tvaudio_s_tuner,
        .s_tuner = tvaudio_g_tuner,
 };
@@ -2088,17 +2070,6 @@ static int tvaudio_remove(struct i2c_client *client)
        return 0;
 }
 
-static int tvaudio_legacy_probe(struct i2c_adapter *adap)
-{
-       /* don't attach on saa7146 based cards,
-          because dedicated drivers are used */
-       if ((adap->id == I2C_HW_SAA7146))
-               return 0;
-       if (adap->class & I2C_CLASS_TV_ANALOG)
-               return 1;
-       return 0;
-}
-
 /* This driver supports many devices and the idea is to let the driver
    detect which device is present. So rather than listing all supported
    devices here, we pretend to support a single, fake device type. */
@@ -2110,10 +2081,7 @@ MODULE_DEVICE_TABLE(i2c, tvaudio_id);
 
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "tvaudio",
-       .driverid = I2C_DRIVERID_TVAUDIO,
-       .command = tvaudio_command,
        .probe = tvaudio_probe,
        .remove = tvaudio_remove,
-       .legacy_probe = tvaudio_legacy_probe,
        .id_table = tvaudio_id,
 };