aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorAdam Baker <linux@baker-net.org.uk>2009-03-29 18:17:10 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-04-06 20:44:29 -0400
commitdfa76fa2824967c0ec196fbcba36d3e74b66d3aa (patch)
tree96f1a646ca8b204e237d6aa72579825cdcedd0b0 /drivers/media
parent2659e468a38d7baa758baa5e59529e48eb8930c9 (diff)
V4L/DVB (11387): Sensor orientation reporting
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. [mchehab@redhat.com: Changed "Output is" to "Frames are" at the comments, as suggested at LMML] Signed-off-by: Adam Baker <linux@baker-net.org.uk> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/gspca/gspca.c1
-rw-r--r--drivers/media/video/gspca/gspca.h1
-rw-r--r--drivers/media/video/gspca/sq905.c6
3 files changed, 8 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index a75c1ca2db41..a2741d7dccfe 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -1132,6 +1132,7 @@ static int vidioc_enum_input(struct file *file, void *priv,
1132 if (input->index != 0) 1132 if (input->index != 0)
1133 return -EINVAL; 1133 return -EINVAL;
1134 input->type = V4L2_INPUT_TYPE_CAMERA; 1134 input->type = V4L2_INPUT_TYPE_CAMERA;
1135 input->status = gspca_dev->cam.input_flags;
1135 strncpy(input->name, gspca_dev->sd_desc->name, 1136 strncpy(input->name, gspca_dev->sd_desc->name,
1136 sizeof input->name); 1137 sizeof input->name);
1137 return 0; 1138 return 0;
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h
index e4d4cf6ce05a..58e8ff02136a 100644
--- a/drivers/media/video/gspca/gspca.h
+++ b/drivers/media/video/gspca/gspca.h
@@ -56,6 +56,7 @@ struct cam {
56 * - cannot be > MAX_NURBS 56 * - cannot be > MAX_NURBS
57 * - when 0 and bulk_size != 0 means 57 * - when 0 and bulk_size != 0 means
58 * 1 URB and submit done by subdriver */ 58 * 1 URB and submit done by subdriver */
59 u32 input_flags; /* value for ENUM_INPUT status flags */
59}; 60};
60 61
61struct gspca_dev; 62struct gspca_dev;
diff --git a/drivers/media/video/gspca/sq905.c b/drivers/media/video/gspca/sq905.c
index 04e3ae57a2e3..2e1cdf068fda 100644
--- a/drivers/media/video/gspca/sq905.c
+++ b/drivers/media/video/gspca/sq905.c
@@ -360,6 +360,12 @@ static int sd_init(struct gspca_dev *gspca_dev)
360 gspca_dev->cam.nmodes = ARRAY_SIZE(sq905_mode); 360 gspca_dev->cam.nmodes = ARRAY_SIZE(sq905_mode);
361 if (!(ident & SQ905_HIRES_MASK)) 361 if (!(ident & SQ905_HIRES_MASK))
362 gspca_dev->cam.nmodes--; 362 gspca_dev->cam.nmodes--;
363
364 if (ident & SQ905_ORIENTATION_MASK)
365 gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP;
366 else
367 gspca_dev->cam.input_flags = V4L2_IN_ST_VFLIP |
368 V4L2_IN_ST_HFLIP;
363 return 0; 369 return 0;
364} 370}
365 371