diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-cards.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 294 |
1 files changed, 288 insertions, 6 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 6bc63a4086c1..fdd7f48f3b76 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -536,7 +536,7 @@ struct saa7134_board saa7134_boards[] = { | |||
536 | .radio = { | 536 | .radio = { |
537 | .name = name_radio, | 537 | .name = name_radio, |
538 | .amux = LINE2, | 538 | .amux = LINE2, |
539 | }, | 539 | }, |
540 | }, | 540 | }, |
541 | [SAA7134_BOARD_MD7134] = { | 541 | [SAA7134_BOARD_MD7134] = { |
542 | .name = "Medion 7134", | 542 | .name = "Medion 7134", |
@@ -640,6 +640,32 @@ struct saa7134_board saa7134_boards[] = { | |||
640 | .tv = 1, | 640 | .tv = 1, |
641 | }}, | 641 | }}, |
642 | }, | 642 | }, |
643 | [SAA7134_BOARD_ELSA_700TV] = { | ||
644 | .name = "ELSA EX-VISION 700TV", | ||
645 | .audio_clock = 0x00187de7, | ||
646 | .tuner_type = TUNER_HITACHI_NTSC, | ||
647 | .radio_type = UNSET, | ||
648 | .tuner_addr = ADDR_UNSET, | ||
649 | .radio_addr = ADDR_UNSET, | ||
650 | .inputs = {{ | ||
651 | .name = name_tv, | ||
652 | .vmux = 4, | ||
653 | .amux = LINE2, | ||
654 | .tv = 1, | ||
655 | },{ | ||
656 | .name = name_comp1, | ||
657 | .vmux = 6, | ||
658 | .amux = LINE1, | ||
659 | },{ | ||
660 | .name = name_svideo, | ||
661 | .vmux = 7, | ||
662 | .amux = LINE1, | ||
663 | }}, | ||
664 | .mute = { | ||
665 | .name = name_mute, | ||
666 | .amux = TV, | ||
667 | }, | ||
668 | }, | ||
643 | [SAA7134_BOARD_ASUSTeK_TVFM7134] = { | 669 | [SAA7134_BOARD_ASUSTeK_TVFM7134] = { |
644 | .name = "ASUS TV-FM 7134", | 670 | .name = "ASUS TV-FM 7134", |
645 | .audio_clock = 0x00187de7, | 671 | .audio_clock = 0x00187de7, |
@@ -2002,7 +2028,7 @@ struct saa7134_board saa7134_boards[] = { | |||
2002 | [SAA7134_BOARD_FLYTV_DIGIMATRIX] = { | 2028 | [SAA7134_BOARD_FLYTV_DIGIMATRIX] = { |
2003 | .name = "FlyTV mini Asus Digimatrix", | 2029 | .name = "FlyTV mini Asus Digimatrix", |
2004 | .audio_clock = 0x00200000, | 2030 | .audio_clock = 0x00200000, |
2005 | .tuner_type = TUNER_LG_NTSC_TALN_MINI, | 2031 | .tuner_type = TUNER_LG_TALN, |
2006 | .radio_type = UNSET, | 2032 | .radio_type = UNSET, |
2007 | .tuner_addr = ADDR_UNSET, | 2033 | .tuner_addr = ADDR_UNSET, |
2008 | .radio_addr = ADDR_UNSET, | 2034 | .radio_addr = ADDR_UNSET, |
@@ -2598,6 +2624,7 @@ struct saa7134_board saa7134_boards[] = { | |||
2598 | .tuner_addr = ADDR_UNSET, | 2624 | .tuner_addr = ADDR_UNSET, |
2599 | .radio_addr = ADDR_UNSET, | 2625 | .radio_addr = ADDR_UNSET, |
2600 | .gpiomask = 0x00200000, | 2626 | .gpiomask = 0x00200000, |
2627 | .mpeg = SAA7134_MPEG_DVB, | ||
2601 | .inputs = {{ | 2628 | .inputs = {{ |
2602 | .name = name_tv, /* Analog broadcast/cable TV */ | 2629 | .name = name_tv, /* Analog broadcast/cable TV */ |
2603 | .vmux = 1, | 2630 | .vmux = 1, |
@@ -2623,6 +2650,164 @@ struct saa7134_board saa7134_boards[] = { | |||
2623 | .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */ | 2650 | .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */ |
2624 | }, | 2651 | }, |
2625 | }, | 2652 | }, |
2653 | [SAA7134_BOARD_AVERMEDIA_777] = { | ||
2654 | .name = "AverTV DVB-T 777", | ||
2655 | .audio_clock = 0x00187de7, | ||
2656 | .tuner_type = TUNER_ABSENT, | ||
2657 | .radio_type = UNSET, | ||
2658 | .tuner_addr = ADDR_UNSET, | ||
2659 | .radio_addr = ADDR_UNSET, | ||
2660 | .mpeg = SAA7134_MPEG_DVB, | ||
2661 | .inputs = {{ | ||
2662 | .name = name_comp1, | ||
2663 | .vmux = 0, | ||
2664 | .amux = LINE1, | ||
2665 | },{ | ||
2666 | .name = name_svideo, | ||
2667 | .vmux = 8, | ||
2668 | .amux = LINE1, | ||
2669 | }}, | ||
2670 | }, | ||
2671 | [SAA7134_BOARD_FLYDVBT_LR301] = { | ||
2672 | /* LifeView FlyDVB-T */ | ||
2673 | /* Giampiero Giancipoli <gianci@libero.it> */ | ||
2674 | .name = "LifeView FlyDVB-T", | ||
2675 | .audio_clock = 0x00200000, | ||
2676 | .tuner_type = TUNER_ABSENT, | ||
2677 | .radio_type = UNSET, | ||
2678 | .tuner_addr = ADDR_UNSET, | ||
2679 | .radio_addr = ADDR_UNSET, | ||
2680 | .mpeg = SAA7134_MPEG_DVB, | ||
2681 | .inputs = {{ | ||
2682 | .name = name_comp1, /* Composite input */ | ||
2683 | .vmux = 3, | ||
2684 | .amux = LINE2, | ||
2685 | },{ | ||
2686 | .name = name_svideo, /* S-Video signal on S-Video input */ | ||
2687 | .vmux = 8, | ||
2688 | .amux = LINE2, | ||
2689 | }}, | ||
2690 | }, | ||
2691 | [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = { | ||
2692 | .name = "ADS Instant TV Duo Cardbus PTV331", | ||
2693 | .audio_clock = 0x00200000, | ||
2694 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2695 | .radio_type = UNSET, | ||
2696 | .tuner_addr = ADDR_UNSET, | ||
2697 | .radio_addr = ADDR_UNSET, | ||
2698 | .mpeg = SAA7134_MPEG_DVB, | ||
2699 | .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */ | ||
2700 | .inputs = {{ | ||
2701 | .name = name_tv, | ||
2702 | .vmux = 1, | ||
2703 | .amux = TV, | ||
2704 | .tv = 1, | ||
2705 | .gpio = 0x00200000, | ||
2706 | }}, | ||
2707 | }, | ||
2708 | [SAA7134_BOARD_TEVION_DVBT_220RF] = { | ||
2709 | .name = "Tevion/KWorld DVB-T 220RF", | ||
2710 | .audio_clock = 0x00187de7, | ||
2711 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2712 | .radio_type = UNSET, | ||
2713 | .tuner_addr = ADDR_UNSET, | ||
2714 | .radio_addr = ADDR_UNSET, | ||
2715 | .mpeg = SAA7134_MPEG_DVB, | ||
2716 | .inputs = {{ | ||
2717 | .name = name_tv, | ||
2718 | .vmux = 1, | ||
2719 | .amux = TV, | ||
2720 | .tv = 1, | ||
2721 | },{ | ||
2722 | .name = name_comp1, | ||
2723 | .vmux = 3, | ||
2724 | .amux = LINE1, | ||
2725 | },{ | ||
2726 | .name = name_svideo, | ||
2727 | .vmux = 0, | ||
2728 | .amux = LINE1, | ||
2729 | }}, | ||
2730 | .radio = { | ||
2731 | .name = name_radio, | ||
2732 | .amux = LINE1, | ||
2733 | }, | ||
2734 | }, | ||
2735 | [SAA7134_BOARD_KWORLD_ATSC110] = { | ||
2736 | .name = "Kworld ATSC110", | ||
2737 | .audio_clock = 0x00187de7, | ||
2738 | .tuner_type = TUNER_PHILIPS_TUV1236D, | ||
2739 | .radio_type = UNSET, | ||
2740 | .tuner_addr = ADDR_UNSET, | ||
2741 | .radio_addr = ADDR_UNSET, | ||
2742 | .tda9887_conf = TDA9887_PRESENT, | ||
2743 | .mpeg = SAA7134_MPEG_DVB, | ||
2744 | .inputs = {{ | ||
2745 | .name = name_tv, | ||
2746 | .vmux = 1, | ||
2747 | .amux = TV, | ||
2748 | .tv = 1, | ||
2749 | },{ | ||
2750 | .name = name_comp1, | ||
2751 | .vmux = 3, | ||
2752 | .amux = LINE2, | ||
2753 | },{ | ||
2754 | .name = name_svideo, | ||
2755 | .vmux = 8, | ||
2756 | .amux = LINE2, | ||
2757 | }}, | ||
2758 | }, | ||
2759 | [SAA7134_BOARD_AVERMEDIA_A169_B] = { | ||
2760 | /* AVerMedia A169 */ | ||
2761 | /* Rickard Osser <ricky@osser.se> */ | ||
2762 | /* This card has two saa7134 chips on it, | ||
2763 | but only one of them is currently working. */ | ||
2764 | .name = "AVerMedia A169 B", | ||
2765 | .audio_clock = 0x02187de7, | ||
2766 | .tuner_type = TUNER_LG_TALN, | ||
2767 | .radio_type = UNSET, | ||
2768 | .tuner_addr = ADDR_UNSET, | ||
2769 | .radio_addr = ADDR_UNSET, | ||
2770 | .tda9887_conf = TDA9887_PRESENT, | ||
2771 | .gpiomask = 0x0a60000, | ||
2772 | }, | ||
2773 | [SAA7134_BOARD_AVERMEDIA_A169_B1] = { | ||
2774 | /* AVerMedia A169 */ | ||
2775 | /* Rickard Osser <ricky@osser.se> */ | ||
2776 | .name = "AVerMedia A169 B1", | ||
2777 | .audio_clock = 0x02187de7, | ||
2778 | .tuner_type = TUNER_LG_TALN, | ||
2779 | .radio_type = UNSET, | ||
2780 | .tuner_addr = ADDR_UNSET, | ||
2781 | .radio_addr = ADDR_UNSET, | ||
2782 | .tda9887_conf = TDA9887_PRESENT, | ||
2783 | .gpiomask = 0xca60000, | ||
2784 | .inputs = {{ | ||
2785 | .name = name_tv, | ||
2786 | .vmux = 4, | ||
2787 | .amux = TV, | ||
2788 | .tv = 1, | ||
2789 | .gpio = 0x04a61000, | ||
2790 | },{ | ||
2791 | .name = name_comp2, /* Composite SVIDEO (B/W if signal is carried with SVIDEO) */ | ||
2792 | .vmux = 1, | ||
2793 | .amux = LINE2, | ||
2794 | },{ | ||
2795 | .name = name_svideo, | ||
2796 | .vmux = 9, /* 9 is correct as S-VIDEO1 according to a169.inf! */ | ||
2797 | .amux = LINE1, | ||
2798 | }}, | ||
2799 | }, | ||
2800 | [SAA7134_BOARD_MD7134_BRIDGE_2] = { | ||
2801 | /* This card has two saa7134 chips on it, | ||
2802 | but only one of them is currently working. | ||
2803 | The programming for the primary decoder is | ||
2804 | in SAA7134_BOARD_MD7134 */ | ||
2805 | .name = "Medion 7134 Bridge #2", | ||
2806 | .audio_clock = 0x00187de7, | ||
2807 | .radio_type = UNSET, | ||
2808 | .tuner_addr = ADDR_UNSET, | ||
2809 | .radio_addr = ADDR_UNSET, | ||
2810 | }, | ||
2626 | }; | 2811 | }; |
2627 | 2812 | ||
2628 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2813 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -2753,6 +2938,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
2753 | .driver_data = SAA7134_BOARD_ELSA_500TV, | 2938 | .driver_data = SAA7134_BOARD_ELSA_500TV, |
2754 | },{ | 2939 | },{ |
2755 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2940 | .vendor = PCI_VENDOR_ID_PHILIPS, |
2941 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
2942 | .subvendor = 0x1048, | ||
2943 | .subdevice = 0x226c, | ||
2944 | .driver_data = SAA7134_BOARD_ELSA_700TV, | ||
2945 | },{ | ||
2946 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
2756 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 2947 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
2757 | .subvendor = PCI_VENDOR_ID_ASUSTEK, | 2948 | .subvendor = PCI_VENDOR_ID_ASUSTEK, |
2758 | .subdevice = 0x4842, | 2949 | .subdevice = 0x4842, |
@@ -3094,6 +3285,54 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
3094 | .subdevice = 0x0319, | 3285 | .subdevice = 0x0319, |
3095 | .driver_data = SAA7134_BOARD_FLYDVB_TRIO, | 3286 | .driver_data = SAA7134_BOARD_FLYDVB_TRIO, |
3096 | },{ | 3287 | },{ |
3288 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3289 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, /* SAA 7131E */ | ||
3290 | .subvendor = 0x1461, | ||
3291 | .subdevice = 0x2c05, | ||
3292 | .driver_data = SAA7134_BOARD_AVERMEDIA_777, | ||
3293 | },{ | ||
3294 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3295 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3296 | .subvendor = 0x5168, | ||
3297 | .subdevice = 0x0301, | ||
3298 | .driver_data = SAA7134_BOARD_FLYDVBT_LR301, | ||
3299 | },{ | ||
3300 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3301 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3302 | .subvendor = 0x0331, | ||
3303 | .subdevice = 0x1421, | ||
3304 | .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331, | ||
3305 | },{ | ||
3306 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3307 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3308 | .subvendor = 0x17de, | ||
3309 | .subdevice = 0x7201, | ||
3310 | .driver_data = SAA7134_BOARD_TEVION_DVBT_220RF, | ||
3311 | },{ | ||
3312 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3313 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */ | ||
3314 | .subvendor = 0x17de, | ||
3315 | .subdevice = 0x7350, | ||
3316 | .driver_data = SAA7134_BOARD_KWORLD_ATSC110, | ||
3317 | },{ | ||
3318 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3319 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3320 | .subvendor = 0x1461, | ||
3321 | .subdevice = 0x7360, | ||
3322 | .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B, | ||
3323 | },{ | ||
3324 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3325 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3326 | .subvendor = 0x1461, | ||
3327 | .subdevice = 0x6360, | ||
3328 | .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B1, | ||
3329 | },{ | ||
3330 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3331 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3332 | .subvendor = 0x16be, | ||
3333 | .subdevice = 0x0005, | ||
3334 | .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2, | ||
3335 | },{ | ||
3097 | /* --- boards without eeprom + subsystem ID --- */ | 3336 | /* --- boards without eeprom + subsystem ID --- */ |
3098 | .vendor = PCI_VENDOR_ID_PHILIPS, | 3337 | .vendor = PCI_VENDOR_ID_PHILIPS, |
3099 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 3338 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -3193,13 +3432,15 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3193 | case SAA7134_BOARD_GOTVIEW_7135: | 3432 | case SAA7134_BOARD_GOTVIEW_7135: |
3194 | case SAA7134_BOARD_KWORLD_TERMINATOR: | 3433 | case SAA7134_BOARD_KWORLD_TERMINATOR: |
3195 | case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: | 3434 | case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: |
3435 | case SAA7134_BOARD_FLYDVBT_LR301: | ||
3436 | case SAA7134_BOARD_FLYDVBTDUO: | ||
3196 | dev->has_remote = SAA7134_REMOTE_GPIO; | 3437 | dev->has_remote = SAA7134_REMOTE_GPIO; |
3197 | break; | 3438 | break; |
3198 | case SAA7134_BOARD_MD5044: | 3439 | case SAA7134_BOARD_MD5044: |
3199 | printk("%s: seems there are two different versions of the MD5044\n" | 3440 | printk("%s: seems there are two different versions of the MD5044\n" |
3200 | "%s: (with the same ID) out there. If sound doesn't work for\n" | 3441 | "%s: (with the same ID) out there. If sound doesn't work for\n" |
3201 | "%s: you try the audio_clock_override=0x200000 insmod option.\n", | 3442 | "%s: you try the audio_clock_override=0x200000 insmod option.\n", |
3202 | dev->name,dev->name,dev->name); | 3443 | dev->name,dev->name,dev->name); |
3203 | break; | 3444 | break; |
3204 | case SAA7134_BOARD_CINERGY400_CARDBUS: | 3445 | case SAA7134_BOARD_CINERGY400_CARDBUS: |
3205 | /* power-up tuner chip */ | 3446 | /* power-up tuner chip */ |
@@ -3220,6 +3461,10 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3220 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | 3461 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); |
3221 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); | 3462 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); |
3222 | break; | 3463 | break; |
3464 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | ||
3465 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | ||
3466 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00); | ||
3467 | break; | ||
3223 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: | 3468 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: |
3224 | /* power-up tuner chip */ | 3469 | /* power-up tuner chip */ |
3225 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); | 3470 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); |
@@ -3242,6 +3487,13 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3242 | case SAA7134_BOARD_UPMOST_PURPLE_TV: | 3487 | case SAA7134_BOARD_UPMOST_PURPLE_TV: |
3243 | dev->has_remote = SAA7134_REMOTE_I2C; | 3488 | dev->has_remote = SAA7134_REMOTE_I2C; |
3244 | break; | 3489 | break; |
3490 | case SAA7134_BOARD_AVERMEDIA_A169_B: | ||
3491 | case SAA7134_BOARD_MD7134_BRIDGE_2: | ||
3492 | printk("%s: %s: dual saa713x broadcast decoders\n" | ||
3493 | "%s: Sorry, none of the inputs to this chip are supported yet.\n" | ||
3494 | "%s: Dual decoder functionality is disabled for now, use the other chip.\n", | ||
3495 | dev->name,card(dev).name,dev->name,dev->name); | ||
3496 | break; | ||
3245 | } | 3497 | } |
3246 | return 0; | 3498 | return 0; |
3247 | } | 3499 | } |
@@ -3362,14 +3614,44 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
3362 | } | 3614 | } |
3363 | break; | 3615 | break; |
3364 | case SAA7134_BOARD_PHILIPS_TIGER: | 3616 | case SAA7134_BOARD_PHILIPS_TIGER: |
3617 | case SAA7134_BOARD_TEVION_DVBT_220RF: | ||
3365 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: | 3618 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: |
3366 | /* this is a hybrid board, initialize to analog mode */ | 3619 | /* this is a hybrid board, initialize to analog mode |
3620 | * and configure firmware eeprom address | ||
3621 | */ | ||
3367 | { | 3622 | { |
3368 | u8 data[] = { 0x3c, 0x33, 0x68}; | 3623 | u8 data[] = { 0x3c, 0x33, 0x68}; |
3369 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; | 3624 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; |
3370 | i2c_transfer(&dev->i2c_adap, &msg, 1); | 3625 | i2c_transfer(&dev->i2c_adap, &msg, 1); |
3371 | } | 3626 | } |
3372 | break; | 3627 | break; |
3628 | case SAA7134_BOARD_FLYDVB_TRIO: | ||
3629 | { | ||
3630 | u8 data[] = { 0x3c, 0x33, 0x62}; | ||
3631 | struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)}; | ||
3632 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
3633 | } | ||
3634 | break; | ||
3635 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | ||
3636 | /* make the tda10046 find its eeprom */ | ||
3637 | { | ||
3638 | u8 data[] = { 0x3c, 0x33, 0x62}; | ||
3639 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; | ||
3640 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
3641 | } | ||
3642 | break; | ||
3643 | case SAA7134_BOARD_KWORLD_ATSC110: | ||
3644 | { | ||
3645 | /* enable tuner */ | ||
3646 | int i; | ||
3647 | static const u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 }; | ||
3648 | dev->i2c_client.addr = 0x0a; | ||
3649 | for (i = 0; i < 5; i++) | ||
3650 | if (2 != i2c_master_send(&dev->i2c_client,&buffer[i*2],2)) | ||
3651 | printk(KERN_WARNING "%s: Unable to enable tuner(%i).\n", | ||
3652 | dev->name, i); | ||
3653 | } | ||
3654 | break; | ||
3373 | } | 3655 | } |
3374 | return 0; | 3656 | return 0; |
3375 | } | 3657 | } |