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,
 
