From: Santiago Nunez-Corrales <[email protected]>

This patch provides required std and control definitions in TVP7002
within v4l2.

Signed-off-by: Santiago Nunez-Corrales <[email protected]>
---
 include/linux/videodev2.h       |   87 +++++++++++++++++++++++++++++++++++++-
 include/media/v4l2-chip-ident.h |    3 +
 2 files changed, 87 insertions(+), 3 deletions(-)

diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 74f1687..5a735be 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -704,11 +704,66 @@ typedef __u64 v4l2_std_id;
                                 V4L2_STD_PAL_Nc        |\
                                 V4L2_STD_SECAM)
 #define V4L2_STD_ATSC           (V4L2_STD_ATSC_8_VSB    |\
-                                V4L2_STD_ATSC_16_VSB)
+                                                                
V4L2_STD_ATSC_16_VSB)
 
+/* Frequency for HD (i.e. 60 vs 50) */
+#define V4L2_STD_HDTV_50       ((v4l2_std_id)0x04000000)
+#define V4L2_STD_HDTV_60       ((v4l2_std_id)0x00000000)
+
+/* interlaced vs progressive for HD */
+#define V4L2_STD_HDTV_I                ((v4l2_std_id)0x08000000)
+#define V4L2_STD_HDTV_P                ((v4l2_std_id)0x00000000)
+
+/* 720 vs 1080 HD modes */
+#define V4L2_STD_HDTV_720      ((v4l2_std_id)0x08000000)
+#define V4L2_STD_HDTV_1080     ((v4l2_std_id)0x10000000)
+
+/* FIXME:
+ * 
+ * Definitions equal to zero are listed for clarity. In general,
+ * definitions of standards should be improved by using bits to
+ * denote properties, not specific standards and forcing the use
+ * of unnatural combinatorics tricks. Otherwise, as such is the
+ * current case, the descriptor bit space gets exhausted very
+ * rapidly.
+ */
+
+/* some standards for SDTV and HDTV */
+#define V4L2_STD_480P_60       (V4L2_STD_525_60        |\
+                                V4L2_STD_HDTV_P)
+#define V4L2_STD_480I_60       (V4L2_STD_525_60        |\
+                                V4L2_STD_HDTV_I)
+#define V4L2_STD_576P_50       (V4L2_STD_625_50        |\
+                                V4L2_STD_HDTV_P)
+#define V4L2_STD_576I_50       (V4L2_STD_625_50        |\
+                                V4L2_STD_HDTV_I)
+#define V4L2_STD_720P_50       (V4L2_STD_ATSC          |\
+                                V4L2_STD_HDTV_50       |\
+                                V4L2_STD_HDTV_P        |\
+                                V4L2_STD_HDTV_720)
+#define V4L2_STD_720P_60       (V4L2_STD_ATSC          |\
+                                V4L2_STD_HDTV_60       |\
+                                V4L2_STD_HDTV_P        |\
+                                V4L2_STD_HDTV_720)
+#define V4L2_STD_1080I_50      (V4L2_STD_ATSC          |\
+                                V4L2_STD_HDTV_50       |\
+                                V4L2_STD_HDTV_I        |\
+                                V4L2_STD_HDTV_1080)
+#define V4L2_STD_1080I_60      (V4L2_STD_ATSC          |\
+                                V4L2_STD_HDTV_60       |\
+                                V4L2_STD_HDTV_I        |\
+                                V4L2_STD_HDTV_1080)
+#define V4L2_STD_1080P_50      (V4L2_STD_ATSC          |\
+                                V4L2_STD_HDTV_50       |\
+                                V4L2_STD_HDTV_P        |\
+                                V4L2_STD_HDTV_1080)
+#define V4L2_STD_1080P_60      (V4L2_STD_ATSC          |\
+                                V4L2_STD_HDTV_60       |\
+                                V4L2_STD_HDTV_P        |\
+                                V4L2_STD_HDTV_1080)
+
+                               
 #define V4L2_STD_UNKNOWN        0
-#define V4L2_STD_ALL            (V4L2_STD_525_60       |\
-                                V4L2_STD_625_50)
 
 struct v4l2_standard {
        __u32                index;
@@ -808,6 +863,7 @@ struct v4l2_ext_controls {
 #define V4L2_CTRL_CLASS_USER 0x00980000        /* Old-style 'user' controls */
 #define V4L2_CTRL_CLASS_MPEG 0x00990000        /* MPEG-compression controls */
 #define V4L2_CTRL_CLASS_CAMERA 0x009a0000      /* Camera class controls */
+#define V4L2_CTRL_CLASS_DECODER 0x009c0000     /* Decoder class controls */
 
 #define V4L2_CTRL_ID_MASK                (0x0fffffff)
 #define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL)
@@ -1147,6 +1203,31 @@ enum  v4l2_exposure_auto_type {
 
 #define V4L2_CID_PRIVACY                       (V4L2_CID_CAMERA_CLASS_BASE+16)
 
+
+/* tvp7002 control IDs*/
+#define V4L2_CID_TVP7002_BASE                  V4L2_CTRL_CLASS_DECODER
+#define V4L2_CID_TVP7002_COARSE_GAIN_R         (V4L2_CID_TVP7002_BASE + 1)
+#define V4L2_CID_TVP7002_COARSE_GAIN_G         (V4L2_CID_TVP7002_BASE + 2)
+#define V4L2_CID_TVP7002_COARSE_GAIN_B         (V4L2_CID_TVP7002_BASE + 3)
+#define V4L2_CID_TVP7002_FINE_GAIN_R           (V4L2_CID_TVP7002_BASE + 4)
+#define V4L2_CID_TVP7002_FINE_GAIN_G           (V4L2_CID_TVP7002_BASE + 5)
+#define V4L2_CID_TVP7002_FINE_GAIN_B           (V4L2_CID_TVP7002_BASE + 6)
+#define V4L2_CID_TVP7002_B_CLAMP               (V4L2_CID_TVP7002_BASE + 7)
+#define V4L2_CID_TVP7002_G_CLAMP               (V4L2_CID_TVP7002_BASE + 8)
+#define V4L2_CID_TVP7002_R_CLAMP               (V4L2_CID_TVP7002_BASE + 9)
+#define V4L2_CID_TVP7002_CLAMP_OFF_EN          (V4L2_CID_TVP7002_BASE + 10)
+#define V4L2_CID_TVP7002_FCTCA                 (V4L2_CID_PRIVATE_BASE + 11)
+#define V4L2_CID_TVP7002_F_CLAMP_GB            (V4L2_CID_TVP7002_BASE + 12)
+#define V4L2_CID_TVP7002_F_CLAMP_R             (V4L2_CID_TVP7002_BASE + 13)
+#define V4L2_CID_TVP7002_CLAMP_START           (V4L2_CID_TVP7002_BASE + 14)
+#define V4L2_CID_TVP7002_CLAMP_W               (V4L2_CID_TVP7002_BASE + 15)
+#define V4L2_CID_TVP7002_B_COARSE_OFF          (V4L2_CID_TVP7002_BASE + 16)
+#define V4L2_CID_TVP7002_G_COARSE_OFF          (V4L2_CID_TVP7002_BASE + 17)
+#define V4L2_CID_TVP7002_R_COARSE_OFF          (V4L2_CID_TVP7002_BASE + 18)
+#define V4L2_CID_TVP7002_B_FINE_OFF            (V4L2_CID_TVP7002_BASE + 19)
+#define V4L2_CID_TVP7002_G_FINE_OFF            (V4L2_CID_TVP7002_BASE + 20)
+#define V4L2_CID_TVP7002_R_FINE_OFF            (V4L2_CID_TVP7002_BASE + 21)
+
 /*
  *     T U N I N G
  */
diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h
index 94e908c..b8c86d9 100644
--- a/include/media/v4l2-chip-ident.h
+++ b/include/media/v4l2-chip-ident.h
@@ -129,6 +129,9 @@ enum {
        V4L2_IDENT_SAA6752HS = 6752,
        V4L2_IDENT_SAA6752HS_AC3 = 6753,
 
+       /* module tvp7002: just ident 7002 */
+       V4L2_IDENT_TVP7002 = 7002,
+
        /* module adv7170: just ident 7170 */
        V4L2_IDENT_ADV7170 = 7170,
 
-- 
1.6.0.4


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to