Message ID | 4D9A0C87.40309@sensoray.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Em 04-04-2011 15:23, Sensoray Linux Development escreveu: > Adding jpeg enable module parameter. This one has also some bad whitespacing. I've applied both. Please next time, double check it before sending me a patch. Thanks, Mauro > > Signed-off-by: Dean Anderson <linux-dev@sensoray.com> > > --- > drivers/media/video/s2255drv.c | 21 ++++++++++++++++----- > 1 files changed, 16 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c > index 38e5c4b..eb33e1e 100644 > --- a/drivers/media/video/s2255drv.c > +++ b/drivers/media/video/s2255drv.c > @@ -389,12 +389,17 @@ static unsigned int vid_limit = 16; /* Video memory limit, in Mb */ > /* start video number */ > static int video_nr = -1; /* /dev/videoN, -1 for autodetect */ > > +/* Enable jpeg capture. */ > +static int jpeg_enable = 1; > + > module_param(debug, int, 0644); > MODULE_PARM_DESC(debug, "Debug level(0-100) default 0"); > module_param(vid_limit, int, 0644); > MODULE_PARM_DESC(vid_limit, "video memory limit(Mb)"); > module_param(video_nr, int, 0644); > MODULE_PARM_DESC(video_nr, "start video minor(-1 default autodetect)"); > +module_param(jpeg_enable, int, 0644); > +MODULE_PARM_DESC(jpeg_enable, "Jpeg enable(1-on 0-off) default 1"); > > /* USB device table */ > #define USB_SENSORAY_VID 0x1943 > @@ -408,6 +413,7 @@ MODULE_DEVICE_TABLE(usb, s2255_table); > #define BUFFER_TIMEOUT msecs_to_jiffies(400) > > /* image formats. */ > +/* JPEG formats must be defined last to support jpeg_enable parameter */ > static const struct s2255_fmt formats[] = { > { > .name = "4:2:2, planar, YUV422P", > @@ -424,6 +430,10 @@ static const struct s2255_fmt formats[] = { > .fourcc = V4L2_PIX_FMT_UYVY, > .depth = 16 > }, { > + .name = "8bpp GREY", > + .fourcc = V4L2_PIX_FMT_GREY, > + .depth = 8 > + }, { > .name = "JPG", > .fourcc = V4L2_PIX_FMT_JPEG, > .depth = 24 > @@ -431,10 +441,6 @@ static const struct s2255_fmt formats[] = { > .name = "MJPG", > .fourcc = V4L2_PIX_FMT_MJPEG, > .depth = 24 > - }, { > - .name = "8bpp GREY", > - .fourcc = V4L2_PIX_FMT_GREY, > - .depth = 8 > } > }; > > @@ -609,6 +615,9 @@ static const struct s2255_fmt *format_by_fourcc(int fourcc) > for (i = 0; i < ARRAY_SIZE(formats); i++) { > if (-1 == formats[i].fourcc) > continue; > + if (!jpeg_enable && ((formats[i].fourcc == V4L2_PIX_FMT_JPEG) || > + (formats[i].fourcc == V4L2_PIX_FMT_MJPEG))) > + continue; > if (formats[i].fourcc == fourcc) > return formats + i; > } > @@ -856,7 +865,9 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, > > if (index >= ARRAY_SIZE(formats)) > return -EINVAL; > - > + if (!jpeg_enable && ((formats[index].fourcc == V4L2_PIX_FMT_JPEG) || > + (formats[index].fourcc == V4L2_PIX_FMT_MJPEG))) > + return -EINVAL; > dprintk(4, "name %s\n", formats[index].name); > strlcpy(f->description, formats[index].name, sizeof(f->description)); > f->pixelformat = formats[index].fourcc; -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c index 38e5c4b..eb33e1e 100644 --- a/drivers/media/video/s2255drv.c +++ b/drivers/media/video/s2255drv.c @@ -389,12 +389,17 @@ static unsigned int vid_limit = 16; /* Video memory limit, in Mb */ /* start video number */ static int video_nr = -1; /* /dev/videoN, -1 for autodetect */ +/* Enable jpeg capture. */ +static int jpeg_enable = 1; + module_param(debug, int, 0644); MODULE_PARM_DESC(debug, "Debug level(0-100) default 0"); module_param(vid_limit, int, 0644); MODULE_PARM_DESC(vid_limit, "video memory limit(Mb)"); module_param(video_nr, int, 0644); MODULE_PARM_DESC(video_nr, "start video minor(-1 default autodetect)"); +module_param(jpeg_enable, int, 0644); +MODULE_PARM_DESC(jpeg_enable, "Jpeg enable(1-on 0-off) default 1"); /* USB device table */ #define USB_SENSORAY_VID 0x1943 @@ -408,6 +413,7 @@ MODULE_DEVICE_TABLE(usb, s2255_table); #define BUFFER_TIMEOUT msecs_to_jiffies(400) /* image formats. */ +/* JPEG formats must be defined last to support jpeg_enable parameter */ static const struct s2255_fmt formats[] = { { .name = "4:2:2, planar, YUV422P", @@ -424,6 +430,10 @@ static const struct s2255_fmt formats[] = { .fourcc = V4L2_PIX_FMT_UYVY, .depth = 16 }, { + .name = "8bpp GREY", + .fourcc = V4L2_PIX_FMT_GREY, + .depth = 8 + }, { .name = "JPG", .fourcc = V4L2_PIX_FMT_JPEG, .depth = 24 @@ -431,10 +441,6 @@ static const struct s2255_fmt formats[] = { .name = "MJPG", .fourcc = V4L2_PIX_FMT_MJPEG, .depth = 24 - }, { - .name = "8bpp GREY", - .fourcc = V4L2_PIX_FMT_GREY, - .depth = 8 } }; @@ -609,6 +615,9 @@ static const struct s2255_fmt *format_by_fourcc(int fourcc) for (i = 0; i < ARRAY_SIZE(formats); i++) { if (-1 == formats[i].fourcc) continue; + if (!jpeg_enable && ((formats[i].fourcc == V4L2_PIX_FMT_JPEG) || + (formats[i].fourcc == V4L2_PIX_FMT_MJPEG))) + continue; if (formats[i].fourcc == fourcc) return formats + i; } @@ -856,7 +865,9 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, if (index >= ARRAY_SIZE(formats)) return -EINVAL; - + if (!jpeg_enable && ((formats[index].fourcc == V4L2_PIX_FMT_JPEG) || + (formats[index].fourcc == V4L2_PIX_FMT_MJPEG))) + return -EINVAL; dprintk(4, "name %s\n", formats[index].name); strlcpy(f->description, formats[index].name, sizeof(f->description)); f->pixelformat = formats[index].fourcc;
Adding jpeg enable module parameter. Signed-off-by: Dean Anderson <linux-dev@sensoray.com> --- drivers/media/video/s2255drv.c | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-)