From patchwork Sun Mar 29 22:17:10 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Baker X-Patchwork-Id: 15056 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n2TMHHgW028284 for ; Sun, 29 Mar 2009 22:17:18 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752157AbZC2WRR (ORCPT ); Sun, 29 Mar 2009 18:17:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752429AbZC2WRR (ORCPT ); Sun, 29 Mar 2009 18:17:17 -0400 Received: from mk-outboundfilter-1.mail.uk.tiscali.com ([212.74.114.37]:39983 "EHLO mk-outboundfilter-1.mail.uk.tiscali.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752157AbZC2WRQ (ORCPT ); Sun, 29 Mar 2009 18:17:16 -0400 X-Trace: 233207329/mk-outboundfilter-1.mail.uk.tiscali.com/PIPEX/$PIPEX-ACCEPTED/pipex-customers/62.190.239.28/None/linux@baker-net.org.uk X-SBRS: None X-RemoteIP: 62.190.239.28 X-IP-MAIL-FROM: linux@baker-net.org.uk X-MUA: KMail/1.11.1 (Linux/2.6.28-11-generic; KDE/4.2.1; i686; ; ) X-IP-BHB: Once X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjEFAIGQz0k+vu8c/2dsb2JhbACBUMUEg3oG X-IronPort-AV: E=Sophos;i="4.38,442,1233532800"; d="scan'208";a="233207329" X-IP-Direction: IN Received: from userch028.dsl.pipex.com (HELO gromit.localnet) ([62.190.239.28]) by smtp.pipex.tiscali.co.uk with ESMTP; 29 Mar 2009 23:17:13 +0100 From: Adam Baker To: linux-media@vger.kernel.org, Hans de Goede , Mauro Carvalho Chehab , "Jean-Francois Moine" Subject: Re: [PATCH v2 1/4] Sensor orientation reporting Date: Sun, 29 Mar 2009 23:17:10 +0100 User-Agent: KMail/1.11.1 (Linux/2.6.28-11-generic; KDE/4.2.1; i686; ; ) Cc: kilgota@banach.math.auburn.edu, Hans Verkuil References: <200903292309.31267.linux@baker-net.org.uk> In-Reply-To: <200903292309.31267.linux@baker-net.org.uk> MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200903292317.10249.linux@baker-net.org.uk> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Add support to the SQ-905 driver to pass back to user space the sensor orientation information obtained from the camera during init. Modifies gspca and the videodev2.h header to create the necessary API. Signed-off-by: Adam Baker --- #define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */ -- 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 -r d8d701594f71 linux/drivers/media/video/gspca/gspca.c --- a/linux/drivers/media/video/gspca/gspca.c Sun Mar 29 08:45:36 2009 +0200 +++ b/linux/drivers/media/video/gspca/gspca.c Sun Mar 29 23:00:08 2009 +0100 @@ -1147,6 +1147,7 @@ if (input->index != 0) return -EINVAL; input->type = V4L2_INPUT_TYPE_CAMERA; + input->status = gspca_dev->cam.input_flags; strncpy(input->name, gspca_dev->sd_desc->name, sizeof input->name); return 0; diff -r d8d701594f71 linux/drivers/media/video/gspca/gspca.h --- a/linux/drivers/media/video/gspca/gspca.h Sun Mar 29 08:45:36 2009 +0200 +++ b/linux/drivers/media/video/gspca/gspca.h Sun Mar 29 23:00:08 2009 +0100 @@ -56,6 +56,7 @@ * - cannot be > MAX_NURBS * - when 0 and bulk_size != 0 means * 1 URB and submit done by subdriver */ + u32 input_flags; /* value for ENUM_INPUT status flags */ }; struct gspca_dev; diff -r d8d701594f71 linux/drivers/media/video/gspca/sq905.c --- a/linux/drivers/media/video/gspca/sq905.c Sun Mar 29 08:45:36 2009 +0200 +++ b/linux/drivers/media/video/gspca/sq905.c Sun Mar 29 23:00:08 2009 +0100 @@ -360,6 +360,12 @@ gspca_dev->cam.nmodes = ARRAY_SIZE(sq905_mode); if (!(ident & SQ905_HIRES_MASK)) gspca_dev->cam.nmodes--; + + if (ident & SQ905_ORIENTATION_MASK) + gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP; + else + gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP | + V4L2_IN_ST_HFLIP; return 0; } diff -r d8d701594f71 linux/include/linux/videodev2.h --- a/linux/include/linux/videodev2.h Sun Mar 29 08:45:36 2009 +0200 +++ b/linux/include/linux/videodev2.h Sun Mar 29 23:00:08 2009 +0100 @@ -737,6 +737,11 @@ #define V4L2_IN_ST_NO_SIGNAL 0x00000002 #define V4L2_IN_ST_NO_COLOR 0x00000004 +/* field 'status' - sensor orientation */ +/* If sensor is mounted upside down set both bits */ +#define V4L2_IN_ST_HFLIP 0x00000010 /* Output is flipped horizontally */ +#define V4L2_IN_ST_VFLIP 0x00000020 /* Output is flipped vertically */ + /* field 'status' - analog */ #define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */