Message ID | 49C9D652.5040104@freemail.hu (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-path: <linux-media-owner@vger.kernel.org> Envelope-to: mchehab@infradead.org Delivery-date: Wed, 25 Mar 2009 06:59:38 +0000 Received: from vger.kernel.org ([209.132.176.167]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1LmN5O-0006jk-68; Wed, 25 Mar 2009 06:59:38 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755449AbZCYG7h (ORCPT <rfc822; kmpark@infradead.org> + 1 other); Wed, 25 Mar 2009 02:59:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755499AbZCYG7h (ORCPT <rfc822;linux-media-outgoing>); Wed, 25 Mar 2009 02:59:37 -0400 Received: from mail00d.mail.t-online.hu ([84.2.42.5]:64741 "EHLO mail00d.mail.t-online.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755449AbZCYG7g (ORCPT <rfc822;linux-media@vger.kernel.org>); Wed, 25 Mar 2009 02:59:36 -0400 Received: from [192.168.1.65] (dsl51B65935.pool.t-online.hu [81.182.89.53]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail00d.mail.t-online.hu (Postfix) with ESMTPSA id 6A43575872C; Wed, 25 Mar 2009 07:59:13 +0100 (CET) Message-ID: <49C9D652.5040104@freemail.hu> Date: Wed, 25 Mar 2009 07:59:30 +0100 From: =?UTF-8?B?TsOpbWV0aCBNw6FydG9u?= <nm127@freemail.hu> User-Agent: Mozilla/5.0 (X11; U; Linux i686; hu-HU; rv:1.8.1.16) Gecko/20080702 SeaMonkey/1.1.11 MIME-Version: 1.0 To: Laurent Pinchart <laurent.pinchart@skynet.be>, linux-media@vger.kernel.org CC: LKML <linux-kernel@vger.kernel.org> Subject: [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-DCC-mail.t-online.hu-Metrics: mail00d.mail.t-online.hu 32720; Body=3 Fuz1=3 Fuz2=3 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org |
Commit Message
Németh Márton
March 25, 2009, 6:59 a.m. UTC
From: Márton Németh <nm127@freemail.hu> When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does not fill the reserved fields of the struct v4l2_fmtdesc with zeros as required by V4L2 API revision 0.24 [1]. Add the missing initializations. The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on EeePC 901. References: [1] V4L2 API specification, revision 0.24 http://v4l2spec.bytesex.org/spec/r8367.htm [2] v4l-test: Test environment for Video For Linux Two API http://v4l-test.sourceforge.net/ Signed-off-by: Márton Németh <nm127@freemail.hu> --- -- 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
Comments
On Wednesday 25 March 2009 07:59:30 Németh Márton wrote: > From: Márton Németh <nm127@freemail.hu> > > When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does > not fill the reserved fields of the struct v4l2_fmtdesc with zeros as > required by V4L2 API revision 0.24 [1]. Add the missing initializations. > > The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on > EeePC 901. Or even better, Laurent, why not move to video_ioctl2? That will take care of such things for you. The next step I'm going to take in the implementation of the v4l2 framework is to move all drivers over to v4l2_device and v4l2_ioctl2, so it would certainly help me if you could convert uvcvideo. This is a typical example why using video_ioctl2 is a good (tm) idea! Regards, Hans > > References: > [1] V4L2 API specification, revision 0.24 > http://v4l2spec.bytesex.org/spec/r8367.htm > > [2] v4l-test: Test environment for Video For Linux Two API > http://v4l-test.sourceforge.net/ > > Signed-off-by: Márton Németh <nm127@freemail.hu> > --- > --- linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c.orig 2009-03-24 > 00:12:14.000000000 +0100 +++ > linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c 2009-03-25 > 07:24:42.000000000 +0100 @@ -673,11 +673,19 @@ static long > uvc_v4l2_do_ioctl(struct fil > { > struct v4l2_fmtdesc *fmt = arg; > struct uvc_format *format; > + __u32 index; > + enum v4l2_buf_type type; > > if (fmt->type != video->streaming->type || > fmt->index >= video->streaming->nformats) > return -EINVAL; > > + index = fmt->index; > + type = fmt->type; > + memset(fmt, 0, sizeof(*fmt)); > + fmt->index = index; > + fmt->type = type; > + > format = &video->streaming->format[fmt->index]; > fmt->flags = 0; > if (format->flags & UVC_FMT_FLAG_COMPRESSED) > -- > 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
On Wednesday 25 March 2009 07:59:30 Németh Márton wrote: > From: Márton Németh <nm127@freemail.hu> > > When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does not > fill the reserved fields of the struct v4l2_fmtdesc with zeros as required > by V4L2 API revision 0.24 [1]. Add the missing initializations. > > The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on > EeePC 901. > > References: > [1] V4L2 API specification, revision 0.24 > http://v4l2spec.bytesex.org/spec/r8367.htm > > [2] v4l-test: Test environment for Video For Linux Two API > http://v4l-test.sourceforge.net/ > > Signed-off-by: Márton Németh <nm127@freemail.hu> Applied, thanks. > --- > --- linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c.orig 2009-03-24 > 00:12:14.000000000 +0100 +++ > linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c 2009-03-25 > 07:24:42.000000000 +0100 @@ -673,11 +673,19 @@ static long > uvc_v4l2_do_ioctl(struct fil > { > struct v4l2_fmtdesc *fmt = arg; > struct uvc_format *format; > + __u32 index; > + enum v4l2_buf_type type; > > if (fmt->type != video->streaming->type || > fmt->index >= video->streaming->nformats) > return -EINVAL; > > + index = fmt->index; > + type = fmt->type; > + memset(fmt, 0, sizeof(*fmt)); > + fmt->index = index; > + fmt->type = type; > + > format = &video->streaming->format[fmt->index]; > fmt->flags = 0; > if (format->flags & UVC_FMT_FLAG_COMPRESSED) Laurent Pinchart -- 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
--- linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c.orig 2009-03-24 00:12:14.000000000 +0100 +++ linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c 2009-03-25 07:24:42.000000000 +0100 @@ -673,11 +673,19 @@ static long uvc_v4l2_do_ioctl(struct fil { struct v4l2_fmtdesc *fmt = arg; struct uvc_format *format; + __u32 index; + enum v4l2_buf_type type; if (fmt->type != video->streaming->type || fmt->index >= video->streaming->nformats) return -EINVAL; + index = fmt->index; + type = fmt->type; + memset(fmt, 0, sizeof(*fmt)); + fmt->index = index; + fmt->type = type; + format = &video->streaming->format[fmt->index]; fmt->flags = 0; if (format->flags & UVC_FMT_FLAG_COMPRESSED)