Hans, This is only temporary and will not merge to upstream. We need to work on the RFC for HD resolutions (I have responded to separately on this) before we can submit it upstream. But could you review rest of the stuffs so that it can be re-submitted later with the above RFC change? Santiago is working with me on this.
Murali Karicheri Software Design Engineer Texas Instruments Inc. Germantown, MD 20874 new phone: 301-407-9583 Old Phone : 301-515-3736 (will be deprecated) email: m-kariche...@ti.com >-----Original Message----- >From: Hans Verkuil [mailto:hverk...@xs4all.nl] >Sent: Friday, August 28, 2009 2:42 AM >To: davinci-linux-open-source@linux.davincidsp.com >Cc: santiago.nu...@ridgerun.com; Karicheri, Muralidharan; >clark.bec...@ridgerun.com; todd.fisc...@ridgerun.com >Subject: Re: [PATCH 1/6] Support for TVP7002 in v4l2 definitions > >On Friday 28 August 2009 02:16:47 santiago.nu...@ridgerun.com wrote: >> From: Santiago Nunez-Corrales <santiago.nu...@ridgerun.com> >> >> This patch provides required std and control definitions in TVP7002 >> within v4l2. > >Is this supposed to be merged into the mainline kernel? Or is this for a >non-mainline tree only? > >If you want to get it merged in the mainline, then you should be aware that >there will be a new API for HD resolutions. I hope to have a good proposal >available for discussion during the Linux Plumbers Conference in September. > >We are definitely not going to extend v4l2_std_id. That will be frozen for >use with PAL/SECAM/NTSC formats only. > >Note that I also have serious doubts about the usefulness of the decoder >controls. Is anyone actually interested in setting those? > >It will be another topic for discussion during that conference: how to give >applications access to these low-level controls and whether we even want >that. > >Regards, > > Hans > >> >> Signed-off-by: Santiago Nunez-Corrales <santiago.nu...@ridgerun.com> >> --- >> 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, >> > > > >-- >Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source