aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@iki.fi>2012-06-13 15:01:10 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-07-06 19:17:46 -0400
commit563df3d0bc2ca103e5ddb76c8b7b3386ed2da0d6 (patch)
treebda561c54a3dd03a52bd8d714c8c354b146e8dc6
parent64b9ce83a446277d3ffdb5e25e9aeb66442da2a9 (diff)
[media] v4l: Unify selection flags
Unify flags on the selection interfaces on V4L2 and V4L2 subdev. Flags are very similar to targets in this case: there are more similarities than differences between the two interfaces. Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/omap3isp/ispccdc.c2
-rw-r--r--drivers/media/video/omap3isp/isppreview.c2
-rw-r--r--drivers/media/video/smiapp/smiapp-core.c10
-rw-r--r--include/linux/v4l2-common.h20
-rw-r--r--include/linux/v4l2-subdev.h6
-rw-r--r--include/linux/videodev2.h6
6 files changed, 26 insertions, 20 deletions
diff --git a/drivers/media/video/omap3isp/ispccdc.c b/drivers/media/video/omap3isp/ispccdc.c
index 82df7a06dc36..f1220d3d4970 100644
--- a/drivers/media/video/omap3isp/ispccdc.c
+++ b/drivers/media/video/omap3isp/ispccdc.c
@@ -2064,7 +2064,7 @@ static int ccdc_set_selection(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
2064 * pad. If the KEEP_CONFIG flag is set, just return the current crop 2064 * pad. If the KEEP_CONFIG flag is set, just return the current crop
2065 * rectangle. 2065 * rectangle.
2066 */ 2066 */
2067 if (sel->flags & V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG) { 2067 if (sel->flags & V4L2_SEL_FLAG_KEEP_CONFIG) {
2068 sel->r = *__ccdc_get_crop(ccdc, fh, sel->which); 2068 sel->r = *__ccdc_get_crop(ccdc, fh, sel->which);
2069 return 0; 2069 return 0;
2070 } 2070 }
diff --git a/drivers/media/video/omap3isp/isppreview.c b/drivers/media/video/omap3isp/isppreview.c
index 6fa70f4e8ea4..99d5cc4fd623 100644
--- a/drivers/media/video/omap3isp/isppreview.c
+++ b/drivers/media/video/omap3isp/isppreview.c
@@ -2000,7 +2000,7 @@ static int preview_set_selection(struct v4l2_subdev *sd,
2000 * pad. If the KEEP_CONFIG flag is set, just return the current crop 2000 * pad. If the KEEP_CONFIG flag is set, just return the current crop
2001 * rectangle. 2001 * rectangle.
2002 */ 2002 */
2003 if (sel->flags & V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG) { 2003 if (sel->flags & V4L2_SEL_FLAG_KEEP_CONFIG) {
2004 sel->r = *__preview_get_crop(prev, fh, sel->which); 2004 sel->r = *__preview_get_crop(prev, fh, sel->which);
2005 return 0; 2005 return 0;
2006 } 2006 }
diff --git a/drivers/media/video/smiapp/smiapp-core.c b/drivers/media/video/smiapp/smiapp-core.c
index 9bbb5d3f003b..8a5d4f7932a0 100644
--- a/drivers/media/video/smiapp/smiapp-core.c
+++ b/drivers/media/video/smiapp/smiapp-core.c
@@ -38,9 +38,9 @@
38 38
39#include "smiapp.h" 39#include "smiapp.h"
40 40
41#define SMIAPP_ALIGN_DIM(dim, flags) \ 41#define SMIAPP_ALIGN_DIM(dim, flags) \
42 ((flags) & V4L2_SUBDEV_SEL_FLAG_SIZE_GE \ 42 ((flags) & V4L2_SEL_FLAG_GE \
43 ? ALIGN((dim), 2) \ 43 ? ALIGN((dim), 2) \
44 : (dim) & ~1) 44 : (dim) & ~1)
45 45
46/* 46/*
@@ -1747,14 +1747,14 @@ static int scaling_goodness(struct v4l2_subdev *subdev, int w, int ask_w,
1747 h &= ~1; 1747 h &= ~1;
1748 ask_h &= ~1; 1748 ask_h &= ~1;
1749 1749
1750 if (flags & V4L2_SUBDEV_SEL_FLAG_SIZE_GE) { 1750 if (flags & V4L2_SEL_FLAG_GE) {
1751 if (w < ask_w) 1751 if (w < ask_w)
1752 val -= SCALING_GOODNESS; 1752 val -= SCALING_GOODNESS;
1753 if (h < ask_h) 1753 if (h < ask_h)
1754 val -= SCALING_GOODNESS; 1754 val -= SCALING_GOODNESS;
1755 } 1755 }
1756 1756
1757 if (flags & V4L2_SUBDEV_SEL_FLAG_SIZE_LE) { 1757 if (flags & V4L2_SEL_FLAG_LE) {
1758 if (w > ask_w) 1758 if (w > ask_w)
1759 val -= SCALING_GOODNESS; 1759 val -= SCALING_GOODNESS;
1760 if (h > ask_h) 1760 if (h > ask_h)
diff --git a/include/linux/v4l2-common.h b/include/linux/v4l2-common.h
index e85bf15b5994..0fa8b64c3cdb 100644
--- a/include/linux/v4l2-common.h
+++ b/include/linux/v4l2-common.h
@@ -29,7 +29,11 @@
29#ifndef __V4L2_COMMON__ 29#ifndef __V4L2_COMMON__
30#define __V4L2_COMMON__ 30#define __V4L2_COMMON__
31 31
32/* Selection target definitions */ 32/*
33 *
34 * Selection interface definitions
35 *
36 */
33 37
34/* Current cropping area */ 38/* Current cropping area */
35#define V4L2_SEL_TGT_CROP 0x0000 39#define V4L2_SEL_TGT_CROP 0x0000
@@ -46,7 +50,7 @@
46/* Current composing area plus all padding pixels */ 50/* Current composing area plus all padding pixels */
47#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103 51#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103
48 52
49/* Backward compatibility definitions */ 53/* Backward compatibility target definitions --- to be removed. */
50#define V4L2_SEL_TGT_CROP_ACTIVE V4L2_SEL_TGT_CROP 54#define V4L2_SEL_TGT_CROP_ACTIVE V4L2_SEL_TGT_CROP
51#define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE 55#define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE
52#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL \ 56#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL \
@@ -54,4 +58,14 @@
54#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL \ 58#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL \
55 V4L2_SEL_TGT_COMPOSE 59 V4L2_SEL_TGT_COMPOSE
56 60
57#endif /* __V4L2_COMMON__ */ 61/* Selection flags */
62#define V4L2_SEL_FLAG_GE (1 << 0)
63#define V4L2_SEL_FLAG_LE (1 << 1)
64#define V4L2_SEL_FLAG_KEEP_CONFIG (1 << 2)
65
66/* Backward compatibility flag definitions --- to be removed. */
67#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE V4L2_SEL_FLAG_GE
68#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE
69#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG
70
71#endif /* __V4L2_COMMON__ */
diff --git a/include/linux/v4l2-subdev.h b/include/linux/v4l2-subdev.h
index 1d7d45739260..8c57ee9872bb 100644
--- a/include/linux/v4l2-subdev.h
+++ b/include/linux/v4l2-subdev.h
@@ -124,10 +124,6 @@ struct v4l2_subdev_frame_interval_enum {
124 __u32 reserved[9]; 124 __u32 reserved[9];
125}; 125};
126 126
127#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE (1 << 0)
128#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE (1 << 1)
129#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG (1 << 2)
130
131/** 127/**
132 * struct v4l2_subdev_selection - selection info 128 * struct v4l2_subdev_selection - selection info
133 * 129 *
@@ -135,7 +131,7 @@ struct v4l2_subdev_frame_interval_enum {
135 * @pad: pad number, as reported by the media API 131 * @pad: pad number, as reported by the media API
136 * @target: Selection target, used to choose one of possible rectangles, 132 * @target: Selection target, used to choose one of possible rectangles,
137 * defined in v4l2-common.h; V4L2_SEL_TGT_* . 133 * defined in v4l2-common.h; V4L2_SEL_TGT_* .
138 * @flags: constraint flags 134 * @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.
139 * @r: coordinates of the selection window 135 * @r: coordinates of the selection window
140 * @reserved: for future use, set to zero for now 136 * @reserved: for future use, set to zero for now
141 * 137 *
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 7fdb8710c831..5d78910f926c 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -761,16 +761,12 @@ struct v4l2_crop {
761 struct v4l2_rect c; 761 struct v4l2_rect c;
762}; 762};
763 763
764/* Hints for adjustments of selection rectangle */
765#define V4L2_SEL_FLAG_GE 0x00000001
766#define V4L2_SEL_FLAG_LE 0x00000002
767
768/** 764/**
769 * struct v4l2_selection - selection info 765 * struct v4l2_selection - selection info
770 * @type: buffer type (do not use *_MPLANE types) 766 * @type: buffer type (do not use *_MPLANE types)
771 * @target: Selection target, used to choose one of possible rectangles; 767 * @target: Selection target, used to choose one of possible rectangles;
772 * defined in v4l2-common.h; V4L2_SEL_TGT_* . 768 * defined in v4l2-common.h; V4L2_SEL_TGT_* .
773 * @flags: constraints flags 769 * @flags: constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.
774 * @r: coordinates of selection window 770 * @r: coordinates of selection window
775 * @reserved: for future use, rounds structure size to 64 bytes, set to zero 771 * @reserved: for future use, rounds structure size to 64 bytes, set to zero
776 * 772 *