aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/tuner-simple.c306
1 files changed, 161 insertions, 145 deletions
diff --git a/drivers/media/video/tuner-simple.c b/drivers/media/video/tuner-simple.c
index e0c9fdb9914..feaed92e2a6 100644
--- a/drivers/media/video/tuner-simple.c
+++ b/drivers/media/video/tuner-simple.c
@@ -80,8 +80,6 @@
80struct tunertype 80struct tunertype
81{ 81{
82 char *name; 82 char *name;
83 unsigned char Vendor;
84 unsigned char Type;
85 83
86 unsigned short thresh1; /* band switch VHF_LO <=> VHF_HI */ 84 unsigned short thresh1; /* band switch VHF_LO <=> VHF_HI */
87 unsigned short thresh2; /* band switch VHF_HI <=> UHF */ 85 unsigned short thresh2; /* band switch VHF_HI <=> UHF */
@@ -89,10 +87,6 @@ struct tunertype
89 unsigned char VHF_H; 87 unsigned char VHF_H;
90 unsigned char UHF; 88 unsigned char UHF;
91 unsigned char config; 89 unsigned char config;
92 unsigned short IFPCoff; /* 622.4=16*38.90 MHz PAL,
93 732 =16*45.75 NTSCi,
94 940 =16*58.75 NTSC-Japan
95 704 =16*44 ATSC */
96}; 90};
97 91
98/* 92/*
@@ -102,158 +96,158 @@ struct tunertype
102 */ 96 */
103static struct tunertype tuners[] = { 97static struct tunertype tuners[] = {
104 /* 0-9 */ 98 /* 0-9 */
105 { "Temic PAL (4002 FH5)", TEMIC, PAL, 99 { "Temic PAL (4002 FH5)", /* TEMIC PAL */
106 16*140.25,16*463.25,0x02,0x04,0x01,0x8e,623}, 100 16*140.25, 16*463.25, 0x02, 0x04, 0x01, 0x8e},
107 { "Philips PAL_I (FI1246 and compatibles)", Philips, PAL_I, 101 { "Philips PAL_I (FI1246 and compatibles)", /* Philips PAL_I */
108 16*140.25,16*463.25,0xa0,0x90,0x30,0x8e,623}, 102 16*140.25, 16*463.25, 0xa0, 0x90, 0x30, 0x8e},
109 { "Philips NTSC (FI1236,FM1236 and compatibles)", Philips, NTSC, 103 { "Philips NTSC (FI1236,FM1236 and compatibles)", /* Philips NTSC */
110 16*157.25,16*451.25,0xA0,0x90,0x30,0x8e,732}, 104 16*157.25, 16*451.25, 0xA0, 0x90, 0x30, 0x8e},
111 { "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)", Philips, SECAM, 105 { "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)",/* Philips SECAM */
112 16*168.25,16*447.25,0xA7,0x97,0x37,0x8e,623}, 106 16*168.25, 16*447.25, 0xA7, 0x97, 0x37, 0x8e},
113 { "NoTuner", NoTuner, NOTUNER, 107 { "NoTuner", /* NoTuner NOTUNER */
114 0,0,0x00,0x00,0x00,0x00,0x00}, 108 0, 0, 0x00, 0x00, 0x00, 0x00},
115 { "Philips PAL_BG (FI1216 and compatibles)", Philips, PAL, 109 { "Philips PAL_BG (FI1216 and compatibles)", /* Philips PAL */
116 16*168.25,16*447.25,0xA0,0x90,0x30,0x8e,623}, 110 16*168.25, 16*447.25, 0xA0, 0x90, 0x30, 0x8e},
117 { "Temic NTSC (4032 FY5)", TEMIC, NTSC, 111 { "Temic NTSC (4032 FY5)", /* TEMIC NTSC */
118 16*157.25,16*463.25,0x02,0x04,0x01,0x8e,732}, 112 16*157.25, 16*463.25, 0x02, 0x04, 0x01, 0x8e},
119 { "Temic PAL_I (4062 FY5)", TEMIC, PAL_I, 113 { "Temic PAL_I (4062 FY5)", /* TEMIC PAL_I */
120 16*170.00,16*450.00,0x02,0x04,0x01,0x8e,623}, 114 16*170.00, 16*450.00, 0x02, 0x04, 0x01, 0x8e},
121 { "Temic NTSC (4036 FY5)", TEMIC, NTSC, 115 { "Temic NTSC (4036 FY5)", /* TEMIC NTSC */
122 16*157.25,16*463.25,0xa0,0x90,0x30,0x8e,732}, 116 16*157.25, 16*463.25, 0xa0, 0x90, 0x30, 0x8e},
123 { "Alps HSBH1", TEMIC, NTSC, 117 { "Alps HSBH1", /* TEMIC NTSC */
124 16*137.25,16*385.25,0x01,0x02,0x08,0x8e,732}, 118 16*137.25, 16*385.25, 0x01, 0x02, 0x08, 0x8e},
125 119
126 /* 10-19 */ 120 /* 10-19 */
127 { "Alps TSBE1", TEMIC, PAL, 121 { "Alps TSBE1", /* TEMIC PAL */
128 16*137.25,16*385.25,0x01,0x02,0x08,0x8e,732}, 122 16*137.25, 16*385.25, 0x01, 0x02, 0x08, 0x8e},
129 { "Alps TSBB5", Alps, PAL_I, /* tested (UK UHF) with Modulartech MM205 */ 123 { "Alps TSBB5", /* Alps PAL_I */
130 16*133.25,16*351.25,0x01,0x02,0x08,0x8e,632}, 124 16*133.25, 16*351.25, 0x01, 0x02, 0x08, 0x8e},
131 { "Alps TSBE5", Alps, PAL, /* untested - data sheet guess. Only IF differs. */ 125 { "Alps TSBE5", /* Alps PAL */
132 16*133.25,16*351.25,0x01,0x02,0x08,0x8e,622}, 126 16*133.25, 16*351.25, 0x01, 0x02, 0x08, 0x8e},
133 { "Alps TSBC5", Alps, PAL, /* untested - data sheet guess. Only IF differs. */ 127 { "Alps TSBC5", /* Alps PAL */
134 16*133.25,16*351.25,0x01,0x02,0x08,0x8e,608}, 128 16*133.25, 16*351.25, 0x01, 0x02, 0x08, 0x8e},
135 { "Temic PAL_BG (4006FH5)", TEMIC, PAL, 129 { "Temic PAL_BG (4006FH5)", /* TEMIC PAL */
136 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 130 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
137 { "Alps TSCH6", Alps, NTSC, 131 { "Alps TSCH6", /* Alps NTSC */
138 16*137.25,16*385.25,0x14,0x12,0x11,0x8e,732}, 132 16*137.25, 16*385.25, 0x14, 0x12, 0x11, 0x8e},
139 { "Temic PAL_DK (4016 FY5)", TEMIC, PAL, 133 { "Temic PAL_DK (4016 FY5)", /* TEMIC PAL */
140 16*168.25,16*456.25,0xa0,0x90,0x30,0x8e,623}, 134 16*168.25, 16*456.25, 0xa0, 0x90, 0x30, 0x8e},
141 { "Philips NTSC_M (MK2)", Philips, NTSC, 135 { "Philips NTSC_M (MK2)", /* Philips NTSC */
142 16*160.00,16*454.00,0xa0,0x90,0x30,0x8e,732}, 136 16*160.00, 16*454.00, 0xa0, 0x90, 0x30, 0x8e},
143 { "Temic PAL_I (4066 FY5)", TEMIC, PAL_I, 137 { "Temic PAL_I (4066 FY5)", /* TEMIC PAL_I */
144 16*169.00, 16*454.00, 0xa0,0x90,0x30,0x8e,623}, 138 16*169.00, 16*454.00, 0xa0, 0x90, 0x30, 0x8e},
145 { "Temic PAL* auto (4006 FN5)", TEMIC, PAL, 139 { "Temic PAL* auto (4006 FN5)", /* TEMIC PAL */
146 16*169.00, 16*454.00, 0xa0,0x90,0x30,0x8e,623}, 140 16*169.00, 16*454.00, 0xa0, 0x90, 0x30, 0x8e},
147 141
148 /* 20-29 */ 142 /* 20-29 */
149 { "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)", TEMIC, PAL, 143 { "Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)", /* TEMIC PAL */
150 16*141.00, 16*464.00, 0xa0,0x90,0x30,0x8e,623}, 144 16*141.00, 16*464.00, 0xa0, 0x90, 0x30, 0x8e},
151 { "Temic NTSC (4039 FR5)", TEMIC, NTSC, 145 { "Temic NTSC (4039 FR5)", /* TEMIC NTSC */
152 16*158.00, 16*453.00, 0xa0,0x90,0x30,0x8e,732}, 146 16*158.00, 16*453.00, 0xa0, 0x90, 0x30, 0x8e},
153 { "Temic PAL/SECAM multi (4046 FM5)", TEMIC, PAL, 147 { "Temic PAL/SECAM multi (4046 FM5)", /* TEMIC PAL */
154 16*169.00, 16*454.00, 0xa0,0x90,0x30,0x8e,623}, 148 16*169.00, 16*454.00, 0xa0, 0x90, 0x30, 0x8e},
155 { "Philips PAL_DK (FI1256 and compatibles)", Philips, PAL, 149 { "Philips PAL_DK (FI1256 and compatibles)", /* Philips PAL */
156 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 150 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
157 { "Philips PAL/SECAM multi (FQ1216ME)", Philips, PAL, 151 { "Philips PAL/SECAM multi (FQ1216ME)", /* Philips PAL */
158 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 152 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
159 { "LG PAL_I+FM (TAPC-I001D)", LGINNOTEK, PAL_I, 153 { "LG PAL_I+FM (TAPC-I001D)", /* LGINNOTEK PAL_I */
160 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 154 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
161 { "LG PAL_I (TAPC-I701D)", LGINNOTEK, PAL_I, 155 { "LG PAL_I (TAPC-I701D)", /* LGINNOTEK PAL_I */
162 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 156 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
163 { "LG NTSC+FM (TPI8NSR01F)", LGINNOTEK, NTSC, 157 { "LG NTSC+FM (TPI8NSR01F)", /* LGINNOTEK NTSC */
164 16*210.00,16*497.00,0xa0,0x90,0x30,0x8e,732}, 158 16*210.00, 16*497.00, 0xa0, 0x90, 0x30, 0x8e},
165 { "LG PAL_BG+FM (TPI8PSB01D)", LGINNOTEK, PAL, 159 { "LG PAL_BG+FM (TPI8PSB01D)", /* LGINNOTEK PAL */
166 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 160 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
167 { "LG PAL_BG (TPI8PSB11D)", LGINNOTEK, PAL, 161 { "LG PAL_BG (TPI8PSB11D)", /* LGINNOTEK PAL */
168 16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623}, 162 16*170.00, 16*450.00, 0xa0, 0x90, 0x30, 0x8e},
169 163
170 /* 30-39 */ 164 /* 30-39 */
171 { "Temic PAL* auto + FM (4009 FN5)", TEMIC, PAL, 165 { "Temic PAL* auto + FM (4009 FN5)", /* TEMIC PAL */
172 16*141.00, 16*464.00, 0xa0,0x90,0x30,0x8e,623}, 166 16*141.00, 16*464.00, 0xa0, 0x90, 0x30, 0x8e},
173 { "SHARP NTSC_JP (2U5JF5540)", SHARP, NTSC, /* 940=16*58.75 NTSC@Japan */ 167 { "SHARP NTSC_JP (2U5JF5540)", /* SHARP NTSC */
174 16*137.25,16*317.25,0x01,0x02,0x08,0x8e,940 }, 168 16*137.25, 16*317.25, 0x01, 0x02, 0x08, 0x8e},
175 { "Samsung PAL TCPM9091PD27", Samsung, PAL, /* from sourceforge v3tv */ 169 { "Samsung PAL TCPM9091PD27", /* Samsung PAL */
176 16*169,16*464,0xA0,0x90,0x30,0x8e,623}, 170 16*169, 16*464, 0xA0, 0x90, 0x30, 0x8e},
177 { "MT20xx universal", Microtune, PAL|NTSC, 171 { "MT20xx universal", /* Microtune PAL|NTSC */
178 /* see mt20xx.c for details */ }, 172 /* see mt20xx.c for details */ },
179 { "Temic PAL_BG (4106 FH5)", TEMIC, PAL, 173 { "Temic PAL_BG (4106 FH5)", /* TEMIC PAL */
180 16*141.00, 16*464.00, 0xa0,0x90,0x30,0x8e,623}, 174 16*141.00, 16*464.00, 0xa0, 0x90, 0x30, 0x8e},
181 { "Temic PAL_DK/SECAM_L (4012 FY5)", TEMIC, PAL, 175 { "Temic PAL_DK/SECAM_L (4012 FY5)", /* TEMIC PAL */
182 16*140.25, 16*463.25, 0x02,0x04,0x01,0x8e,623}, 176 16*140.25, 16*463.25, 0x02, 0x04, 0x01, 0x8e},
183 { "Temic NTSC (4136 FY5)", TEMIC, NTSC, 177 { "Temic NTSC (4136 FY5)", /* TEMIC NTSC */
184 16*158.00, 16*453.00, 0xa0,0x90,0x30,0x8e,732}, 178 16*158.00, 16*453.00, 0xa0, 0x90, 0x30, 0x8e},
185 { "LG PAL (newer TAPC series)", LGINNOTEK, PAL, 179 { "LG PAL (newer TAPC series)", /* LGINNOTEK PAL */
186 16*170.00, 16*450.00, 0x01,0x02,0x08,0x8e,623}, 180 16*170.00, 16*450.00, 0x01, 0x02, 0x08, 0x8e},
187 { "Philips PAL/SECAM multi (FM1216ME MK3)", Philips, PAL, 181 { "Philips PAL/SECAM multi (FM1216ME MK3)", /* Philips PAL */
188 16*158.00,16*442.00,0x01,0x02,0x04,0x8e,623 }, 182 16*158.00, 16*442.00, 0x01, 0x02, 0x04, 0x8e},
189 { "LG NTSC (newer TAPC series)", LGINNOTEK, NTSC, 183 { "LG NTSC (newer TAPC series)", /* LGINNOTEK NTSC */
190 16*170.00, 16*450.00, 0x01,0x02,0x08,0x8e,732}, 184 16*170.00, 16*450.00, 0x01, 0x02, 0x08, 0x8e},
191 185
192 /* 40-49 */ 186 /* 40-49 */
193 { "HITACHI V7-J180AT", HITACHI, NTSC, 187 { "HITACHI V7-J180AT", /* HITACHI NTSC */
194 16*170.00, 16*450.00, 0x01,0x02,0x08,0x8e,940 }, 188 16*170.00, 16*450.00, 0x01, 0x02, 0x08, 0x8e},
195 { "Philips PAL_MK (FI1216 MK)", Philips, PAL, 189 { "Philips PAL_MK (FI1216 MK)", /* Philips PAL */
196 16*140.25,16*463.25,0x01,0xc2,0xcf,0x8e,623}, 190 16*140.25, 16*463.25, 0x01, 0xc2, 0xcf, 0x8e},
197 { "Philips 1236D ATSC/NTSC daul in", Philips, ATSC, 191 { "Philips 1236D ATSC/NTSC daul in", /* Philips ATSC */
198 16*157.25,16*454.00,0xa0,0x90,0x30,0x8e,732}, 192 16*157.25, 16*454.00, 0xa0, 0x90, 0x30, 0x8e},
199 { "Philips NTSC MK3 (FM1236MK3 or FM1236/F)", Philips, NTSC, 193 { "Philips NTSC MK3 (FM1236MK3 or FM1236/F)", /* Philips NTSC */
200 16*160.00,16*442.00,0x01,0x02,0x04,0x8e,732}, 194 16*160.00, 16*442.00, 0x01, 0x02, 0x04, 0x8e},
201 { "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)", Philips, NTSC, 195 { "Philips 4 in 1 (ATI TV Wonder Pro/Conexant)", /* Philips NTSC */
202 16*160.00,16*442.00,0x01,0x02,0x04,0x8e,732}, 196 16*160.00, 16*442.00, 0x01, 0x02, 0x04, 0x8e},
203 { "Microtune 4049 FM5", Microtune, PAL, 197 { "Microtune 4049 FM5", /* Microtune PAL */
204 16*141.00,16*464.00,0xa0,0x90,0x30,0x8e,623}, 198 16*141.00, 16*464.00, 0xa0, 0x90, 0x30, 0x8e},
205 { "Panasonic VP27s/ENGE4324D", Panasonic, NTSC, 199 { "Panasonic VP27s/ENGE4324D", /* Panasonic NTSC */
206 16*160.00,16*454.00,0x01,0x02,0x08,0xce,940}, 200 16*160.00, 16*454.00, 0x01, 0x02, 0x08, 0xce},
207 { "LG NTSC (TAPE series)", LGINNOTEK, NTSC, 201 { "LG NTSC (TAPE series)", /* LGINNOTEK NTSC */
208 16*160.00,16*442.00,0x01,0x02,0x04,0x8e,732 }, 202 16*160.00, 16*442.00, 0x01, 0x02, 0x04, 0x8e},
209 { "Tenna TNF 8831 BGFF)", Philips, PAL, 203 { "Tenna TNF 8831 BGFF)", /* Philips PAL */
210 16*161.25,16*463.25,0xa0,0x90,0x30,0x8e,623}, 204 16*161.25, 16*463.25, 0xa0, 0x90, 0x30, 0x8e},
211 { "Microtune 4042 FI5 ATSC/NTSC dual in", Microtune, NTSC, 205 { "Microtune 4042 FI5 ATSC/NTSC dual in", /* Microtune NTSC */
212 16*162.00,16*457.00,0xa2,0x94,0x31,0x8e,732}, 206 16*162.00, 16*457.00, 0xa2, 0x94, 0x31, 0x8e},
213 207
214 /* 50-59 */ 208 /* 50-59 */
215 { "TCL 2002N", TCL, NTSC, 209 { "TCL 2002N", /* TCL NTSC */
216 16*172.00,16*448.00,0x01,0x02,0x08,0x8e,732}, 210 16*172.00, 16*448.00, 0x01, 0x02, 0x08, 0x8e},
217 { "Philips PAL/SECAM_D (FM 1256 I-H3)", Philips, PAL, 211 { "Philips PAL/SECAM_D (FM 1256 I-H3)", /* Philips PAL */
218 16*160.00,16*442.00,0x01,0x02,0x04,0x8e,623 }, 212 16*160.00, 16*442.00, 0x01, 0x02, 0x04, 0x8e},
219 { "Thomson DDT 7610 (ATSC/NTSC)", THOMSON, ATSC, 213 { "Thomson DDT 7610 (ATSC/NTSC)", /* THOMSON ATSC */
220 16*157.25,16*454.00,0x39,0x3a,0x3c,0x8e,732}, 214 16*157.25, 16*454.00, 0x39, 0x3a, 0x3c, 0x8e},
221 { "Philips FQ1286", Philips, NTSC, 215 { "Philips FQ1286", /* Philips NTSC */
222 16*160.00,16*454.00,0x41,0x42,0x04,0x8e,940}, /* UHF band untested */ 216 16*160.00, 16*454.00, 0x41, 0x42, 0x04, 0x8e},
223 { "tda8290+75", Philips, PAL|NTSC, 217 { "tda8290+75", /* Philips PAL|NTSC */
224 /* see tda8290.c for details */ }, 218 /* see tda8290.c for details */ },
225 { "TCL 2002MB", TCL, PAL, 219 { "TCL 2002MB", /* TCL PAL */
226 16*170.00, 16*450.00, 0x01,0x02,0x08,0xce,623}, 220 16*170.00, 16*450.00, 0x01, 0x02, 0x08, 0xce},
227 { "Philips PAL/SECAM multi (FQ1216AME MK4)", Philips, PAL, 221 { "Philips PAL/SECAM multi (FQ1216AME MK4)", /* Philips PAL */
228 16*160.00,16*442.00,0x01,0x02,0x04,0xce,623 }, 222 16*160.00, 16*442.00, 0x01, 0x02, 0x04, 0xce},
229 { "Philips FQ1236A MK4", Philips, NTSC, 223 { "Philips FQ1236A MK4", /* Philips NTSC */
230 16*160.00,16*442.00,0x01,0x02,0x04,0x8e,732 }, 224 16*160.00, 16*442.00, 0x01, 0x02, 0x04, 0x8e},
231 { "Ymec TVision TVF-8531MF/8831MF/8731MF", Philips, NTSC, 225 { "Ymec TVision TVF-8531MF/8831MF/8731MF", /* Philips NTSC */
232 16*160.00,16*454.00,0xa0,0x90,0x30,0x8e,732}, 226 16*160.00, 16*454.00, 0xa0, 0x90, 0x30, 0x8e},
233 { "Ymec TVision TVF-5533MF", Philips, NTSC, 227 { "Ymec TVision TVF-5533MF", /* Philips NTSC */
234 16*160.00,16*454.00,0x01,0x02,0x04,0x8e,732}, 228 16*160.00, 16*454.00, 0x01, 0x02, 0x04, 0x8e},
235 229
236 /* 60-69 */ 230 /* 60-69 */
237 { "Thomson DDT 7611 (ATSC/NTSC)", THOMSON, ATSC, 231 { "Thomson DDT 7611 (ATSC/NTSC)", /* THOMSON ATSC */
238 16*157.25,16*454.00,0x39,0x3a,0x3c,0x8e,732}, 232 16*157.25, 16*454.00, 0x39, 0x3a, 0x3c, 0x8e},
239 { "Tena TNF9533-D/IF/TNF9533-B/DF", Philips, PAL, 233 { "Tena TNF9533-D/IF/TNF9533-B/DF", /* Philips PAL */
240 16*160.25,16*464.25,0x01,0x02,0x04,0x8e,623}, 234 16*160.25, 16*464.25, 0x01, 0x02, 0x04, 0x8e},
241 { "Philips TEA5767HN FM Radio", Philips, RADIO, 235 { "Philips TEA5767HN FM Radio", /* Philips RADIO */
242 /* see tea5767.c for details */}, 236 /* see tea5767.c for details */},
243 { "Philips FMD1216ME MK3 Hybrid Tuner", Philips, PAL, 237 { "Philips FMD1216ME MK3 Hybrid Tuner", /* Philips PAL */
244 16*160.00,16*442.00,0x51,0x52,0x54,0x86,623 }, 238 16*160.00, 16*442.00, 0x51, 0x52, 0x54, 0x86},
245 { "LG TDVS-H062F/TUA6034", LGINNOTEK, ATSC, 239 { "LG TDVS-H062F/TUA6034", /* LGINNOTEK ATSC */
246 16*160.00,16*455.00,0x01,0x02,0x04,0x8e,732}, 240 16*160.00, 16*455.00, 0x01, 0x02, 0x04, 0x8e},
247 { "Ymec TVF66T5-B/DFF", Philips, PAL, 241 { "Ymec TVF66T5-B/DFF", /* Philips PAL */
248 16*160.25,16*464.25,0x01,0x02,0x08,0x8e,623}, 242 16*160.25, 16*464.25, 0x01, 0x02, 0x08, 0x8e},
249 { "LG NTSC (TALN mini series)", LGINNOTEK, NTSC, 243 { "LG NTSC (TALN mini series)", /* LGINNOTEK NTSC */
250 16*137.25,16*373.25,0x01,0x02,0x08,0x8e,732 }, 244 16*137.25, 16*373.25, 0x01, 0x02, 0x08, 0x8e},
251 { "Philips TD1316 Hybrid Tuner", Philips, PAL, 245 { "Philips TD1316 Hybrid Tuner", /* Philips PAL */
252 16*160.00,16*442.00,0xa1,0xa2,0xa4,0xc8,623 }, 246 16*160.00, 16*442.00, 0xa1, 0xa2, 0xa4, 0xc8},
253 { "Philips TUV1236D ATSC/NTSC dual in", Philips, ATSC, 247 { "Philips TUV1236D ATSC/NTSC dual in", /* Philips ATSC */
254 16*157.25,16*454.00,0x01,0x02,0x04,0xce,732 }, 248 16*157.25, 16*454.00, 0x01, 0x02, 0x04, 0xce},
255 { "Tena TNF 5335 MF", Philips, NTSC, 249 { "Tena TNF 5335 MF", /* Philips NTSC */
256 16*157.25,16*454.00,0x01,0x02,0x04,0x8e,732 }, 250 16*157.25, 16*454.00, 0x01, 0x02, 0x04, 0x8e},
257}; 251};
258 252
259unsigned const int tuner_count = ARRAY_SIZE(tuners); 253unsigned const int tuner_count = ARRAY_SIZE(tuners);
@@ -305,7 +299,7 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
305 u16 div; 299 u16 div;
306 struct tunertype *tun; 300 struct tunertype *tun;
307 unsigned char buffer[4]; 301 unsigned char buffer[4];
308 int rc; 302 int rc, IFPCoff;
309 303
310 tun = &tuners[t->type]; 304 tun = &tuners[t->type];
311 if (freq < tun->thresh1) { 305 if (freq < tun->thresh1) {
@@ -420,7 +414,29 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
420 * frequency in case (wanted frequency < current frequency). 414 * frequency in case (wanted frequency < current frequency).
421 */ 415 */
422 416
423 div=freq + tun->IFPCoff; 417 /* IFPCoff = Video Intermediate Frequency - Vif:
418 940 =16*58.75 NTSC/J (Japan)
419 732 =16*45.75 M/N STD
420 704 =16*44 ATSC (at DVB code)
421 632 =16*39.50 I U.K.
422 622.4=16*38.90 B/G D/K I, L STD
423 592 =16*37.00 D China
424 590 =16.36.875 B Australia
425 543.2=16*33.95 L' STD
426 171.2=16*10.70 FM Radio (at set_radio_freq)
427 */
428
429 if (t->std & V4L2_STD_NTSC_M_JP) {
430 IFPCoff = 940;
431 } else if (t->std & V4L2_STD_MN) {
432 IFPCoff = 732;
433 } else if (t->std & V4L2_STD_SECAM_LC) {
434 IFPCoff = 543;
435 } else {
436 IFPCoff = 623;
437 }
438
439 div=freq + IFPCoff;
424 if (t->type == TUNER_PHILIPS_SECAM && freq < t->freq) { 440 if (t->type == TUNER_PHILIPS_SECAM && freq < t->freq) {
425 buffer[0] = tun->config; 441 buffer[0] = tun->config;
426 buffer[1] = config; 442 buffer[1] = config;