V4L/DVB (3234): Included advanced debug option to tvp5150.c
authorMauro Carvalho Chehab <mchehab@brturbo.com.br>
Mon, 9 Jan 2006 17:25:37 +0000 (15:25 -0200)
committerMauro Carvalho Chehab <mchehab@brturbo.com.br>
Mon, 9 Jan 2006 17:25:37 +0000 (15:25 -0200)
- Included advanced debug option to tvp5150.c
- Now, advanced debug info is the first item at V4L menu.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
drivers/media/video/Kconfig
drivers/media/video/tvp5150.c
include/linux/i2c-id.h

index c89cc0a922ee450b5cb36e70501d49c8a3be215e..2fe260fff85dd25b8d952f23dfbaff412cea4848 100644 (file)
@@ -7,6 +7,15 @@ menu "Video For Linux"
 
 comment "Video Adapters"
 
+config VIDEO_ADV_DEBUG
+       bool "Enable advanced debug functionality"
+       depends on VIDEO_DEV
+       default n
+       ---help---
+         Say Y here to enable advanced debugging functionality on some
+         V4L devices.
+         In doubt, say N.
+
 config VIDEO_BT848
        tristate "BT848 Video For Linux"
        depends on VIDEO_DEV && PCI && I2C
@@ -344,11 +353,4 @@ config VIDEO_DECODER
          Say Y here to compile drivers for SAA7115, SAA7127 and CX25840
          video decoders.
 
-config VIDEO_ADV_DEBUG
-       bool "Enable advanced debug functionality"
-       depends on VIDEO_DEV && VIDEO_DECODER && EXPERIMENTAL
-       ---help---
-         Say Y here to enable advanced debugging functionality in the
-         SAA7115, SAA7127 and CX25840 video decoders.
-
 endmenu
index 9ed839d688eb062040fa03e8315e7d1f2eb3690d..07ad675cd58e3f2e855f7ef2ab1a8e14ca870e0f 100644 (file)
@@ -850,6 +850,30 @@ static int tvp5150_command(struct i2c_client *c,
                *(v4l2_std_id *)arg = decoder->norm;
                break;
 
+#ifdef CONFIG_VIDEO_ADV_DEBUG
+       case VIDIOC_INT_G_REGISTER:
+       {
+               struct v4l2_register *reg = arg;
+
+               if (reg->i2c_id != I2C_DRIVERID_TVP5150)
+                       return -EINVAL;
+               reg->val = tvp5150_read(c, reg->reg & 0xff);
+               break;
+       }
+
+       case VIDIOC_INT_S_REGISTER:
+       {
+               struct v4l2_register *reg = arg;
+
+               if (reg->i2c_id != I2C_DRIVERID_TVP5150)
+                       return -EINVAL;
+               if (!capable(CAP_SYS_ADMIN))
+                       return -EPERM;
+               tvp5150_write(c, reg->reg & 0xff, reg->val & 0xff);
+               break;
+       }
+#endif
+
        case DECODER_DUMP:
                dump_reg(c);
                break;
index fb46f8d56999108036ef1378f8525332b92a0fe3..6ff2d365895f550e72fc6e94a54696d3467573ea 100644 (file)
 #define I2C_DRIVERID_SAA711X   73      /* saa711x video encoders       */
 #define I2C_DRIVERID_AKITAIOEXP        74      /* IO Expander on Sharp SL-C1000 */
 #define I2C_DRIVERID_INFRARED  75      /* I2C InfraRed on Video boards */
+#define I2C_DRIVERID_TVP5150   76      /* TVP5150 video decoder        */
 
 #define I2C_DRIVERID_I2CDEV    900
 #define I2C_DRIVERID_ARP        902    /* SMBus ARP Client              */