media: pvrusb2: correctly return V4L2_PIX_FMT_MPEG in enum_fmt
authorHans Verkuil <hverkuil@xs4all.nl>
Wed, 13 Dec 2017 23:44:42 +0000 (18:44 -0500)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 18 Dec 2017 20:01:23 +0000 (15:01 -0500)
The pvrusb2 code appears to have a some old workaround code for xawtv that causes a
WARN() due to an unrecognized pixelformat 0 in v4l2_ioctl.c.

Since all other MPEG drivers fill this in correctly, it is a safe assumption that
this particular problem no longer exists.

While I'm at it, clean up the code a bit.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/usb/pvrusb2/pvrusb2-v4l2.c

index 864830d..bf01b7c 100644 (file)
@@ -78,18 +78,6 @@ static int vbi_nr[PVR_NUM] = {[0 ... PVR_NUM-1] = -1};
 module_param_array(vbi_nr, int, NULL, 0444);
 MODULE_PARM_DESC(vbi_nr, "Offset for device's vbi dev minor");
 
-static struct v4l2_fmtdesc pvr_fmtdesc [] = {
-       {
-               .index          = 0,
-               .type           = V4L2_BUF_TYPE_VIDEO_CAPTURE,
-               .flags          = V4L2_FMT_FLAG_COMPRESSED,
-               .description    = "MPEG1/2",
-               // This should really be V4L2_PIX_FMT_MPEG, but xawtv
-               // breaks when I do that.
-               .pixelformat    = 0, // V4L2_PIX_FMT_MPEG,
-       }
-};
-
 #define PVR_FORMAT_PIX  0
 #define PVR_FORMAT_VBI  1
 
@@ -99,17 +87,11 @@ static struct v4l2_format pvr_format [] = {
                .fmt    = {
                        .pix        = {
                                .width          = 720,
-                               .height             = 576,
-                               // This should really be V4L2_PIX_FMT_MPEG,
-                               // but xawtv breaks when I do that.
-                               .pixelformat    = 0, // V4L2_PIX_FMT_MPEG,
+                               .height         = 576,
+                               .pixelformat    = V4L2_PIX_FMT_MPEG,
                                .field          = V4L2_FIELD_INTERLACED,
-                               .bytesperline   = 0,  // doesn't make sense
-                                                     // here
-                               //FIXME : Don't know what to put here...
-                               .sizeimage          = (32*1024),
-                               .colorspace     = 0, // doesn't make sense here
-                               .priv           = 0
+                               /* FIXME : Don't know what to put here... */
+                               .sizeimage      = 32 * 1024,
                        }
                }
        },
@@ -409,11 +391,11 @@ static int pvr2_g_frequency(struct file *file, void *priv, struct v4l2_frequency
 
 static int pvr2_enum_fmt_vid_cap(struct file *file, void *priv, struct v4l2_fmtdesc *fd)
 {
-       /* Only one format is supported : mpeg.*/
-       if (fd->index != 0)
+       /* Only one format is supported: MPEG. */
+       if (fd->index)
                return -EINVAL;
 
-       memcpy(fd, pvr_fmtdesc, sizeof(struct v4l2_fmtdesc));
+       fd->pixelformat = V4L2_PIX_FMT_MPEG;
        return 0;
 }