diff --git a/drivers/media/video/tuner-simple.c b/drivers/media/video/tuner-simple.c
index 985464f..e5fb743 100644
--- a/drivers/media/video/tuner-simple.c
+++ b/drivers/media/video/tuner-simple.c
@@ -79,17 +79,19 @@
 #define TUNER_PLL_LOCKED   0x40
 #define TUNER_STEREO_MK3   0x04
 
+#define TUNER_MAX_RANGES   3
+
 /* ---------------------------------------------------------------------- */
 
 struct tunertype
 {
 	char *name;
 
-	unsigned short thresh1;  /*  band switch VHF_LO <=> VHF_HI  */
-	unsigned short thresh2;  /*  band switch VHF_HI <=> UHF     */
-	unsigned char VHF_L;
-	unsigned char VHF_H;
-	unsigned char UHF;
+	int count;
+	struct {
+		unsigned short thresh;
+		unsigned char cb;
+	} ranges[TUNER_MAX_RANGES];
 	unsigned char config;
 };
 
@@ -102,305 +104,336 @@
 	/* 0-9 */
 	[TUNER_TEMIC_PAL] = { /* TEMIC PAL */
 		.name   = "Temic PAL (4002 FH5)",
-		.thresh1= 16 * 140.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0x02,
-		.VHF_H  = 0x04,
-		.UHF    = 0x01,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 140.25 /*MHz*/, 0x02, },
+			{ 16 * 463.25 /*MHz*/, 0x04, },
+			{ 16 * 999.99        , 0x01, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_PAL_I] = { /* Philips PAL_I */
 		.name   = "Philips PAL_I (FI1246 and compatibles)",
-		.thresh1= 16 * 140.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 140.25 /*MHz*/, 0xa0, },
+			{ 16 * 463.25 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_NTSC] = { /* Philips NTSC */
 		.name   = "Philips NTSC (FI1236,FM1236 and compatibles)",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 451.25 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0xa0, },
+			{ 16 * 451.25 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_SECAM] = { /* Philips SECAM */
 		.name   = "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)",
-		.thresh1= 16 * 168.25 /*MHz*/,
-		.thresh2= 16 * 447.25 /*MHz*/,
-		.VHF_L  = 0xa7,
-		.VHF_H  = 0x97,
-		.UHF    = 0x37,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 168.25 /*MHz*/, 0xa7, },
+			{ 16 * 447.25 /*MHz*/, 0x97, },
+			{ 16 * 999.99        , 0x37, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_ABSENT] = { /* Tuner Absent */
 		.name   = "NoTuner",
-		.thresh1= 0 /*MHz*/,
-		.thresh2= 0 /*MHz*/,
-		.VHF_L  = 0x00,
-		.VHF_H  = 0x00,
-		.UHF    = 0x00,
+		.count  = 1,
+		.ranges = {
+			{ 0, 0x00, },
+		},
 		.config = 0x00,
 	},
 	[TUNER_PHILIPS_PAL] = { /* Philips PAL */
 		.name   = "Philips PAL_BG (FI1216 and compatibles)",
-		.thresh1= 16 * 168.25 /*MHz*/,
-		.thresh2= 16 * 447.25 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 168.25 /*MHz*/, 0xa0, },
+			{ 16 * 447.25 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_NTSC] = { /* TEMIC NTSC */
 		.name   = "Temic NTSC (4032 FY5)",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0x02,
-		.VHF_H  = 0x04,
-		.UHF    = 0x01,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0x02, },
+			{ 16 * 463.25 /*MHz*/, 0x04, },
+			{ 16 * 999.99        , 0x01, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_PAL_I] = { /* TEMIC PAL_I */
 		.name   = "Temic PAL_I (4062 FY5)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0x02,
-		.VHF_H  = 0x04,
-		.UHF    = 0x01,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0x02, },
+			{ 16 * 450.00 /*MHz*/, 0x04, },
+			{ 16 * 999.99        , 0x01, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4036FY5_NTSC] = { /* TEMIC NTSC */
 		.name   = "Temic NTSC (4036 FY5)",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0xa0, },
+			{ 16 * 463.25 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_ALPS_TSBH1_NTSC] = { /* TEMIC NTSC */
 		.name   = "Alps HSBH1",
-		.thresh1= 16 * 137.25 /*MHz*/,
-		.thresh2= 16 * 385.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 137.25 /*MHz*/, 0x01, },
+			{ 16 * 385.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 
 	/* 10-19 */
 	[TUNER_ALPS_TSBE1_PAL] = { /* TEMIC PAL */
 		.name   = "Alps TSBE1",
-		.thresh1= 16 * 137.25 /*MHz*/,
-		.thresh2= 16 * 385.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 137.25 /*MHz*/, 0x01, },
+			{ 16 * 385.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_ALPS_TSBB5_PAL_I] = { /* Alps PAL_I */
 		.name   = "Alps TSBB5",
-		.thresh1= 16 * 133.25 /*MHz*/,
-		.thresh2= 16 * 351.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 133.25 /*MHz*/, 0x01, },
+			{ 16 * 351.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_ALPS_TSBE5_PAL] = { /* Alps PAL */
 		.name   = "Alps TSBE5",
-		.thresh1= 16 * 133.25 /*MHz*/,
-		.thresh2= 16 * 351.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 133.25 /*MHz*/, 0x01, },
+			{ 16 * 351.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_ALPS_TSBC5_PAL] = { /* Alps PAL */
 		.name   = "Alps TSBC5",
-		.thresh1= 16 * 133.25 /*MHz*/,
-		.thresh2= 16 * 351.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 133.25 /*MHz*/, 0x01, },
+			{ 16 * 351.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4006FH5_PAL] = { /* TEMIC PAL */
 		.name   = "Temic PAL_BG (4006FH5)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_ALPS_TSHC6_NTSC] = { /* Alps NTSC */
 		.name   = "Alps TSCH6",
-		.thresh1= 16 * 137.25 /*MHz*/,
-		.thresh2= 16 * 385.25 /*MHz*/,
-		.VHF_L  = 0x14,
-		.VHF_H  = 0x12,
-		.UHF    = 0x11,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 137.25 /*MHz*/, 0x14, },
+			{ 16 * 385.25 /*MHz*/, 0x12, },
+			{ 16 * 999.99        , 0x11, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_PAL_DK] = { /* TEMIC PAL */
 		.name   = "Temic PAL_DK (4016 FY5)",
-		.thresh1= 16 * 168.25 /*MHz*/,
-		.thresh2= 16 * 456.25 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 168.25 /*MHz*/, 0xa0, },
+			{ 16 * 456.25 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_NTSC_M] = { /* Philips NTSC */
 		.name   = "Philips NTSC_M (MK2)",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0xa0, },
+			{ 16 * 454.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4066FY5_PAL_I] = { /* TEMIC PAL_I */
 		.name   = "Temic PAL_I (4066 FY5)",
-		.thresh1= 16 * 169.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 169.00 /*MHz*/, 0xa0, },
+			{ 16 * 454.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4006FN5_MULTI_PAL] = { /* TEMIC PAL */
 		.name   = "Temic PAL* auto (4006 FN5)",
-		.thresh1= 16 * 169.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 169.00 /*MHz*/, 0xa0, },
+			{ 16 * 454.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 
 	/* 20-29 */
 	[TUNER_TEMIC_4009FR5_PAL] = { /* TEMIC PAL */
 		.name   = "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)",
-		.thresh1= 16 * 141.00 /*MHz*/,
-		.thresh2= 16 * 464.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 141.00 /*MHz*/, 0xa0, },
+			{ 16 * 464.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4039FR5_NTSC] = { /* TEMIC NTSC */
 		.name   = "Temic NTSC (4039 FR5)",
-		.thresh1= 16 * 158.00 /*MHz*/,
-		.thresh2= 16 * 453.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 158.00 /*MHz*/, 0xa0, },
+			{ 16 * 453.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4046FM5] = { /* TEMIC PAL */
 		.name   = "Temic PAL/SECAM multi (4046 FM5)",
-		.thresh1= 16 * 169.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 169.00 /*MHz*/, 0xa0, },
+			{ 16 * 454.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_PAL_DK] = { /* Philips PAL */
 		.name   = "Philips PAL_DK (FI1256 and compatibles)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_FQ1216ME] = { /* Philips PAL */
 		.name   = "Philips PAL/SECAM multi (FQ1216ME)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_PAL_I_FM] = { /* LGINNOTEK PAL_I */
 		.name   = "LG PAL_I+FM (TAPC-I001D)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_PAL_I] = { /* LGINNOTEK PAL_I */
 		.name   = "LG PAL_I (TAPC-I701D)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_NTSC_FM] = { /* LGINNOTEK NTSC */
 		.name   = "LG NTSC+FM (TPI8NSR01F)",
-		.thresh1= 16 * 210.00 /*MHz*/,
-		.thresh2= 16 * 497.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 210.00 /*MHz*/, 0xa0, },
+			{ 16 * 497.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_PAL_FM] = { /* LGINNOTEK PAL */
 		.name   = "LG PAL_BG+FM (TPI8PSB01D)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_PAL] = { /* LGINNOTEK PAL */
 		.name   = "LG PAL_BG (TPI8PSB11D)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0xa0, },
+			{ 16 * 450.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 
 	/* 30-39 */
 	[TUNER_TEMIC_4009FN5_MULTI_PAL_FM] = { /* TEMIC PAL */
 		.name   = "Temic PAL* auto + FM (4009 FN5)",
-		.thresh1= 16 * 141.00 /*MHz*/,
-		.thresh2= 16 * 464.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 141.00 /*MHz*/, 0xa0, },
+			{ 16 * 464.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_SHARP_2U5JF5540_NTSC] = { /* SHARP NTSC */
 		.name   = "SHARP NTSC_JP (2U5JF5540)",
-		.thresh1= 16 * 137.25 /*MHz*/,
-		.thresh2= 16 * 317.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 137.25 /*MHz*/, 0x01, },
+			{ 16 * 317.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_Samsung_PAL_TCPM9091PD27] = { /* Samsung PAL */
 		.name   = "Samsung PAL TCPM9091PD27",
-		.thresh1= 16 * 169 /*MHz*/,
-		.thresh2= 16 * 464 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 169 /*MHz*/, 0xa0, },
+			{ 16 * 464 /*MHz*/, 0x90, },
+			{ 16 * 999.99     , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_MT2032] = { /* Microtune PAL|NTSC */
@@ -408,186 +441,206 @@
 	  /* see mt20xx.c for details */ },
 	[TUNER_TEMIC_4106FH5] = { /* TEMIC PAL */
 		.name   = "Temic PAL_BG (4106 FH5)",
-		.thresh1= 16 * 141.00 /*MHz*/,
-		.thresh2= 16 * 464.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 141.00 /*MHz*/, 0xa0, },
+			{ 16 * 464.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4012FY5] = { /* TEMIC PAL */
 		.name   = "Temic PAL_DK/SECAM_L (4012 FY5)",
-		.thresh1= 16 * 140.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0x02,
-		.VHF_H  = 0x04,
-		.UHF    = 0x01,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 140.25 /*MHz*/, 0x02, },
+			{ 16 * 463.25 /*MHz*/, 0x04, },
+			{ 16 * 999.99        , 0x01, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEMIC_4136FY5] = { /* TEMIC NTSC */
 		.name   = "Temic NTSC (4136 FY5)",
-		.thresh1= 16 * 158.00 /*MHz*/,
-		.thresh2= 16 * 453.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 158.00 /*MHz*/, 0xa0, },
+			{ 16 * 453.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_PAL_NEW_TAPC] = { /* LGINNOTEK PAL */
 		.name   = "LG PAL (newer TAPC series)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0x01, },
+			{ 16 * 450.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_FM1216ME_MK3] = { /* Philips PAL */
 		.name   = "Philips PAL/SECAM multi (FM1216ME MK3)",
-		.thresh1= 16 * 158.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 158.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_NTSC_NEW_TAPC] = { /* LGINNOTEK NTSC */
 		.name   = "LG NTSC (newer TAPC series)",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0x01, },
+			{ 16 * 450.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 
 	/* 40-49 */
 	[TUNER_HITACHI_NTSC] = { /* HITACHI NTSC */
 		.name   = "HITACHI V7-J180AT",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0x01, },
+			{ 16 * 450.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_PAL_MK] = { /* Philips PAL */
 		.name   = "Philips PAL_MK (FI1216 MK)",
-		.thresh1= 16 * 140.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0xc2,
-		.UHF    = 0xcf,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 140.25 /*MHz*/, 0x01, },
+			{ 16 * 463.25 /*MHz*/, 0xc2, },
+			{ 16 * 999.99        , 0xcf, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_ATSC] = { /* Philips ATSC */
 		.name   = "Philips 1236D ATSC/NTSC dual in",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0xa0, },
+			{ 16 * 454.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_FM1236_MK3] = { /* Philips NTSC */
 		.name   = "Philips NTSC MK3 (FM1236MK3 or FM1236/F)",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_4IN1] = { /* Philips NTSC */
 		.name   = "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_MICROTUNE_4049FM5] = { /* Microtune PAL */
 		.name   = "Microtune 4049 FM5",
-		.thresh1= 16 * 141.00 /*MHz*/,
-		.thresh2= 16 * 464.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 141.00 /*MHz*/, 0xa0, },
+			{ 16 * 464.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PANASONIC_VP27] = { /* Panasonic NTSC */
 		.name   = "Panasonic VP27s/ENGE4324D",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 454.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0xce,
 	},
 	[TUNER_LG_NTSC_TAPE] = { /* LGINNOTEK NTSC */
 		.name   = "LG NTSC (TAPE series)",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TNF_8831BGFF] = { /* Philips PAL */
 		.name   = "Tenna TNF 8831 BGFF)",
-		.thresh1= 16 * 161.25 /*MHz*/,
-		.thresh2= 16 * 463.25 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 161.25 /*MHz*/, 0xa0, },
+			{ 16 * 463.25 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_MICROTUNE_4042FI5] = { /* Microtune NTSC */
 		.name   = "Microtune 4042 FI5 ATSC/NTSC dual in",
-		.thresh1= 16 * 162.00 /*MHz*/,
-		.thresh2= 16 * 457.00 /*MHz*/,
-		.VHF_L  = 0xa2,
-		.VHF_H  = 0x94,
-		.UHF    = 0x31,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 162.00 /*MHz*/, 0xa2, },
+			{ 16 * 457.00 /*MHz*/, 0x94, },
+			{ 16 * 999.99        , 0x31, },
+		},
 		.config = 0x8e,
 	},
 
 	/* 50-59 */
 	[TUNER_TCL_2002N] = { /* TCL NTSC */
 		.name   = "TCL 2002N",
-		.thresh1= 16 * 172.00 /*MHz*/,
-		.thresh2= 16 * 448.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 172.00 /*MHz*/, 0x01, },
+			{ 16 * 448.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_FM1256_IH3] = { /* Philips PAL */
 		.name   = "Philips PAL/SECAM_D (FM 1256 I-H3)",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_THOMSON_DTT7610] = { /* THOMSON ATSC */
 		.name   = "Thomson DTT 7610 (ATSC/NTSC)",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0x39,
-		.VHF_H  = 0x3a,
-		.UHF    = 0x3c,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0x39, },
+			{ 16 * 454.00 /*MHz*/, 0x3a, },
+			{ 16 * 999.99        , 0x3c, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_FQ1286] = { /* Philips NTSC */
 		.name   = "Philips FQ1286",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0x41,
-		.VHF_H  = 0x42,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x41, },
+			{ 16 * 454.00 /*MHz*/, 0x42, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_TDA8290] = { /* Philips PAL|NTSC */
@@ -595,47 +648,52 @@
 	  /* see tda8290.c for details */ },
 	[TUNER_TCL_2002MB] = { /* TCL PAL */
 		.name   = "TCL 2002MB",
-		.thresh1= 16 * 170.00 /*MHz*/,
-		.thresh2= 16 * 450.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 170.00 /*MHz*/, 0x01, },
+			{ 16 * 450.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0xce,
 	},
 	[TUNER_PHILIPS_FQ1216AME_MK4] = { /* Philips PAL */
 		.name   = "Philips PAL/SECAM multi (FQ1216AME MK4)",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0xce,
 	},
 	[TUNER_PHILIPS_FQ1236A_MK4] = { /* Philips NTSC */
 		.name   = "Philips FQ1236A MK4",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 442.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_YMEC_TVF_8531MF] = { /* Philips NTSC */
 		.name   = "Ymec TVision TVF-8531MF/8831MF/8731MF",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0xa0,
-		.VHF_H  = 0x90,
-		.UHF    = 0x30,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0xa0, },
+			{ 16 * 454.00 /*MHz*/, 0x90, },
+			{ 16 * 999.99        , 0x30, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_YMEC_TVF_5533MF] = { /* Philips NTSC */
 		.name   = "Ymec TVision TVF-5533MF",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01, },
+			{ 16 * 454.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 
@@ -643,20 +701,22 @@
 	[TUNER_THOMSON_DTT761X] = { /* THOMSON ATSC */
 		/* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
 		.name   = "Thomson DTT 761X (ATSC/NTSC)",
-		.thresh1= 16 * 145.25 /*MHz*/,
-		.thresh2= 16 * 415.25 /*MHz*/,
-		.VHF_L  = 0x39,
-		.VHF_H  = 0x3a,
-		.UHF    = 0x3c,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 145.25 /*MHz*/, 0x39, },
+			{ 16 * 415.25 /*MHz*/, 0x3a, },
+			{ 16 * 999.99        , 0x3c, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TENA_9533_DI] = { /* Philips PAL */
 		.name   = "Tena TNF9533-D/IF/TNF9533-B/DF",
-		.thresh1= 16 * 160.25 /*MHz*/,
-		.thresh2= 16 * 464.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.25 /*MHz*/, 0x01, },
+			{ 16 * 464.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_TEA5767] = { /* Philips RADIO */
@@ -664,65 +724,72 @@
 	  /* see tea5767.c for details */},
 	[TUNER_PHILIPS_FMD1216ME_MK3] = { /* Philips PAL */
 		.name   = "Philips FMD1216ME MK3 Hybrid Tuner",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0x51,
-		.VHF_H  = 0x52,
-		.UHF    = 0x54,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x51, },
+			{ 16 * 442.00 /*MHz*/, 0x52, },
+			{ 16 * 999.99        , 0x54, },
+		},
 		.config = 0x86,
 	},
 	[TUNER_LG_TDVS_H062F] = { /* LGINNOTEK ATSC */
 		.name   = "LG TDVS-H062F/TUA6034",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 455.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0x01 },
+			{ 16 * 455.00 /*MHz*/, 0x02 },
+			{ 16 * 999.99        , 0x04 },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_YMEC_TVF66T5_B_DFF] = { /* Philips PAL */
 		.name   = "Ymec TVF66T5-B/DFF",
-		.thresh1= 16 * 160.25 /*MHz*/,
-		.thresh2= 16 * 464.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.25 /*MHz*/, 0x01, },
+			{ 16 * 464.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_LG_NTSC_TALN_MINI] = { /* LGINNOTEK NTSC */
 		.name   = "LG NTSC (TALN mini series)",
-		.thresh1= 16 * 137.25 /*MHz*/,
-		.thresh2= 16 * 373.25 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x08,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 137.25 /*MHz*/, 0x01, },
+			{ 16 * 373.25 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x08, },
+		},
 		.config = 0x8e,
 	},
 	[TUNER_PHILIPS_TD1316] = { /* Philips PAL */
 		.name   = "Philips TD1316 Hybrid Tuner",
-		.thresh1= 16 * 160.00 /*MHz*/,
-		.thresh2= 16 * 442.00 /*MHz*/,
-		.VHF_L  = 0xa1,
-		.VHF_H  = 0xa2,
-		.UHF    = 0xa4,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 160.00 /*MHz*/, 0xa1, },
+			{ 16 * 442.00 /*MHz*/, 0xa2, },
+			{ 16 * 999.99        , 0xa4, },
+		},
 		.config = 0xc8,
 	},
 	[TUNER_PHILIPS_TUV1236D] = { /* Philips ATSC */
 		.name   = "Philips TUV1236D ATSC/NTSC dual in",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0x01, },
+			{ 16 * 454.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0xce,
 	},
 	[TUNER_TNF_5335MF] = { /* Philips NTSC */
 		.name   = "Tena TNF 5335 MF",
-		.thresh1= 16 * 157.25 /*MHz*/,
-		.thresh2= 16 * 454.00 /*MHz*/,
-		.VHF_L  = 0x01,
-		.VHF_H  = 0x02,
-		.UHF    = 0x04,
+		.count  = 3,
+		.ranges = {
+			{ 16 * 157.25 /*MHz*/, 0x01, },
+			{ 16 * 454.00 /*MHz*/, 0x02, },
+			{ 16 * 999.99        , 0x04, },
+		},
 		.config = 0x8e,
 	},
 };
@@ -776,20 +843,19 @@
 	u16 div;
 	struct tunertype *tun;
 	unsigned char buffer[4];
-	int rc, IFPCoff;
+	int rc, IFPCoff, i;
 
 	tun = &tuners[t->type];
-	if (freq < tun->thresh1) {
-		config = tun->VHF_L;
-		tuner_dbg("tv: VHF lowrange\n");
-	} else if (freq < tun->thresh2) {
-		config = tun->VHF_H;
-		tuner_dbg("tv: VHF high range\n");
-	} else {
-		config = tun->UHF;
-		tuner_dbg("tv: UHF range\n");
+	for (i = 0; i < tun->count; i++) {
+		if (freq > tun->ranges[i].thresh)
+			continue;
+		break;
 	}
-
+	config = tun->ranges[i].cb;
+	/*  i == 0 -> VHF_LO  */
+	/*  i == 1 -> VHF_HI  */
+	/*  i == 2 -> UHF     */
+	tuner_dbg("tv: range %d\n",i);
 
 	/* tv norm specific stuff for multi-norm tuners */
 	switch (t->type) {
