Hans, Murali would be discussing with you about the new API for HD resolutions. Until then we would be using the following patch from Murali that adds a separate header file for HD resolutions -
http://arago-project.org/git/projects/?p=linux-davinci.git;a=commitdiff;h=42f40088864730bceaaec0388600145e76d124c7 Since TVP7002 is mainly for HD resolutions, Santiago would be using the above patch to test TVP7002 driver on DM365. I understand, for upstream submission, the TVP7002 driver should be using the new API. Apart from this, the driver should be ready for review. Thanks Sneha > -----Original Message----- > From: davinci-linux-open-source-boun...@linux.davincidsp.com > [mailto:davinci-linux-open-source-boun...@linux.davincidsp.com] On Behalf > Of Santiago Nunez-Corrales > Sent: Friday, August 28, 2009 12:17 PM > To: Hans Verkuil > Cc: santiago.nu...@ridgerun.com; todd.fisc...@ridgerun.com; davinci-linux- > open-sou...@linux.davincidsp.com; clark.bec...@ridgerun.com > Subject: Re: [PATCH 1/6] Support for TVP7002 in v4l2 definitions > > Hans, > > > Thanks for your review. In fact, one of my main concerns after looking > at current viable > implementations for HD was the structure implied by v4l2_std_id -and its > organization- was > on how to improve the way controls and standards are defined. I am eager > to see the new > proposal after the Linux Plumbers Conference and keep in the loop, in > particular in the > new kernel abstraction mechanisms for low-level access controls. > > Now on the patch, ideally this patch is intended for being merged in the > davinci branch, but > I am aware that . Sandeep suggested me to send those patches to the > linux-media list too. > > Regards, > > Hans Verkuil wrote: > > 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, > >> > >> > > > > > > > > > > > -- > 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 > Davinci-linux-open-source@linux.davincidsp.com > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source