diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml
index 87339b2aad78..149f65dfaa72 100644
--- a/Documentation/DocBook/media/v4l/compat.xml
+++ b/Documentation/DocBook/media/v4l/compat.xml
@@ -2422,6 +2422,19 @@ details.
&VIDIOC-SUBDEV-G-SELECTION; and
&VIDIOC-SUBDEV-S-SELECTION;.
+
+ Added V4L2_COLORFX_ANTIQUE,
+ V4L2_COLORFX_ART_FREEZE,
+ V4L2_COLORFX_AQUA,
+ V4L2_COLORFX_SILHOUETTE,
+ V4L2_COLORFX_SOLARIZATION,
+ V4L2_COLORFX_VIVID and
+ V4L2_COLORFX_ARBITRARY_CBCR menu items
+ to the V4L2_CID_COLORFX control.
+
+
+ Added V4L2_CID_COLORFX_CBCR control.
+
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index 662127447aa6..e2ff0f98f08d 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -285,18 +285,92 @@ minimum value disables backlight compensation.
V4L2_CID_COLORFX
enum
- Selects a color effect. Possible values for
-enum v4l2_colorfx are:
-V4L2_COLORFX_NONE (0),
-V4L2_COLORFX_BW (1),
-V4L2_COLORFX_SEPIA (2),
-V4L2_COLORFX_NEGATIVE (3),
-V4L2_COLORFX_EMBOSS (4),
-V4L2_COLORFX_SKETCH (5),
-V4L2_COLORFX_SKY_BLUE (6),
-V4L2_COLORFX_GRASS_GREEN (7),
-V4L2_COLORFX_SKIN_WHITEN (8) and
-V4L2_COLORFX_VIVID (9).
+ Selects a color effect. The following values are defined:
+
+
+
+
+
+
+
+ V4L2_COLORFX_NONE
+ Color effect is disabled.
+
+
+ V4L2_COLORFX_ANTIQUE
+ An aging (old photo) effect.
+
+
+ V4L2_COLORFX_ART_FREEZE
+ Frost color effect.
+
+
+ V4L2_COLORFX_AQUA
+ Water color, cool tone.
+
+
+ V4L2_COLORFX_BW
+ Black and white.
+
+
+ V4L2_COLORFX_EMBOSS
+ Emboss, the highlights and shadows replace light/dark boundaries
+ and low contrast areas are set to a gray background.
+
+
+ V4L2_COLORFX_GRASS_GREEN
+ Grass green.
+
+
+ V4L2_COLORFX_NEGATIVE
+ Negative.
+
+
+ V4L2_COLORFX_SEPIA
+ Sepia tone.
+
+
+ V4L2_COLORFX_SKETCH
+ Sketch.
+
+
+ V4L2_COLORFX_SKIN_WHITEN
+ Skin whiten.
+
+
+ V4L2_COLORFX_SKY_BLUE
+ Sky blue.
+
+
+ V4L2_COLORFX_SOLARIZATION
+ Solarization, the image is partially reversed in tone,
+ only color values above or below a certain threshold are inverted.
+
+
+
+ V4L2_COLORFX_SILHOUETTE
+ Silhouette (outline).
+
+
+ V4L2_COLORFX_VIVID
+ Vivid colors.
+
+
+ V4L2_COLORFX_SET_CBCR
+ The Cb and Cr chroma components are replaced by fixed
+ coefficients determined by V4L2_CID_COLORFX_CBCR
+ control.
+
+
+
+
+
+ V4L2_CID_COLORFX_CBCR
+ integer
+ Determines the Cb and Cr coefficients for V4L2_COLORFX_SET_CBCR
+ color effect. Bits [7:0] of the supplied 32 bit value are interpreted as
+ Cr component, bits [15:8] as Cb component and bits [31:16] must be zero.
+
V4L2_CID_ROTATE
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
index fbf808d242f7..63242e2adc02 100644
--- a/Documentation/DocBook/media/v4l/v4l2.xml
+++ b/Documentation/DocBook/media/v4l/v4l2.xml
@@ -141,9 +141,10 @@ applications. -->
3.5
2012-04-02
- sa
+ sa, sn
Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev
- selections API.
+ selections API. Improved the description of V4L2_CID_COLORFX
+ control, added V4L2_CID_COLORFX_CBCR control.
diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c
index e5531ace5ee7..9bd8a92419e1 100644
--- a/drivers/media/video/v4l2-ctrls.c
+++ b/drivers/media/video/v4l2-ctrls.c
@@ -241,6 +241,12 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
"Grass Green",
"Skin Whiten",
"Vivid",
+ "Aqua",
+ "Art Freeze",
+ "Silhouette",
+ "Solarization",
+ "Antique",
+ "Set Cb/Cr",
NULL
};
static const char * const tune_preemphasis[] = {
@@ -493,6 +499,7 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_MIN_BUFFERS_FOR_CAPTURE: return "Min Number of Capture Buffers";
case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT: return "Min Number of Output Buffers";
case V4L2_CID_ALPHA_COMPONENT: return "Alpha Component";
+ case V4L2_CID_COLORFX_CBCR: return "Color Effects, CbCr";
/* MPEG controls */
/* Keep the order of the 'case's the same as in videodev2.h! */
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 7f75846a4a0c..07bce86f3548 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1248,16 +1248,22 @@ enum v4l2_power_line_frequency {
#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
#define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
enum v4l2_colorfx {
- V4L2_COLORFX_NONE = 0,
- V4L2_COLORFX_BW = 1,
- V4L2_COLORFX_SEPIA = 2,
- V4L2_COLORFX_NEGATIVE = 3,
- V4L2_COLORFX_EMBOSS = 4,
- V4L2_COLORFX_SKETCH = 5,
- V4L2_COLORFX_SKY_BLUE = 6,
- V4L2_COLORFX_GRASS_GREEN = 7,
- V4L2_COLORFX_SKIN_WHITEN = 8,
- V4L2_COLORFX_VIVID = 9,
+ V4L2_COLORFX_NONE = 0,
+ V4L2_COLORFX_BW = 1,
+ V4L2_COLORFX_SEPIA = 2,
+ V4L2_COLORFX_NEGATIVE = 3,
+ V4L2_COLORFX_EMBOSS = 4,
+ V4L2_COLORFX_SKETCH = 5,
+ V4L2_COLORFX_SKY_BLUE = 6,
+ V4L2_COLORFX_GRASS_GREEN = 7,
+ V4L2_COLORFX_SKIN_WHITEN = 8,
+ V4L2_COLORFX_VIVID = 9,
+ V4L2_COLORFX_AQUA = 10,
+ V4L2_COLORFX_ART_FREEZE = 11,
+ V4L2_COLORFX_SILHOUETTE = 12,
+ V4L2_COLORFX_SOLARIZATION = 13,
+ V4L2_COLORFX_ANTIQUE = 14,
+ V4L2_COLORFX_SET_CBCR = 15,
};
#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
@@ -1274,9 +1280,10 @@ enum v4l2_colorfx {
#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
+#define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
/* last CID + 1 */
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE+42)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43)
/* MPEG-class control IDs defined by V4L2 */
#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)