Sandeep,
Thanks for the review. I will send the patches to the linux-media list.
Regards.
Paulraj, Sandeep wrote:
I think you should have sent these patches to [email protected]
as well.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf
Of [email protected]
Sent: Thursday, August 27, 2009 8:17 PM
To: Karicheri, Muralidharan
Cc: [email protected];
[email protected]; Santiago Nunez-Corrales;
[email protected]
Subject: [PATCH 1/6] Support for TVP7002 in v4l2 definitions
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
--
Santiago Nunez-Corrales, Eng.
RidgeRun Engineering, LLC
Guayabos, Curridabat
San Jose, Costa Rica
+(506) 2271 1487
+(506) 8313 0536
http://www.ridgerun.com
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source