diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2008-04-26 11:10:58 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-29 17:41:36 -0400 |
commit | a0bdd273a2fdb2a0debc90d5f8826073e2ddea4d (patch) | |
tree | 3df042ed7bcffba2a2efb98512b9dd44363db253 /drivers | |
parent | 2968e31361a2687cebeda6f558f82a3ec9354ca6 (diff) |
V4L/DVB (7762): ivtv: fix tuner detection for PAL-N/Nc
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/ivtv/ivtv-cards.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/drivers/media/video/ivtv/ivtv-cards.c b/drivers/media/video/ivtv/ivtv-cards.c index 75b01e89e641..6266a09ea75f 100644 --- a/drivers/media/video/ivtv/ivtv-cards.c +++ b/drivers/media/video/ivtv/ivtv-cards.c | |||
@@ -40,6 +40,8 @@ | |||
40 | #define MSP_MONO MSP_INPUT(MSP_IN_MONO, MSP_IN_TUNER1, \ | 40 | #define MSP_MONO MSP_INPUT(MSP_IN_MONO, MSP_IN_TUNER1, \ |
41 | MSP_DSP_IN_SCART, MSP_DSP_IN_SCART) | 41 | MSP_DSP_IN_SCART, MSP_DSP_IN_SCART) |
42 | 42 | ||
43 | #define V4L2_STD_NOT_MN (V4L2_STD_PAL|V4L2_STD_SECAM) | ||
44 | |||
43 | /* usual i2c tuner addresses to probe */ | 45 | /* usual i2c tuner addresses to probe */ |
44 | static struct ivtv_card_tuner_i2c ivtv_i2c_std = { | 46 | static struct ivtv_card_tuner_i2c ivtv_i2c_std = { |
45 | .radio = { I2C_CLIENT_END }, | 47 | .radio = { I2C_CLIENT_END }, |
@@ -298,7 +300,7 @@ static const struct ivtv_card ivtv_card_mpg600 = { | |||
298 | .gpio_audio_detect = { .mask = 0x0900, .stereo = 0x0100 }, | 300 | .gpio_audio_detect = { .mask = 0x0900, .stereo = 0x0100 }, |
299 | .tuners = { | 301 | .tuners = { |
300 | /* The PAL tuner is confirmed */ | 302 | /* The PAL tuner is confirmed */ |
301 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FQ1216ME }, | 303 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FQ1216ME }, |
302 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, | 304 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, |
303 | }, | 305 | }, |
304 | .pci_list = ivtv_pci_mpg600, | 306 | .pci_list = ivtv_pci_mpg600, |
@@ -339,7 +341,7 @@ static const struct ivtv_card ivtv_card_mpg160 = { | |||
339 | .lang1 = 0x0004, .lang2 = 0x0000, .both = 0x0008 }, | 341 | .lang1 = 0x0004, .lang2 = 0x0000, .both = 0x0008 }, |
340 | .gpio_audio_detect = { .mask = 0x0900, .stereo = 0x0100 }, | 342 | .gpio_audio_detect = { .mask = 0x0900, .stereo = 0x0100 }, |
341 | .tuners = { | 343 | .tuners = { |
342 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FQ1216ME }, | 344 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FQ1216ME }, |
343 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, | 345 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, |
344 | }, | 346 | }, |
345 | .pci_list = ivtv_pci_mpg160, | 347 | .pci_list = ivtv_pci_mpg160, |
@@ -375,7 +377,7 @@ static const struct ivtv_card ivtv_card_pg600 = { | |||
375 | { IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL }, | 377 | { IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL }, |
376 | }, | 378 | }, |
377 | .tuners = { | 379 | .tuners = { |
378 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FQ1216ME }, | 380 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FQ1216ME }, |
379 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, | 381 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, |
380 | }, | 382 | }, |
381 | .pci_list = ivtv_pci_pg600, | 383 | .pci_list = ivtv_pci_pg600, |
@@ -416,7 +418,7 @@ static const struct ivtv_card ivtv_card_avc2410 = { | |||
416 | on the country/region setting of the user to decide which tuner | 418 | on the country/region setting of the user to decide which tuner |
417 | is available. */ | 419 | is available. */ |
418 | .tuners = { | 420 | .tuners = { |
419 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, | 421 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, |
420 | { .std = V4L2_STD_ALL - V4L2_STD_NTSC_M_JP, | 422 | { .std = V4L2_STD_ALL - V4L2_STD_NTSC_M_JP, |
421 | .tuner = TUNER_PHILIPS_FM1236_MK3 }, | 423 | .tuner = TUNER_PHILIPS_FM1236_MK3 }, |
422 | { .std = V4L2_STD_NTSC_M_JP, .tuner = TUNER_PHILIPS_FQ1286 }, | 424 | { .std = V4L2_STD_NTSC_M_JP, .tuner = TUNER_PHILIPS_FQ1286 }, |
@@ -490,7 +492,7 @@ static const struct ivtv_card ivtv_card_tg5000tv = { | |||
490 | .gpio_video_input = { .mask = 0x0030, .tuner = 0x0000, | 492 | .gpio_video_input = { .mask = 0x0030, .tuner = 0x0000, |
491 | .composite = 0x0010, .svideo = 0x0020 }, | 493 | .composite = 0x0010, .svideo = 0x0020 }, |
492 | .tuners = { | 494 | .tuners = { |
493 | { .std = V4L2_STD_525_60, .tuner = TUNER_PHILIPS_FQ1286 }, | 495 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_PHILIPS_FQ1286 }, |
494 | }, | 496 | }, |
495 | .pci_list = ivtv_pci_tg5000tv, | 497 | .pci_list = ivtv_pci_tg5000tv, |
496 | .i2c = &ivtv_i2c_std, | 498 | .i2c = &ivtv_i2c_std, |
@@ -521,7 +523,7 @@ static const struct ivtv_card ivtv_card_va2000 = { | |||
521 | { IVTV_CARD_INPUT_AUD_TUNER, MSP_TUNER }, | 523 | { IVTV_CARD_INPUT_AUD_TUNER, MSP_TUNER }, |
522 | }, | 524 | }, |
523 | .tuners = { | 525 | .tuners = { |
524 | { .std = V4L2_STD_525_60, .tuner = TUNER_PHILIPS_FQ1286 }, | 526 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_PHILIPS_FQ1286 }, |
525 | }, | 527 | }, |
526 | .pci_list = ivtv_pci_va2000, | 528 | .pci_list = ivtv_pci_va2000, |
527 | .i2c = &ivtv_i2c_std, | 529 | .i2c = &ivtv_i2c_std, |
@@ -565,7 +567,7 @@ static const struct ivtv_card ivtv_card_cx23416gyc = { | |||
565 | .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, | 567 | .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, |
566 | .f44100 = 0x4000, .f48000 = 0x8000 }, | 568 | .f44100 = 0x4000, .f48000 = 0x8000 }, |
567 | .tuners = { | 569 | .tuners = { |
568 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, | 570 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, |
569 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, | 571 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, |
570 | }, | 572 | }, |
571 | .pci_list = ivtv_pci_cx23416gyc, | 573 | .pci_list = ivtv_pci_cx23416gyc, |
@@ -597,7 +599,7 @@ static const struct ivtv_card ivtv_card_cx23416gyc_nogr = { | |||
597 | .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, | 599 | .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, |
598 | .f44100 = 0x4000, .f48000 = 0x8000 }, | 600 | .f44100 = 0x4000, .f48000 = 0x8000 }, |
599 | .tuners = { | 601 | .tuners = { |
600 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, | 602 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, |
601 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, | 603 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, |
602 | }, | 604 | }, |
603 | .i2c = &ivtv_i2c_std, | 605 | .i2c = &ivtv_i2c_std, |
@@ -627,7 +629,7 @@ static const struct ivtv_card ivtv_card_cx23416gyc_nogrycs = { | |||
627 | .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, | 629 | .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, |
628 | .f44100 = 0x4000, .f48000 = 0x8000 }, | 630 | .f44100 = 0x4000, .f48000 = 0x8000 }, |
629 | .tuners = { | 631 | .tuners = { |
630 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, | 632 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, |
631 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, | 633 | { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, |
632 | }, | 634 | }, |
633 | .i2c = &ivtv_i2c_std, | 635 | .i2c = &ivtv_i2c_std, |
@@ -667,7 +669,7 @@ static const struct ivtv_card ivtv_card_gv_mvprx = { | |||
667 | .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, | 669 | .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, |
668 | .tuners = { | 670 | .tuners = { |
669 | /* This card has the Panasonic VP27 tuner */ | 671 | /* This card has the Panasonic VP27 tuner */ |
670 | { .std = V4L2_STD_525_60, .tuner = TUNER_PANASONIC_VP27 }, | 672 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_PANASONIC_VP27 }, |
671 | }, | 673 | }, |
672 | .pci_list = ivtv_pci_gv_mvprx, | 674 | .pci_list = ivtv_pci_gv_mvprx, |
673 | .i2c = &ivtv_i2c_std, | 675 | .i2c = &ivtv_i2c_std, |
@@ -704,7 +706,7 @@ static const struct ivtv_card ivtv_card_gv_mvprx2e = { | |||
704 | .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, | 706 | .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, |
705 | .tuners = { | 707 | .tuners = { |
706 | /* This card has the Panasonic VP27 tuner */ | 708 | /* This card has the Panasonic VP27 tuner */ |
707 | { .std = V4L2_STD_525_60, .tuner = TUNER_PANASONIC_VP27 }, | 709 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_PANASONIC_VP27 }, |
708 | }, | 710 | }, |
709 | .pci_list = ivtv_pci_gv_mvprx2e, | 711 | .pci_list = ivtv_pci_gv_mvprx2e, |
710 | .i2c = &ivtv_i2c_std, | 712 | .i2c = &ivtv_i2c_std, |
@@ -739,7 +741,7 @@ static const struct ivtv_card ivtv_card_gotview_pci_dvd = { | |||
739 | .gpio_init = { .direction = 0xf000, .initial_value = 0xA000 }, | 741 | .gpio_init = { .direction = 0xf000, .initial_value = 0xA000 }, |
740 | .tuners = { | 742 | .tuners = { |
741 | /* This card has a Philips FQ1216ME MK3 tuner */ | 743 | /* This card has a Philips FQ1216ME MK3 tuner */ |
742 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, | 744 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, |
743 | }, | 745 | }, |
744 | .pci_list = ivtv_pci_gotview_pci_dvd, | 746 | .pci_list = ivtv_pci_gotview_pci_dvd, |
745 | .i2c = &ivtv_i2c_std, | 747 | .i2c = &ivtv_i2c_std, |
@@ -778,7 +780,7 @@ static const struct ivtv_card ivtv_card_gotview_pci_dvd2 = { | |||
778 | .gpio_audio_input = { .mask = 0x0800, .tuner = 0, .linein = 0, .radio = 0x0800 }, | 780 | .gpio_audio_input = { .mask = 0x0800, .tuner = 0, .linein = 0, .radio = 0x0800 }, |
779 | .tuners = { | 781 | .tuners = { |
780 | /* This card has a Philips FQ1216ME MK5 tuner */ | 782 | /* This card has a Philips FQ1216ME MK5 tuner */ |
781 | { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, | 783 | { .std = V4L2_STD_NOT_MN, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, |
782 | }, | 784 | }, |
783 | .pci_list = ivtv_pci_gotview_pci_dvd2, | 785 | .pci_list = ivtv_pci_gotview_pci_dvd2, |
784 | .i2c = &ivtv_i2c_std, | 786 | .i2c = &ivtv_i2c_std, |
@@ -856,7 +858,7 @@ static const struct ivtv_card ivtv_card_dctmvtvp1 = { | |||
856 | .gpio_video_input = { .mask = 0x0030, .tuner = 0x0000, | 858 | .gpio_video_input = { .mask = 0x0030, .tuner = 0x0000, |
857 | .composite = 0x0010, .svideo = 0x0020}, | 859 | .composite = 0x0010, .svideo = 0x0020}, |
858 | .tuners = { | 860 | .tuners = { |
859 | { .std = V4L2_STD_525_60, .tuner = TUNER_PHILIPS_FQ1286 }, | 861 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_PHILIPS_FQ1286 }, |
860 | }, | 862 | }, |
861 | .pci_list = ivtv_pci_dctmvtvp1, | 863 | .pci_list = ivtv_pci_dctmvtvp1, |
862 | .i2c = &ivtv_i2c_std, | 864 | .i2c = &ivtv_i2c_std, |
@@ -992,7 +994,7 @@ static const struct ivtv_card ivtv_card_aver_pvr150 = { | |||
992 | .gpio_audio_input = { .mask = 0x0800, .tuner = 0, .linein = 0, .radio = 0x0800 }, | 994 | .gpio_audio_input = { .mask = 0x0800, .tuner = 0, .linein = 0, .radio = 0x0800 }, |
993 | .tuners = { | 995 | .tuners = { |
994 | /* This card has a Partsnic PTI-5NF05 tuner */ | 996 | /* This card has a Partsnic PTI-5NF05 tuner */ |
995 | { .std = V4L2_STD_525_60, .tuner = TUNER_TCL_2002N }, | 997 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_TCL_2002N }, |
996 | }, | 998 | }, |
997 | .pci_list = ivtv_pci_aver_pvr150, | 999 | .pci_list = ivtv_pci_aver_pvr150, |
998 | .i2c = &ivtv_i2c_radio, | 1000 | .i2c = &ivtv_i2c_radio, |
@@ -1060,7 +1062,7 @@ static const struct ivtv_card ivtv_card_asus_falcon2 = { | |||
1060 | }, | 1062 | }, |
1061 | .radio_input = { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO_SERIAL, M52790_IN_TUNER }, | 1063 | .radio_input = { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO_SERIAL, M52790_IN_TUNER }, |
1062 | .tuners = { | 1064 | .tuners = { |
1063 | { .std = V4L2_STD_525_60, .tuner = TUNER_PHILIPS_FM1236_MK3 }, | 1065 | { .std = V4L2_STD_525_60|V4L2_STD_MN, .tuner = TUNER_PHILIPS_FM1236_MK3 }, |
1064 | }, | 1066 | }, |
1065 | .pci_list = ivtv_pci_asus_falcon2, | 1067 | .pci_list = ivtv_pci_asus_falcon2, |
1066 | .i2c = &ivtv_i2c_std, | 1068 | .i2c = &ivtv_i2c_std, |