Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-2.6.18
[pandora-kernel.git] / drivers / media / video / v4l2-common.c
index 14e5234..2ecbeff 100644 (file)
@@ -44,7 +44,6 @@
  * Added Gerd Knorrs v4l1 enhancements (Justin Schoeman)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
@@ -203,7 +202,7 @@ static char *v4l2_memory_names[] = {
 /* ------------------------------------------------------------------ */
 /* debug help functions                                               */
 
-#ifdef HAVE_V4L1
+#ifdef CONFIG_V4L1_COMPAT
 static const char *v4l1_ioctls[] = {
        [_IOC_NR(VIDIOCGCAP)]       = "VIDIOCGCAP",
        [_IOC_NR(VIDIOCGCHAN)]      = "VIDIOCGCHAN",
@@ -302,7 +301,7 @@ static const char *v4l2_ioctls[] = {
 #define V4L2_IOCTLS ARRAY_SIZE(v4l2_ioctls)
 
 static const char *v4l2_int_ioctls[] = {
-#ifdef HAVE_VIDEO_DECODER
+#ifdef CONFIG_V4L1_COMPAT
        [_IOC_NR(DECODER_GET_CAPABILITIES)]    = "DECODER_GET_CAPABILITIES",
        [_IOC_NR(DECODER_GET_STATUS)]          = "DECODER_GET_STATUS",
        [_IOC_NR(DECODER_SET_NORM)]            = "DECODER_SET_NORM",
@@ -368,7 +367,7 @@ void v4l_printk_ioctl(unsigned int cmd)
                       (_IOC_NR(cmd) < V4L2_INT_IOCTLS) ?
                       v4l2_int_ioctls[_IOC_NR(cmd)] : "UNKNOWN", dir, cmd);
                break;
-#ifdef HAVE_V4L1
+#ifdef CONFIG_V4L1_COMPAT
        case 'v':
                printk("v4l1 ioctl %s, dir=%s (0x%08x)\n",
                       (_IOC_NR(cmd) < V4L1_IOCTLS) ?
@@ -415,6 +414,7 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
                printk ("%s: tuner type=%d\n", s, *p);
                break;
        }
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
        case DECODER_SET_VBI_BYPASS:
        case DECODER_ENABLE_OUTPUT:
        case DECODER_GET_STATUS:
@@ -425,6 +425,7 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
        case VIDIOCCAPTURE:
        case VIDIOCSYNC:
        case VIDIOCSWRITEMODE:
+#endif
        case TUNER_SET_TYPE_ADDR:
        case TUNER_SET_STANDBY:
        case TDA9887_SET_CONFIG:
@@ -756,6 +757,7 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
                                p->afc);
                break;
        }
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
        case VIDIOCGVBIFMT:
        case VIDIOCSVBIFMT:
        {
@@ -925,6 +927,14 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
                                p->clipcount);
                break;
        }
+       case VIDIOCGFREQ:
+       case VIDIOCSFREQ:
+       {
+               unsigned long *p=arg;
+               printk ("%s: value=%lu\n", s, *p);
+               break;
+       }
+#endif
        case VIDIOC_INT_AUDIO_CLOCK_FREQ:
        case VIDIOC_INT_I2S_CLOCK_FREQ:
        case VIDIOC_INT_S_STANDBY:
@@ -934,13 +944,6 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
                printk ("%s: value=%d\n", s, *p);
                break;
        }
-       case VIDIOCGFREQ:
-       case VIDIOCSFREQ:
-       {
-               unsigned long *p=arg;
-               printk ("%s: value=%lu\n", s, *p);
-               break;
-       }
        case VIDIOC_G_STD:
        case VIDIOC_S_STD:
        case VIDIOC_QUERYSTD:
@@ -1101,6 +1104,11 @@ const char **v4l2_ctrl_get_menu(u32 id)
                "MPEG-2 SVCD-compatible Stream",
                NULL
        };
+       static const char *mpeg_stream_vbi_fmt[] = {
+               "No VBI",
+               "Private packet, IVTV format",
+               NULL
+       };
 
        switch (id) {
                case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
@@ -1129,6 +1137,8 @@ const char **v4l2_ctrl_get_menu(u32 id)
                        return mpeg_video_bitrate_mode;
                case V4L2_CID_MPEG_STREAM_TYPE:
                        return mpeg_stream_type;
+               case V4L2_CID_MPEG_STREAM_VBI_FMT:
+                       return mpeg_stream_vbi_fmt;
                default:
                        return NULL;
        }
@@ -1182,6 +1192,7 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
        case V4L2_CID_MPEG_STREAM_PID_PCR:      name = "Stream PCR Program ID"; break;
        case V4L2_CID_MPEG_STREAM_PES_ID_AUDIO: name = "Stream PES Audio ID"; break;
        case V4L2_CID_MPEG_STREAM_PES_ID_VIDEO: name = "Stream PES Video ID"; break;
+       case V4L2_CID_MPEG_STREAM_VBI_FMT:      name = "Stream VBI Format"; break;
 
        default:
                return -EINVAL;
@@ -1208,6 +1219,7 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
        case V4L2_CID_MPEG_VIDEO_ASPECT:
        case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
        case V4L2_CID_MPEG_STREAM_TYPE:
+       case V4L2_CID_MPEG_STREAM_VBI_FMT:
                qctrl->type = V4L2_CTRL_TYPE_MENU;
                step = 1;
                break;
@@ -1367,6 +1379,11 @@ int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl)
                return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
        case V4L2_CID_MPEG_STREAM_PES_ID_VIDEO:
                return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
+       case V4L2_CID_MPEG_STREAM_VBI_FMT:
+               return v4l2_ctrl_query_fill(qctrl,
+                               V4L2_MPEG_STREAM_VBI_FMT_NONE,
+                               V4L2_MPEG_STREAM_VBI_FMT_IVTV, 1,
+                               V4L2_MPEG_STREAM_VBI_FMT_NONE);
        default:
                return -EINVAL;
        }