diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-cards.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 587 |
1 files changed, 574 insertions, 13 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index acc7a4335e23..663d03e5bc67 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -191,10 +191,14 @@ struct saa7134_board saa7134_boards[] = { | |||
191 | .amux = TV, | 191 | .amux = TV, |
192 | .tv = 1, | 192 | .tv = 1, |
193 | },{ | 193 | },{ |
194 | .name = name_comp1, | 194 | .name = name_comp1, /* Composite signal on S-Video input */ |
195 | .vmux = 0, | 195 | .vmux = 0, |
196 | .amux = LINE2, | 196 | .amux = LINE2, |
197 | },{ | 197 | },{ |
198 | .name = name_comp2, /* Composite input */ | ||
199 | .vmux = 3, | ||
200 | .amux = LINE2, | ||
201 | },{ | ||
198 | .name = name_svideo, | 202 | .name = name_svideo, |
199 | .vmux = 8, | 203 | .vmux = 8, |
200 | .amux = LINE2, | 204 | .amux = LINE2, |
@@ -2109,8 +2113,423 @@ struct saa7134_board saa7134_boards[] = { | |||
2109 | .gpio = 0x01, | 2113 | .gpio = 0x01, |
2110 | }, | 2114 | }, |
2111 | }, | 2115 | }, |
2112 | }; | 2116 | [SAA7134_BOARD_BEHOLD_409FM] = { |
2117 | /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */ | ||
2118 | .name = "Beholder BeholdTV 409 FM", | ||
2119 | .audio_clock = 0x00187de7, | ||
2120 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
2121 | .radio_type = UNSET, | ||
2122 | .tuner_addr = ADDR_UNSET, | ||
2123 | .radio_addr = ADDR_UNSET, | ||
2124 | .tda9887_conf = TDA9887_PRESENT, | ||
2125 | .inputs = {{ | ||
2126 | .name = name_tv, | ||
2127 | .vmux = 3, | ||
2128 | .amux = TV, | ||
2129 | .tv = 1, | ||
2130 | },{ | ||
2131 | .name = name_comp1, | ||
2132 | .vmux = 1, | ||
2133 | .amux = LINE1, | ||
2134 | },{ | ||
2135 | .name = name_svideo, | ||
2136 | .vmux = 8, | ||
2137 | .amux = LINE1, | ||
2138 | }}, | ||
2139 | .radio = { | ||
2140 | .name = name_radio, | ||
2141 | .amux = LINE2, | ||
2142 | }, | ||
2143 | }, | ||
2144 | [SAA7134_BOARD_GOTVIEW_7135] = { | ||
2145 | /* Mike Baikov <mike@baikov.com> */ | ||
2146 | /* Andrey Cvetcov <ays14@yandex.ru> */ | ||
2147 | .name = "GoTView 7135 PCI", | ||
2148 | .audio_clock = 0x00187de7, | ||
2149 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
2150 | .radio_type = UNSET, | ||
2151 | .tuner_addr = ADDR_UNSET, | ||
2152 | .radio_addr = ADDR_UNSET, | ||
2153 | .tda9887_conf = TDA9887_PRESENT, | ||
2154 | .gpiomask = 0x00200003, | ||
2155 | .inputs = {{ | ||
2156 | .name = name_tv, | ||
2157 | .vmux = 1, | ||
2158 | .amux = TV, | ||
2159 | .tv = 1, | ||
2160 | .gpio = 0x00200003, | ||
2161 | },{ | ||
2162 | .name = name_tv_mono, | ||
2163 | .vmux = 1, | ||
2164 | .amux = LINE2, | ||
2165 | .gpio = 0x00200003, | ||
2166 | },{ | ||
2167 | .name = name_comp1, | ||
2168 | .vmux = 3, | ||
2169 | .amux = LINE1, | ||
2170 | .gpio = 0x00200003, | ||
2171 | },{ | ||
2172 | .name = name_svideo, | ||
2173 | .vmux = 8, | ||
2174 | .amux = LINE1, | ||
2175 | .gpio = 0x00200003, | ||
2176 | }}, | ||
2177 | .radio = { | ||
2178 | .name = name_radio, | ||
2179 | .amux = LINE2, | ||
2180 | .gpio = 0x00200003, | ||
2181 | }, | ||
2182 | .mute = { | ||
2183 | .name = name_mute, | ||
2184 | .amux = TV, | ||
2185 | .gpio = 0x00200003, | ||
2186 | }, | ||
2187 | }, | ||
2188 | [SAA7134_BOARD_PHILIPS_EUROPA] = { | ||
2189 | .name = "Philips EUROPA V3 reference design", | ||
2190 | .audio_clock = 0x00187de7, | ||
2191 | .tuner_type = TUNER_PHILIPS_TD1316, | ||
2192 | .radio_type = UNSET, | ||
2193 | .tuner_addr = 0x61, | ||
2194 | .radio_addr = ADDR_UNSET, | ||
2195 | .tda9887_conf = TDA9887_PRESENT, | ||
2196 | .mpeg = SAA7134_MPEG_DVB, | ||
2197 | .inputs = {{ | ||
2198 | .name = name_tv, | ||
2199 | .vmux = 3, | ||
2200 | .amux = TV, | ||
2201 | .tv = 1, | ||
2202 | },{ | ||
2203 | .name = name_comp1, | ||
2204 | .vmux = 0, | ||
2205 | .amux = LINE2, | ||
2206 | },{ | ||
2207 | .name = name_svideo, | ||
2208 | .vmux = 8, | ||
2209 | .amux = LINE2, | ||
2210 | }}, | ||
2211 | }, | ||
2212 | [SAA7134_BOARD_VIDEOMATE_DVBT_300] = { | ||
2213 | .name = "Compro Videomate DVB-T300", | ||
2214 | .audio_clock = 0x00187de7, | ||
2215 | .tuner_type = TUNER_PHILIPS_TD1316, | ||
2216 | .radio_type = UNSET, | ||
2217 | .tuner_addr = 0x61, | ||
2218 | .radio_addr = ADDR_UNSET, | ||
2219 | .tda9887_conf = TDA9887_PRESENT, | ||
2220 | .mpeg = SAA7134_MPEG_DVB, | ||
2221 | .inputs = {{ | ||
2222 | .name = name_tv, | ||
2223 | .vmux = 3, | ||
2224 | .amux = TV, | ||
2225 | .tv = 1, | ||
2226 | },{ | ||
2227 | .name = name_comp1, | ||
2228 | .vmux = 1, | ||
2229 | .amux = LINE2, | ||
2230 | },{ | ||
2231 | .name = name_svideo, | ||
2232 | .vmux = 8, | ||
2233 | .amux = LINE2, | ||
2234 | }}, | ||
2235 | }, | ||
2236 | [SAA7134_BOARD_VIDEOMATE_DVBT_200] = { | ||
2237 | .name = "Compro Videomate DVB-T200", | ||
2238 | .tuner_type = TUNER_ABSENT, | ||
2239 | .audio_clock = 0x00187de7, | ||
2240 | .radio_type = UNSET, | ||
2241 | .tuner_addr = ADDR_UNSET, | ||
2242 | .radio_addr = ADDR_UNSET, | ||
2243 | .mpeg = SAA7134_MPEG_DVB, | ||
2244 | .inputs = {{ | ||
2245 | .name = name_comp1, | ||
2246 | .vmux = 0, | ||
2247 | .amux = LINE1, | ||
2248 | },{ | ||
2249 | .name = name_svideo, | ||
2250 | .vmux = 8, | ||
2251 | .amux = LINE1, | ||
2252 | }}, | ||
2253 | }, | ||
2254 | [SAA7134_BOARD_RTD_VFG7350] = { | ||
2255 | .name = "RTD Embedded Technologies VFG7350", | ||
2256 | .audio_clock = 0x00200000, | ||
2257 | .tuner_type = TUNER_ABSENT, | ||
2258 | .radio_type = UNSET, | ||
2259 | .tuner_addr = ADDR_UNSET, | ||
2260 | .radio_addr = ADDR_UNSET, | ||
2261 | .inputs = {{ | ||
2262 | .name = "Composite 0", | ||
2263 | .vmux = 0, | ||
2264 | .amux = LINE1, | ||
2265 | },{ | ||
2266 | .name = "Composite 1", | ||
2267 | .vmux = 1, | ||
2268 | .amux = LINE2, | ||
2269 | },{ | ||
2270 | .name = "Composite 2", | ||
2271 | .vmux = 2, | ||
2272 | .amux = LINE1, | ||
2273 | },{ | ||
2274 | .name = "Composite 3", | ||
2275 | .vmux = 3, | ||
2276 | .amux = LINE2, | ||
2277 | },{ | ||
2278 | .name = "S-Video 0", | ||
2279 | .vmux = 8, | ||
2280 | .amux = LINE1, | ||
2281 | },{ | ||
2282 | .name = "S-Video 1", | ||
2283 | .vmux = 9, | ||
2284 | .amux = LINE2, | ||
2285 | }}, | ||
2286 | .mpeg = SAA7134_MPEG_EMPRESS, | ||
2287 | .video_out = CCIR656, | ||
2288 | .vid_port_opts = ( SET_T_CODE_POLARITY_NON_INVERTED | | ||
2289 | SET_CLOCK_NOT_DELAYED | | ||
2290 | SET_CLOCK_INVERTED | | ||
2291 | SET_VSYNC_OFF ), | ||
2292 | }, | ||
2293 | [SAA7134_BOARD_RTD_VFG7330] = { | ||
2294 | .name = "RTD Embedded Technologies VFG7330", | ||
2295 | .audio_clock = 0x00200000, | ||
2296 | .tuner_type = TUNER_ABSENT, | ||
2297 | .radio_type = UNSET, | ||
2298 | .tuner_addr = ADDR_UNSET, | ||
2299 | .radio_addr = ADDR_UNSET, | ||
2300 | .inputs = {{ | ||
2301 | .name = "Composite 0", | ||
2302 | .vmux = 0, | ||
2303 | .amux = LINE1, | ||
2304 | },{ | ||
2305 | .name = "Composite 1", | ||
2306 | .vmux = 1, | ||
2307 | .amux = LINE2, | ||
2308 | },{ | ||
2309 | .name = "Composite 2", | ||
2310 | .vmux = 2, | ||
2311 | .amux = LINE1, | ||
2312 | },{ | ||
2313 | .name = "Composite 3", | ||
2314 | .vmux = 3, | ||
2315 | .amux = LINE2, | ||
2316 | },{ | ||
2317 | .name = "S-Video 0", | ||
2318 | .vmux = 8, | ||
2319 | .amux = LINE1, | ||
2320 | },{ | ||
2321 | .name = "S-Video 1", | ||
2322 | .vmux = 9, | ||
2323 | .amux = LINE2, | ||
2324 | }}, | ||
2325 | }, | ||
2326 | [SAA7134_BOARD_FLYTVPLATINUM_MINI2] = { | ||
2327 | .name = "LifeView FlyTV Platinum Mini2", | ||
2328 | .audio_clock = 0x00200000, | ||
2329 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2330 | .radio_type = UNSET, | ||
2331 | .tuner_addr = ADDR_UNSET, | ||
2332 | .radio_addr = ADDR_UNSET, | ||
2113 | 2333 | ||
2334 | .inputs = {{ | ||
2335 | .name = name_tv, | ||
2336 | .vmux = 1, | ||
2337 | .amux = TV, | ||
2338 | .tv = 1, | ||
2339 | },{ | ||
2340 | .name = name_comp1, /* Composite signal on S-Video input */ | ||
2341 | .vmux = 0, | ||
2342 | .amux = LINE2, | ||
2343 | },{ | ||
2344 | .name = name_comp2, /* Composite input */ | ||
2345 | .vmux = 3, | ||
2346 | .amux = LINE2, | ||
2347 | },{ | ||
2348 | .name = name_svideo, | ||
2349 | .vmux = 8, | ||
2350 | .amux = LINE2, | ||
2351 | }}, | ||
2352 | }, | ||
2353 | [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = { | ||
2354 | /* Michael Krufky <mkrufky@m1k.net> | ||
2355 | * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder | ||
2356 | * AFAIK, there is no analog demod, thus, | ||
2357 | * no support for analog television. | ||
2358 | */ | ||
2359 | .name = "AVerMedia AVerTVHD MCE A180", | ||
2360 | .audio_clock = 0x00187de7, | ||
2361 | .tuner_type = TUNER_ABSENT, | ||
2362 | .radio_type = UNSET, | ||
2363 | .tuner_addr = ADDR_UNSET, | ||
2364 | .radio_addr = ADDR_UNSET, | ||
2365 | .mpeg = SAA7134_MPEG_DVB, | ||
2366 | .inputs = {{ | ||
2367 | .name = name_comp1, | ||
2368 | .vmux = 3, | ||
2369 | .amux = LINE2, | ||
2370 | },{ | ||
2371 | .name = name_svideo, | ||
2372 | .vmux = 8, | ||
2373 | .amux = LINE2, | ||
2374 | }}, | ||
2375 | }, | ||
2376 | [SAA7134_BOARD_MONSTERTV_MOBILE] = { | ||
2377 | .name = "SKNet MonsterTV Mobile", | ||
2378 | .audio_clock = 0x00187de7, | ||
2379 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2380 | .radio_type = UNSET, | ||
2381 | .tuner_addr = ADDR_UNSET, | ||
2382 | .radio_addr = ADDR_UNSET, | ||
2383 | |||
2384 | .inputs = {{ | ||
2385 | .name = name_tv, | ||
2386 | .vmux = 1, | ||
2387 | .amux = TV, | ||
2388 | .tv = 1, | ||
2389 | },{ | ||
2390 | .name = name_comp1, | ||
2391 | .vmux = 3, | ||
2392 | .amux = LINE1, | ||
2393 | },{ | ||
2394 | .name = name_svideo, | ||
2395 | .vmux = 6, | ||
2396 | .amux = LINE1, | ||
2397 | }}, | ||
2398 | }, | ||
2399 | [SAA7134_BOARD_PINNACLE_PCTV_110i] = { | ||
2400 | .name = "Pinnacle PCTV 110i (saa7133)", | ||
2401 | .audio_clock = 0x00187de7, | ||
2402 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2403 | .radio_type = UNSET, | ||
2404 | .tuner_addr = ADDR_UNSET, | ||
2405 | .radio_addr = ADDR_UNSET, | ||
2406 | .gpiomask = 0x080200000, | ||
2407 | .inputs = {{ | ||
2408 | .name = name_tv, | ||
2409 | .vmux = 4, | ||
2410 | .amux = TV, | ||
2411 | .tv = 1, | ||
2412 | },{ | ||
2413 | .name = name_comp1, | ||
2414 | .vmux = 1, | ||
2415 | .amux = LINE2, | ||
2416 | },{ | ||
2417 | .name = name_svideo, | ||
2418 | .vmux = 8, | ||
2419 | .amux = LINE2, | ||
2420 | }}, | ||
2421 | .radio = { | ||
2422 | .name = name_radio, | ||
2423 | .amux = LINE1, | ||
2424 | }, | ||
2425 | }, | ||
2426 | [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = { | ||
2427 | .name = "ASUSTeK P7131 Dual", | ||
2428 | .audio_clock = 0x00187de7, | ||
2429 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2430 | .radio_type = UNSET, | ||
2431 | .tuner_addr = ADDR_UNSET, | ||
2432 | .radio_addr = ADDR_UNSET, | ||
2433 | .gpiomask = 1 << 21, | ||
2434 | .mpeg = SAA7134_MPEG_DVB, | ||
2435 | .inputs = {{ | ||
2436 | .name = name_tv, | ||
2437 | .vmux = 1, | ||
2438 | .amux = TV, | ||
2439 | .tv = 1, | ||
2440 | },{ | ||
2441 | .name = name_comp1, | ||
2442 | .vmux = 3, | ||
2443 | .amux = LINE2, | ||
2444 | },{ | ||
2445 | .name = name_svideo, | ||
2446 | .vmux = 8, | ||
2447 | .amux = LINE2, | ||
2448 | }}, | ||
2449 | .radio = { | ||
2450 | .name = name_radio, | ||
2451 | .amux = TV, | ||
2452 | .gpio = 0x0200000, | ||
2453 | }, | ||
2454 | }, | ||
2455 | [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = { | ||
2456 | /* Paul Tom Zalac <pzalac@gmail.com> */ | ||
2457 | /* Pavel Mihaylov <bin@bash.info> */ | ||
2458 | .name = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)", | ||
2459 | /* Sedna/MuchTV (OEM) Cardbus TV Tuner */ | ||
2460 | .audio_clock = 0x00187de7, | ||
2461 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2462 | .radio_type = UNSET, | ||
2463 | .tuner_addr = ADDR_UNSET, | ||
2464 | .radio_addr = ADDR_UNSET, | ||
2465 | .gpiomask = 0xe880c0, | ||
2466 | .inputs = {{ | ||
2467 | .name = name_tv, | ||
2468 | .vmux = 3, | ||
2469 | .amux = TV, | ||
2470 | .tv = 1, | ||
2471 | },{ | ||
2472 | .name = name_comp1, | ||
2473 | .vmux = 1, | ||
2474 | .amux = LINE1, | ||
2475 | },{ | ||
2476 | .name = name_svideo, | ||
2477 | .vmux = 6, | ||
2478 | .amux = LINE1, | ||
2479 | }}, | ||
2480 | .radio = { | ||
2481 | .name = name_radio, | ||
2482 | .amux = LINE2, | ||
2483 | }, | ||
2484 | }, | ||
2485 | [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = { | ||
2486 | /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */ | ||
2487 | .name = "ASUS Digimatrix TV", | ||
2488 | .audio_clock = 0x00200000, | ||
2489 | .tuner_type = TUNER_PHILIPS_FQ1216ME, | ||
2490 | .tda9887_conf = TDA9887_PRESENT, | ||
2491 | .radio_type = UNSET, | ||
2492 | .tuner_addr = ADDR_UNSET, | ||
2493 | .radio_addr = ADDR_UNSET, | ||
2494 | .inputs = {{ | ||
2495 | .name = name_tv, | ||
2496 | .vmux = 1, | ||
2497 | .amux = TV, | ||
2498 | .tv = 1, | ||
2499 | },{ | ||
2500 | .name = name_comp1, | ||
2501 | .vmux = 3, | ||
2502 | .amux = LINE1, | ||
2503 | },{ | ||
2504 | .name = name_svideo, | ||
2505 | .vmux = 8, | ||
2506 | .amux = LINE1, | ||
2507 | }}, | ||
2508 | }, | ||
2509 | [SAA7134_BOARD_PHILIPS_TIGER] = { | ||
2510 | .name = "Philips Tiger reference design", | ||
2511 | .audio_clock = 0x00187de7, | ||
2512 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2513 | .radio_type = UNSET, | ||
2514 | .tuner_addr = ADDR_UNSET, | ||
2515 | .radio_addr = ADDR_UNSET, | ||
2516 | .mpeg = SAA7134_MPEG_DVB, | ||
2517 | .inputs = {{ | ||
2518 | .name = name_tv, | ||
2519 | .vmux = 1, | ||
2520 | .amux = TV, | ||
2521 | .tv = 1, | ||
2522 | },{ | ||
2523 | .name = name_comp1, | ||
2524 | .vmux = 3, | ||
2525 | .amux = LINE1, | ||
2526 | },{ | ||
2527 | .name = name_svideo, | ||
2528 | .vmux = 8, | ||
2529 | .amux = LINE1, | ||
2530 | }}, | ||
2531 | }, | ||
2532 | }; | ||
2114 | 2533 | ||
2115 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2534 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
2116 | 2535 | ||
@@ -2145,19 +2564,19 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
2145 | },{ | 2564 | },{ |
2146 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2565 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2147 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2566 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
2148 | .subvendor = 0x153B, | 2567 | .subvendor = 0x153b, |
2149 | .subdevice = 0x1142, | 2568 | .subdevice = 0x1142, |
2150 | .driver_data = SAA7134_BOARD_CINERGY400, | 2569 | .driver_data = SAA7134_BOARD_CINERGY400, |
2151 | },{ | 2570 | },{ |
2152 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2571 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2153 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2572 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
2154 | .subvendor = 0x153B, | 2573 | .subvendor = 0x153b, |
2155 | .subdevice = 0x1143, | 2574 | .subdevice = 0x1143, |
2156 | .driver_data = SAA7134_BOARD_CINERGY600, | 2575 | .driver_data = SAA7134_BOARD_CINERGY600, |
2157 | },{ | 2576 | },{ |
2158 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2577 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2159 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2578 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
2160 | .subvendor = 0x153B, | 2579 | .subvendor = 0x153b, |
2161 | .subdevice = 0x1158, | 2580 | .subdevice = 0x1158, |
2162 | .driver_data = SAA7134_BOARD_CINERGY600_MK3, | 2581 | .driver_data = SAA7134_BOARD_CINERGY600_MK3, |
2163 | },{ | 2582 | },{ |
@@ -2193,6 +2612,18 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
2193 | },{ | 2612 | },{ |
2194 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2613 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2195 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2614 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
2615 | .subvendor = 0x14c0, | ||
2616 | .subdevice = 0x1212, /* minipci, LR1212 */ | ||
2617 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI2, | ||
2618 | },{ | ||
2619 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2620 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2621 | .subvendor = 0x4e42, | ||
2622 | .subdevice = 0x0212, /* OEM minipci, LR212 */ | ||
2623 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_MINI, | ||
2624 | },{ | ||
2625 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2626 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2196 | .subvendor = 0x5168, /* Animation Technologies (LifeView) */ | 2627 | .subvendor = 0x5168, /* Animation Technologies (LifeView) */ |
2197 | .subdevice = 0x0214, /* Standard PCI, LR214WF */ | 2628 | .subdevice = 0x0214, /* Standard PCI, LR214WF */ |
2198 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, | 2629 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, |
@@ -2369,7 +2800,7 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
2369 | },{ | 2800 | },{ |
2370 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2801 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2371 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2802 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
2372 | .subvendor = 0x153B, | 2803 | .subvendor = 0x153b, |
2373 | .subdevice = 0x1152, | 2804 | .subdevice = 0x1152, |
2374 | .driver_data = SAA7134_BOARD_CINERGY200, | 2805 | .driver_data = SAA7134_BOARD_CINERGY200, |
2375 | },{ | 2806 | },{ |
@@ -2434,13 +2865,18 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
2434 | .subvendor = 0x1421, | 2865 | .subvendor = 0x1421, |
2435 | .subdevice = 0x0350, /* PCI version */ | 2866 | .subdevice = 0x0350, /* PCI version */ |
2436 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, | 2867 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, |
2437 | |||
2438 | },{ | 2868 | },{ |
2439 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2869 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2440 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 2870 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
2441 | .subvendor = 0x1421, | 2871 | .subvendor = 0x1421, |
2442 | .subdevice = 0x0370, /* cardbus version */ | 2872 | .subdevice = 0x0370, /* cardbus version */ |
2443 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, | 2873 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, |
2874 | },{ | ||
2875 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2876 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2877 | .subvendor = 0x1421, | ||
2878 | .subdevice = 0x1370, /* cardbus version */ | ||
2879 | .driver_data = SAA7134_BOARD_ADS_INSTANT_TV, | ||
2444 | 2880 | ||
2445 | },{ /* Typhoon DVB-T Duo Digital/Analog Cardbus */ | 2881 | },{ /* Typhoon DVB-T Duo Digital/Analog Cardbus */ |
2446 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2882 | .vendor = PCI_VENDOR_ID_PHILIPS, |
@@ -2459,9 +2895,81 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
2459 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2895 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
2460 | .subvendor = 0x1043, | 2896 | .subvendor = 0x1043, |
2461 | .subdevice = 0x0210, /* mini pci PAL/SECAM version */ | 2897 | .subdevice = 0x0210, /* mini pci PAL/SECAM version */ |
2462 | .driver_data = SAA7134_BOARD_FLYTV_DIGIMATRIX, | 2898 | .driver_data = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV, |
2463 | 2899 | ||
2464 | },{ | 2900 | },{ |
2901 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2902 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2903 | .subvendor = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */ | ||
2904 | .subdevice = 0x4091, | ||
2905 | .driver_data = SAA7134_BOARD_BEHOLD_409FM, | ||
2906 | },{ | ||
2907 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2908 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2909 | .subvendor = 0x5456, /* GoTView */ | ||
2910 | .subdevice = 0x7135, | ||
2911 | .driver_data = SAA7134_BOARD_GOTVIEW_7135, | ||
2912 | },{ | ||
2913 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2914 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
2915 | .subvendor = PCI_VENDOR_ID_PHILIPS, | ||
2916 | .subdevice = 0x2004, | ||
2917 | .driver_data = SAA7134_BOARD_PHILIPS_EUROPA, | ||
2918 | },{ | ||
2919 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2920 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
2921 | .subvendor = 0x185b, | ||
2922 | .subdevice = 0xc900, | ||
2923 | .driver_data = SAA7134_BOARD_VIDEOMATE_DVBT_300, | ||
2924 | },{ | ||
2925 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2926 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
2927 | .subvendor = 0x185b, | ||
2928 | .subdevice = 0xc901, | ||
2929 | .driver_data = SAA7134_BOARD_VIDEOMATE_DVBT_200, | ||
2930 | },{ | ||
2931 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2932 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2933 | .subvendor = 0x1435, | ||
2934 | .subdevice = 0x7350, | ||
2935 | .driver_data = SAA7134_BOARD_RTD_VFG7350, | ||
2936 | },{ | ||
2937 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2938 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2939 | .subvendor = 0x1435, | ||
2940 | .subdevice = 0x7330, | ||
2941 | .driver_data = SAA7134_BOARD_RTD_VFG7330, | ||
2942 | },{ | ||
2943 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2944 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2945 | .subvendor = 0x1461, | ||
2946 | .subdevice = 0x1044, | ||
2947 | .driver_data = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180, | ||
2948 | },{ | ||
2949 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2950 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2951 | .subvendor = 0x1131, | ||
2952 | .subdevice = 0x4ee9, | ||
2953 | .driver_data = SAA7134_BOARD_MONSTERTV_MOBILE, | ||
2954 | },{ | ||
2955 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2956 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2957 | .subvendor = 0x11bd, | ||
2958 | .subdevice = 0x002e, | ||
2959 | .driver_data = SAA7134_BOARD_PINNACLE_PCTV_110i, | ||
2960 | },{ | ||
2961 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2962 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2963 | .subvendor = 0x1043, | ||
2964 | .subdevice = 0x4862, | ||
2965 | .driver_data = SAA7134_BOARD_ASUSTeK_P7131_DUAL, | ||
2966 | },{ | ||
2967 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2968 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
2969 | .subvendor = PCI_VENDOR_ID_PHILIPS, | ||
2970 | .subdevice = 0x2018, | ||
2971 | .driver_data = SAA7134_BOARD_PHILIPS_TIGER, | ||
2972 | },{ | ||
2465 | /* --- boards without eeprom + subsystem ID --- */ | 2973 | /* --- boards without eeprom + subsystem ID --- */ |
2466 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2974 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2467 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2975 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -2530,9 +3038,10 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2530 | switch (dev->board) { | 3038 | switch (dev->board) { |
2531 | case SAA7134_BOARD_FLYVIDEO2000: | 3039 | case SAA7134_BOARD_FLYVIDEO2000: |
2532 | case SAA7134_BOARD_FLYVIDEO3000: | 3040 | case SAA7134_BOARD_FLYVIDEO3000: |
2533 | dev->has_remote = 1; | 3041 | dev->has_remote = SAA7134_REMOTE_GPIO; |
2534 | board_flyvideo(dev); | 3042 | board_flyvideo(dev); |
2535 | break; | 3043 | break; |
3044 | case SAA7134_BOARD_FLYTVPLATINUM_MINI2: | ||
2536 | case SAA7134_BOARD_FLYTVPLATINUM_FM: | 3045 | case SAA7134_BOARD_FLYTVPLATINUM_FM: |
2537 | case SAA7134_BOARD_CINERGY400: | 3046 | case SAA7134_BOARD_CINERGY400: |
2538 | case SAA7134_BOARD_CINERGY600: | 3047 | case SAA7134_BOARD_CINERGY600: |
@@ -2550,10 +3059,16 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2550 | /* case SAA7134_BOARD_SABRENT_SBTTVFM: */ /* not finished yet */ | 3059 | /* case SAA7134_BOARD_SABRENT_SBTTVFM: */ /* not finished yet */ |
2551 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: | 3060 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: |
2552 | case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: | 3061 | case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: |
3062 | case SAA7134_BOARD_VIDEOMATE_DVBT_300: | ||
3063 | case SAA7134_BOARD_VIDEOMATE_DVBT_200: | ||
2553 | case SAA7134_BOARD_MANLI_MTV001: | 3064 | case SAA7134_BOARD_MANLI_MTV001: |
2554 | case SAA7134_BOARD_MANLI_MTV002: | 3065 | case SAA7134_BOARD_MANLI_MTV002: |
3066 | case SAA7134_BOARD_BEHOLD_409FM: | ||
2555 | case SAA7134_BOARD_AVACSSMARTTV: | 3067 | case SAA7134_BOARD_AVACSSMARTTV: |
2556 | dev->has_remote = 1; | 3068 | case SAA7134_BOARD_GOTVIEW_7135: |
3069 | case SAA7134_BOARD_KWORLD_TERMINATOR: | ||
3070 | case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: | ||
3071 | dev->has_remote = SAA7134_REMOTE_GPIO; | ||
2557 | break; | 3072 | break; |
2558 | case SAA7134_BOARD_MD5044: | 3073 | case SAA7134_BOARD_MD5044: |
2559 | printk("%s: seems there are two different versions of the MD5044\n" | 3074 | printk("%s: seems there are two different versions of the MD5044\n" |
@@ -2565,11 +3080,14 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2565 | /* power-up tuner chip */ | 3080 | /* power-up tuner chip */ |
2566 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); | 3081 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); |
2567 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000); | 3082 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000); |
2568 | msleep(1); | 3083 | case SAA7134_BOARD_MONSTERTV_MOBILE: |
3084 | /* power-up tuner chip */ | ||
3085 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); | ||
3086 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004); | ||
2569 | break; | 3087 | break; |
2570 | case SAA7134_BOARD_FLYDVBTDUO: | 3088 | case SAA7134_BOARD_FLYDVBTDUO: |
2571 | case SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS: | 3089 | case SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS: |
2572 | /* turn the fan on Hac: static for the time being */ | 3090 | /* turn the fan on */ |
2573 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | 3091 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); |
2574 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); | 3092 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); |
2575 | break; | 3093 | break; |
@@ -2579,6 +3097,22 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
2579 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); | 3097 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); |
2580 | msleep(1); | 3098 | msleep(1); |
2581 | break; | 3099 | break; |
3100 | case SAA7134_BOARD_RTD_VFG7350: | ||
3101 | |||
3102 | /* | ||
3103 | * Make sure Production Test Register at offset 0x1D1 is cleared | ||
3104 | * to take chip out of test mode. Clearing bit 4 (TST_EN_AOUT) | ||
3105 | * prevents pin 105 from remaining low; keeping pin 105 low | ||
3106 | * continually resets the SAA6752 chip. | ||
3107 | */ | ||
3108 | |||
3109 | saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00); | ||
3110 | break; | ||
3111 | /* i2c remotes */ | ||
3112 | case SAA7134_BOARD_PINNACLE_PCTV_110i: | ||
3113 | case SAA7134_BOARD_UPMOST_PURPLE_TV: | ||
3114 | dev->has_remote = SAA7134_REMOTE_I2C; | ||
3115 | break; | ||
2582 | } | 3116 | } |
2583 | return 0; | 3117 | return 0; |
2584 | } | 3118 | } |
@@ -2613,7 +3147,7 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
2613 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR, &tun_setup); | 3147 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR, &tun_setup); |
2614 | } | 3148 | } |
2615 | break; | 3149 | break; |
2616 | case SAA7134_BOARD_MD7134: | 3150 | case SAA7134_BOARD_MD7134: |
2617 | { | 3151 | { |
2618 | struct tuner_setup tun_setup; | 3152 | struct tuner_setup tun_setup; |
2619 | u8 subaddr; | 3153 | u8 subaddr; |
@@ -2680,6 +3214,33 @@ case SAA7134_BOARD_MD7134: | |||
2680 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); | 3214 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); |
2681 | } | 3215 | } |
2682 | break; | 3216 | break; |
3217 | case SAA7134_BOARD_PHILIPS_EUROPA: | ||
3218 | case SAA7134_BOARD_VIDEOMATE_DVBT_300: | ||
3219 | /* The Philips EUROPA based hybrid boards have the tuner connected through | ||
3220 | * the channel decoder. We have to make it transparent to find it | ||
3221 | */ | ||
3222 | { | ||
3223 | struct tuner_setup tun_setup; | ||
3224 | u8 data[] = { 0x07, 0x02}; | ||
3225 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; | ||
3226 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
3227 | |||
3228 | tun_setup.mode_mask = T_ANALOG_TV | T_DIGITAL_TV; | ||
3229 | tun_setup.type = dev->tuner_type; | ||
3230 | tun_setup.addr = dev->tuner_addr; | ||
3231 | |||
3232 | saa7134_i2c_call_clients (dev, TUNER_SET_TYPE_ADDR,&tun_setup); | ||
3233 | } | ||
3234 | break; | ||
3235 | case SAA7134_BOARD_PHILIPS_TIGER: | ||
3236 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: | ||
3237 | /* this is a hybrid board, initialize to analog mode */ | ||
3238 | { | ||
3239 | u8 data[] = { 0x3c, 0x33, 0x68}; | ||
3240 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; | ||
3241 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
3242 | } | ||
3243 | break; | ||
2683 | } | 3244 | } |
2684 | return 0; | 3245 | return 0; |
2685 | } | 3246 | } |