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
