V4L/DVB (8574): gspca: Bad bytesperlines of pixelformat in spca505/506/508 and vc023x.
[safe/jmp/linux-2.6] / drivers / media / video / vp27smpx.c
index 2d97914..577956c 100644 (file)
@@ -27,7 +27,7 @@
 #include <asm/uaccess.h>
 #include <linux/i2c.h>
 #include <linux/i2c-id.h>
-#include <linux/videodev.h>
+#include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-chip-ident.h>
 #include <media/v4l2-i2c-drv.h>
@@ -50,27 +50,26 @@ static void vp27smpx_set_audmode(struct i2c_client *client, u32 audmode)
        u8 data[3] = { 0x00, 0x00, 0x04 };
 
        switch (audmode) {
-               case V4L2_TUNER_MODE_MONO:
-               case V4L2_TUNER_MODE_LANG1:
-                       break;
-               case V4L2_TUNER_MODE_STEREO:
-               case V4L2_TUNER_MODE_LANG1_LANG2:
-                       data[1] = 0x01;
-                       break;
-               case V4L2_TUNER_MODE_LANG2:
-                       data[1] = 0x02;
-                       break;
+       case V4L2_TUNER_MODE_MONO:
+       case V4L2_TUNER_MODE_LANG1:
+               break;
+       case V4L2_TUNER_MODE_STEREO:
+       case V4L2_TUNER_MODE_LANG1_LANG2:
+               data[1] = 0x01;
+               break;
+       case V4L2_TUNER_MODE_LANG2:
+               data[1] = 0x02;
+               break;
        }
 
-       if (i2c_master_send(client, data, sizeof(data)) != sizeof(data)) {
-               v4l_err(client, "%s: I/O error setting audmode\n", client->name);
-       }
-       else {
+       if (i2c_master_send(client, data, sizeof(data)) != sizeof(data))
+               v4l_err(client, "%s: I/O error setting audmode\n",
+                               client->name);
+       else
                state->audmode = audmode;
-       }
 }
 
-static int vp27smpx_command(struct i2c_client *client, unsigned int cmd, void *arg)
+static int vp27smpx_command(struct i2c_client *client, unsigned cmd, void *arg)
 {
        struct vp27smpx_state *state = i2c_get_clientdata(client);
        struct v4l2_tuner *vt = arg;
@@ -99,7 +98,8 @@ static int vp27smpx_command(struct i2c_client *client, unsigned int cmd, void *a
                break;
 
        case VIDIOC_G_CHIP_IDENT:
-               return v4l2_chip_ident_i2c_client(client, arg, V4L2_IDENT_VP27SMPX, 0);
+               return v4l2_chip_ident_i2c_client(client, arg,
+                               V4L2_IDENT_VP27SMPX, 0);
 
        case VIDIOC_LOG_STATUS:
                v4l_info(client, "Audio Mode: %u%s\n", state->audmode,
@@ -121,7 +121,8 @@ static int vp27smpx_command(struct i2c_client *client, unsigned int cmd, void *a
  * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '>>1'
  */
 
-static int vp27smpx_probe(struct i2c_client *client)
+static int vp27smpx_probe(struct i2c_client *client,
+                         const struct i2c_device_id *id)
 {
        struct vp27smpx_state *state;
 
@@ -129,14 +130,12 @@ static int vp27smpx_probe(struct i2c_client *client)
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -EIO;
 
-       snprintf(client->name, sizeof(client->name) - 1, "vp27smpx");
-
-       v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name);
+       v4l_info(client, "chip found @ 0x%x (%s)\n",
+                       client->addr << 1, client->adapter->name);
 
        state = kzalloc(sizeof(struct vp27smpx_state), GFP_KERNEL);
-       if (state == NULL) {
+       if (state == NULL)
                return -ENOMEM;
-       }
        state->audmode = V4L2_TUNER_MODE_STEREO;
        i2c_set_clientdata(client, state);
 
@@ -153,11 +152,17 @@ static int vp27smpx_remove(struct i2c_client *client)
 
 /* ----------------------------------------------------------------------- */
 
+static const struct i2c_device_id vp27smpx_id[] = {
+       { "vp27smpx", 0 },
+       { }
+};
+MODULE_DEVICE_TABLE(i2c, vp27smpx_id);
+
 static struct v4l2_i2c_driver_data v4l2_i2c_data = {
        .name = "vp27smpx",
        .driverid = I2C_DRIVERID_VP27SMPX,
        .command = vp27smpx_command,
        .probe = vp27smpx_probe,
        .remove = vp27smpx_remove,
+       .id_table = vp27smpx_id,
 };
-