diff options
author | Andrey J. Melnikoff (TEMHOTA) <temnota@kmv.ru> | 2008-01-07 03:17:39 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:04:40 -0500 |
commit | e8018c9e78b0ff4bb0290e46f4045fb4ea589ae8 (patch) | |
tree | 30fccea432c63aa577cc874cd47e0f6e734db1b6 /drivers/media/video/saa7134 | |
parent | 3f4dfe2acf4ffed48395e69166531d8925eb106a (diff) |
V4L/DVB (6973): Add Beholder TV 401/405/407/409/505/507/609/M6 support
This patch updates cardlist for Beholder TV tuners:
old models (with GPIO ir) 401, 403, 405, 407, 409, 505, 507
and add support for 607, 609, M6 cards with new i2c-ir.
Signed-off-by: Igor Kuznetsov <igk72@yandex.ru>
Signed-off-by: Andrey J. Melnikov <temnota@kmv.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 504 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-i2c.c | 2 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 60 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 13 |
4 files changed, 579 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index b29427aaa88d..6a35d88fdbb2 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -3562,6 +3562,329 @@ struct saa7134_board saa7134_boards[] = { | |||
3562 | .tv = 1, | 3562 | .tv = 1, |
3563 | }}, | 3563 | }}, |
3564 | }, | 3564 | }, |
3565 | [SAA7134_BOARD_BEHOLD_401] = { | ||
3566 | .name = "Beholder BeholdTV 401", | ||
3567 | .audio_clock = 0x00187de7, | ||
3568 | .tuner_type = TUNER_PHILIPS_FQ1216ME, | ||
3569 | .radio_type = UNSET, | ||
3570 | .tuner_addr = ADDR_UNSET, | ||
3571 | .radio_addr = ADDR_UNSET, | ||
3572 | .inputs = {{ | ||
3573 | .name = name_svideo, | ||
3574 | .vmux = 8, | ||
3575 | .amux = LINE1, | ||
3576 | },{ | ||
3577 | .name = name_comp1, | ||
3578 | .vmux = 1, | ||
3579 | .amux = LINE1, | ||
3580 | },{ | ||
3581 | .name = name_tv, | ||
3582 | .vmux = 3, | ||
3583 | .amux = LINE2, | ||
3584 | .tv = 1, | ||
3585 | }}, | ||
3586 | .mute = { | ||
3587 | .name = name_mute, | ||
3588 | .amux = LINE1, | ||
3589 | }, | ||
3590 | }, | ||
3591 | [SAA7134_BOARD_BEHOLD_403] = { | ||
3592 | .name = "Beholder BeholdTV 403", | ||
3593 | .audio_clock = 0x00187de7, | ||
3594 | .tuner_type = TUNER_PHILIPS_FQ1216ME, | ||
3595 | .radio_type = UNSET, | ||
3596 | .tuner_addr = ADDR_UNSET, | ||
3597 | .radio_addr = ADDR_UNSET, | ||
3598 | .inputs = {{ | ||
3599 | .name = name_svideo, | ||
3600 | .vmux = 8, | ||
3601 | .amux = LINE1, | ||
3602 | },{ | ||
3603 | .name = name_comp1, | ||
3604 | .vmux = 1, | ||
3605 | .amux = LINE1, | ||
3606 | },{ | ||
3607 | .name = name_tv, | ||
3608 | .vmux = 3, | ||
3609 | .amux = LINE2, | ||
3610 | .tv = 1, | ||
3611 | }}, | ||
3612 | }, | ||
3613 | [SAA7134_BOARD_BEHOLD_403FM] = { | ||
3614 | .name = "Beholder BeholdTV 403 FM", | ||
3615 | .audio_clock = 0x00187de7, | ||
3616 | .tuner_type = TUNER_PHILIPS_FQ1216ME, | ||
3617 | .radio_type = UNSET, | ||
3618 | .tuner_addr = ADDR_UNSET, | ||
3619 | .radio_addr = ADDR_UNSET, | ||
3620 | .inputs = {{ | ||
3621 | .name = name_svideo, | ||
3622 | .vmux = 8, | ||
3623 | .amux = LINE1, | ||
3624 | },{ | ||
3625 | .name = name_comp1, | ||
3626 | .vmux = 1, | ||
3627 | .amux = LINE1, | ||
3628 | },{ | ||
3629 | .name = name_tv, | ||
3630 | .vmux = 3, | ||
3631 | .amux = LINE2, | ||
3632 | .tv = 1, | ||
3633 | }}, | ||
3634 | .radio = { | ||
3635 | .name = name_radio, | ||
3636 | .amux = LINE2, | ||
3637 | }, | ||
3638 | }, | ||
3639 | [SAA7134_BOARD_BEHOLD_405] = { | ||
3640 | .name = "Beholder BeholdTV 405", | ||
3641 | .audio_clock = 0x00187de7, | ||
3642 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3643 | .radio_type = UNSET, | ||
3644 | .tuner_addr = ADDR_UNSET, | ||
3645 | .radio_addr = ADDR_UNSET, | ||
3646 | .tda9887_conf = TDA9887_PRESENT, | ||
3647 | .inputs = {{ | ||
3648 | .name = name_svideo, | ||
3649 | .vmux = 8, | ||
3650 | .amux = LINE1, | ||
3651 | },{ | ||
3652 | .name = name_comp1, | ||
3653 | .vmux = 3, | ||
3654 | .amux = LINE1, | ||
3655 | },{ | ||
3656 | .name = name_tv, | ||
3657 | .vmux = 3, | ||
3658 | .amux = LINE2, | ||
3659 | .tv = 1, | ||
3660 | }}, | ||
3661 | }, | ||
3662 | [SAA7134_BOARD_BEHOLD_405FM] = { | ||
3663 | /* Sergey <skiv@orel.ru> */ | ||
3664 | .name = "Beholder BeholdTV 405 FM", | ||
3665 | .audio_clock = 0x00187de7, | ||
3666 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3667 | .radio_type = UNSET, | ||
3668 | .tuner_addr = ADDR_UNSET, | ||
3669 | .radio_addr = ADDR_UNSET, | ||
3670 | .tda9887_conf = TDA9887_PRESENT, | ||
3671 | .inputs = {{ | ||
3672 | .name = name_svideo, | ||
3673 | .vmux = 8, | ||
3674 | .amux = LINE1, | ||
3675 | },{ | ||
3676 | .name = name_comp1, | ||
3677 | .vmux = 3, | ||
3678 | .amux = LINE1, | ||
3679 | },{ | ||
3680 | .name = name_tv, | ||
3681 | .vmux = 3, | ||
3682 | .amux = LINE2, | ||
3683 | .tv = 1, | ||
3684 | }}, | ||
3685 | .radio = { | ||
3686 | .name = name_radio, | ||
3687 | .amux = LINE2, | ||
3688 | }, | ||
3689 | }, | ||
3690 | [SAA7134_BOARD_BEHOLD_407FM] = { | ||
3691 | .name = "Beholder BeholdTV 407 FM", | ||
3692 | .audio_clock = 0x00187de7, | ||
3693 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3694 | .radio_type = UNSET, | ||
3695 | .tuner_addr = ADDR_UNSET, | ||
3696 | .radio_addr = ADDR_UNSET, | ||
3697 | .tda9887_conf = TDA9887_PRESENT, | ||
3698 | .gpiomask = 0xc0c000, | ||
3699 | .inputs = {{ | ||
3700 | .name = name_svideo, | ||
3701 | .vmux = 8, | ||
3702 | .amux = LINE1, | ||
3703 | .gpio = 0xc0c000, | ||
3704 | },{ | ||
3705 | .name = name_comp1, | ||
3706 | .vmux = 1, | ||
3707 | .amux = LINE1, | ||
3708 | .gpio = 0xc0c000, | ||
3709 | },{ | ||
3710 | .name = name_tv, | ||
3711 | .vmux = 3, | ||
3712 | .amux = TV, | ||
3713 | .tv = 1, | ||
3714 | .gpio = 0xc0c000, | ||
3715 | }}, | ||
3716 | .radio = { | ||
3717 | .name = name_radio, | ||
3718 | .amux = LINE2, | ||
3719 | .gpio = 0xc0c000, | ||
3720 | }, | ||
3721 | }, | ||
3722 | [SAA7134_BOARD_BEHOLD_409] = { | ||
3723 | .name = "Beholder BeholdTV 409", | ||
3724 | .audio_clock = 0x00187de7, | ||
3725 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3726 | .radio_type = UNSET, | ||
3727 | .tuner_addr = ADDR_UNSET, | ||
3728 | .radio_addr = ADDR_UNSET, | ||
3729 | .tda9887_conf = TDA9887_PRESENT, | ||
3730 | .inputs = {{ | ||
3731 | .name = name_tv, | ||
3732 | .vmux = 3, | ||
3733 | .amux = TV, | ||
3734 | .tv = 1, | ||
3735 | },{ | ||
3736 | .name = name_comp1, | ||
3737 | .vmux = 1, | ||
3738 | .amux = LINE1, | ||
3739 | },{ | ||
3740 | .name = name_svideo, | ||
3741 | .vmux = 8, | ||
3742 | .amux = LINE1, | ||
3743 | }}, | ||
3744 | }, | ||
3745 | [SAA7134_BOARD_BEHOLD_505FM] = { | ||
3746 | .name = "Beholder BeholdTV 505 FM/RDS", | ||
3747 | .audio_clock = 0x00200000, | ||
3748 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3749 | .radio_type = UNSET, | ||
3750 | .tuner_addr = ADDR_UNSET, | ||
3751 | .radio_addr = ADDR_UNSET, | ||
3752 | .tda9887_conf = TDA9887_PRESENT, | ||
3753 | .inputs = {{ | ||
3754 | .name = name_tv, | ||
3755 | .vmux = 3, | ||
3756 | .amux = LINE2, | ||
3757 | .tv = 1, | ||
3758 | },{ | ||
3759 | .name = name_comp1, | ||
3760 | .vmux = 1, | ||
3761 | .amux = LINE1, | ||
3762 | },{ | ||
3763 | .name = name_svideo, | ||
3764 | .vmux = 8, | ||
3765 | .amux = LINE1, | ||
3766 | }}, | ||
3767 | .mute = { | ||
3768 | .name = name_mute, | ||
3769 | .amux = LINE1, | ||
3770 | }, | ||
3771 | .radio = { | ||
3772 | .name = name_radio, | ||
3773 | .amux = LINE2, | ||
3774 | }, | ||
3775 | }, | ||
3776 | [SAA7134_BOARD_BEHOLD_507_9FM] = { | ||
3777 | .name = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM", | ||
3778 | .audio_clock = 0x00187de7, | ||
3779 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3780 | .radio_type = UNSET, | ||
3781 | .tuner_addr = ADDR_UNSET, | ||
3782 | .radio_addr = ADDR_UNSET, | ||
3783 | .tda9887_conf = TDA9887_PRESENT, | ||
3784 | .inputs = {{ | ||
3785 | .name = name_tv, | ||
3786 | .vmux = 3, | ||
3787 | .amux = TV, | ||
3788 | .tv = 1, | ||
3789 | },{ | ||
3790 | .name = name_comp1, | ||
3791 | .vmux = 1, | ||
3792 | .amux = LINE1, | ||
3793 | },{ | ||
3794 | .name = name_svideo, | ||
3795 | .vmux = 8, | ||
3796 | .amux = LINE1, | ||
3797 | }}, | ||
3798 | .radio = { | ||
3799 | .name = name_radio, | ||
3800 | .amux = LINE2, | ||
3801 | }, | ||
3802 | }, | ||
3803 | [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = { | ||
3804 | .name = "Beholder BeholdTV Columbus TVFM", | ||
3805 | .audio_clock = 0x00187de7, | ||
3806 | .tuner_type = TUNER_ALPS_TSBE5_PAL, | ||
3807 | .radio_type = UNSET, | ||
3808 | .tuner_addr = ADDR_UNSET, | ||
3809 | .radio_addr = ADDR_UNSET, | ||
3810 | .tda9887_conf = TDA9887_PRESENT, | ||
3811 | .inputs = {{ | ||
3812 | .name = name_tv, | ||
3813 | .vmux = 3, | ||
3814 | .amux = TV, | ||
3815 | .tv = 1, | ||
3816 | },{ | ||
3817 | .name = name_comp1, | ||
3818 | .vmux = 1, | ||
3819 | .amux = LINE1, | ||
3820 | },{ | ||
3821 | .name = name_svideo, | ||
3822 | .vmux = 8, | ||
3823 | .amux = LINE1, | ||
3824 | }}, | ||
3825 | .radio = { | ||
3826 | .name = name_radio, | ||
3827 | .amux = LINE2, | ||
3828 | }, | ||
3829 | }, | ||
3830 | [SAA7134_BOARD_BEHOLD_607_9FM] = { | ||
3831 | /* Andrey Melnikoff <temnota@kmv.ru> */ | ||
3832 | .name = "Beholder BeholdTV 607 / BeholdTV 609", | ||
3833 | .audio_clock = 0x00187de7, | ||
3834 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3835 | .radio_type = UNSET, | ||
3836 | .tuner_addr = ADDR_UNSET, | ||
3837 | .radio_addr = ADDR_UNSET, | ||
3838 | .tda9887_conf = TDA9887_PRESENT, | ||
3839 | .inputs = {{ | ||
3840 | .name = name_tv, | ||
3841 | .vmux = 3, | ||
3842 | .amux = TV, | ||
3843 | .tv = 1, | ||
3844 | },{ | ||
3845 | .name = name_comp1, | ||
3846 | .vmux = 1, | ||
3847 | .amux = LINE1, | ||
3848 | },{ | ||
3849 | .name = name_svideo, | ||
3850 | .vmux = 8, | ||
3851 | .amux = LINE1, | ||
3852 | }}, | ||
3853 | .radio = { | ||
3854 | .name = name_radio, | ||
3855 | .amux = LINE2, | ||
3856 | }, | ||
3857 | }, | ||
3858 | [SAA7134_BOARD_BEHOLD_M6] = { | ||
3859 | /* Igor Kuznetsov <igk@igk.ru> */ | ||
3860 | /* Andrey Melnikoff <temnota@kmv.ru> */ | ||
3861 | .name = "Beholder BeholdTV M6 / BeholdTV M6 Extra", | ||
3862 | .audio_clock = 0x00187de7, | ||
3863 | .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, | ||
3864 | .radio_type = UNSET, | ||
3865 | .tuner_addr = ADDR_UNSET, | ||
3866 | .radio_addr = ADDR_UNSET, | ||
3867 | .tda9887_conf = TDA9887_PRESENT, | ||
3868 | .inputs = {{ | ||
3869 | .name = name_tv, | ||
3870 | .vmux = 3, | ||
3871 | .amux = TV, | ||
3872 | .tv = 1, | ||
3873 | },{ | ||
3874 | .name = name_comp1, | ||
3875 | .vmux = 1, | ||
3876 | .amux = LINE1, | ||
3877 | },{ | ||
3878 | .name = name_svideo, | ||
3879 | .vmux = 8, | ||
3880 | .amux = LINE1, | ||
3881 | }}, | ||
3882 | .radio = { | ||
3883 | .name = name_radio, | ||
3884 | .amux = LINE2, | ||
3885 | }, | ||
3886 | .mpeg = SAA7134_MPEG_EMPRESS, | ||
3887 | }, | ||
3565 | }; | 3888 | }; |
3566 | 3889 | ||
3567 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 3890 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -4328,6 +4651,174 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
4328 | .driver_data = SAA7134_BOARD_AVERMEDIA_SUPER_007, | 4651 | .driver_data = SAA7134_BOARD_AVERMEDIA_SUPER_007, |
4329 | },{ | 4652 | },{ |
4330 | .vendor = PCI_VENDOR_ID_PHILIPS, | 4653 | .vendor = PCI_VENDOR_ID_PHILIPS, |
4654 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4655 | .subvendor = 0x1131, | ||
4656 | .subdevice = 0x0000, | ||
4657 | .driver_data = SAA7134_BOARD_BEHOLD_401, | ||
4658 | },{ | ||
4659 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4660 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4661 | .subvendor = 0x0000, | ||
4662 | .subdevice = 0x4016, | ||
4663 | .driver_data = SAA7134_BOARD_BEHOLD_401, | ||
4664 | },{ | ||
4665 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4666 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4667 | .subvendor = 0x1131, | ||
4668 | .subdevice = 0x0000, | ||
4669 | .driver_data = SAA7134_BOARD_BEHOLD_403FM, | ||
4670 | },{ | ||
4671 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4672 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4673 | .subvendor = 0x0000, | ||
4674 | .subdevice = 0x4036, | ||
4675 | .driver_data = SAA7134_BOARD_BEHOLD_403, | ||
4676 | },{ | ||
4677 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4678 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4679 | .subvendor = 0x0000, | ||
4680 | .subdevice = 0x4037, | ||
4681 | .driver_data = SAA7134_BOARD_BEHOLD_403FM, | ||
4682 | },{ | ||
4683 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4684 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4685 | .subvendor = 0x0000, | ||
4686 | .subdevice = 0x4050, | ||
4687 | .driver_data = SAA7134_BOARD_BEHOLD_405, | ||
4688 | },{ | ||
4689 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4690 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4691 | .subvendor = 0x0000, | ||
4692 | .subdevice = 0x4051, | ||
4693 | .driver_data = SAA7134_BOARD_BEHOLD_405FM, | ||
4694 | },{ | ||
4695 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4696 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4697 | .subvendor = 0x0000, | ||
4698 | .subdevice = 0x4070, | ||
4699 | .driver_data = SAA7134_BOARD_BEHOLD_407, | ||
4700 | },{ | ||
4701 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4702 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4703 | .subvendor = 0x0000, | ||
4704 | .subdevice = 0x4071, | ||
4705 | .driver_data = SAA7134_BOARD_BEHOLD_407FM, | ||
4706 | },{ | ||
4707 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4708 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4709 | .subvendor = 0x0000, | ||
4710 | .subdevice = 0x4090, | ||
4711 | .driver_data = SAA7134_BOARD_BEHOLD_409, | ||
4712 | },{ | ||
4713 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4714 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4715 | .subvendor = 0x0000, | ||
4716 | .subdevice = 0x5051, | ||
4717 | .driver_data = SAA7134_BOARD_BEHOLD_505FM, | ||
4718 | },{ | ||
4719 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4720 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4721 | .subvendor = 0x0000, | ||
4722 | .subdevice = 0x505B, | ||
4723 | .driver_data = SAA7134_BOARD_BEHOLD_505FM, | ||
4724 | },{ | ||
4725 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4726 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | ||
4727 | .subvendor = 0x5ace, | ||
4728 | .subdevice = 0x5050, | ||
4729 | .driver_data = SAA7134_BOARD_BEHOLD_505FM, | ||
4730 | },{ | ||
4731 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4732 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4733 | .subvendor = 0x0000, | ||
4734 | .subdevice = 0x5071, | ||
4735 | .driver_data = SAA7134_BOARD_BEHOLD_507_9FM, | ||
4736 | },{ | ||
4737 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4738 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4739 | .subvendor = 0x0000, | ||
4740 | .subdevice = 0x507B, | ||
4741 | .driver_data = SAA7134_BOARD_BEHOLD_507_9FM, | ||
4742 | },{ | ||
4743 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4744 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4745 | .subvendor = 0x5ace, | ||
4746 | .subdevice = 0x5070, | ||
4747 | .driver_data = SAA7134_BOARD_BEHOLD_507_9FM, | ||
4748 | },{ | ||
4749 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4750 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4751 | .subvendor = 0x5ace, | ||
4752 | .subdevice = 0x5090, | ||
4753 | .driver_data = SAA7134_BOARD_BEHOLD_507_9FM, | ||
4754 | },{ | ||
4755 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4756 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4757 | .subvendor = 0x0000, | ||
4758 | .subdevice = 0x5201, | ||
4759 | .driver_data = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM, | ||
4760 | },{ | ||
4761 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4762 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4763 | .subvendor = 0x5ace, | ||
4764 | .subdevice = 0x6070, | ||
4765 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4766 | },{ | ||
4767 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4768 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4769 | .subvendor = 0x5ace, | ||
4770 | .subdevice = 0x6071, | ||
4771 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4772 | },{ | ||
4773 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4774 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4775 | .subvendor = 0x5ace, | ||
4776 | .subdevice = 0x6072, | ||
4777 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4778 | },{ | ||
4779 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4780 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
4781 | .subvendor = 0x5ace, | ||
4782 | .subdevice = 0x6073, | ||
4783 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4784 | },{ | ||
4785 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4786 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4787 | .subvendor = 0x5ace, | ||
4788 | .subdevice = 0x6090, | ||
4789 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4790 | },{ | ||
4791 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4792 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4793 | .subvendor = 0x5ace, | ||
4794 | .subdevice = 0x6091, | ||
4795 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4796 | },{ | ||
4797 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4798 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4799 | .subvendor = 0x5ace, | ||
4800 | .subdevice = 0x6092, | ||
4801 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4802 | },{ | ||
4803 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4804 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4805 | .subvendor = 0x5ace, | ||
4806 | .subdevice = 0x6093, | ||
4807 | .driver_data = SAA7134_BOARD_BEHOLD_607_9FM, | ||
4808 | },{ | ||
4809 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4810 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4811 | .subvendor = 0x5ace, | ||
4812 | .subdevice = 0x6190, | ||
4813 | .driver_data = SAA7134_BOARD_BEHOLD_M6, | ||
4814 | },{ | ||
4815 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4816 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4817 | .subvendor = 0x5ace, | ||
4818 | .subdevice = 0x6193, | ||
4819 | .driver_data = SAA7134_BOARD_BEHOLD_M6, | ||
4820 | },{ | ||
4821 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4331 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 4822 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
4332 | .subvendor = 0x4e42, | 4823 | .subvendor = 0x4e42, |
4333 | .subdevice = 0x3502, | 4824 | .subdevice = 0x3502, |
@@ -4473,6 +4964,16 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
4473 | case SAA7134_BOARD_ENCORE_ENLTV: | 4964 | case SAA7134_BOARD_ENCORE_ENLTV: |
4474 | case SAA7134_BOARD_ENCORE_ENLTV_FM: | 4965 | case SAA7134_BOARD_ENCORE_ENLTV_FM: |
4475 | case SAA7134_BOARD_10MOONSTVMASTER3: | 4966 | case SAA7134_BOARD_10MOONSTVMASTER3: |
4967 | case SAA7134_BOARD_BEHOLD_401: | ||
4968 | case SAA7134_BOARD_BEHOLD_403: | ||
4969 | case SAA7134_BOARD_BEHOLD_403FM: | ||
4970 | case SAA7134_BOARD_BEHOLD_405: | ||
4971 | case SAA7134_BOARD_BEHOLD_405FM: | ||
4972 | case SAA7134_BOARD_BEHOLD_407: | ||
4973 | case SAA7134_BOARD_BEHOLD_407FM: | ||
4974 | case SAA7134_BOARD_BEHOLD_409: | ||
4975 | case SAA7134_BOARD_BEHOLD_505FM: | ||
4976 | case SAA7134_BOARD_BEHOLD_507_9FM: | ||
4476 | dev->has_remote = SAA7134_REMOTE_GPIO; | 4977 | dev->has_remote = SAA7134_REMOTE_GPIO; |
4477 | break; | 4978 | break; |
4478 | case SAA7134_BOARD_FLYDVBS_LR300: | 4979 | case SAA7134_BOARD_FLYDVBS_LR300: |
@@ -4512,6 +5013,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
4512 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000); | 5013 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000); |
4513 | break; | 5014 | break; |
4514 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: | 5015 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: |
5016 | case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM: | ||
4515 | /* power-up tuner chip */ | 5017 | /* power-up tuner chip */ |
4516 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); | 5018 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); |
4517 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); | 5019 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); |
@@ -4533,6 +5035,8 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
4533 | case SAA7134_BOARD_PINNACLE_PCTV_310i: | 5035 | case SAA7134_BOARD_PINNACLE_PCTV_310i: |
4534 | case SAA7134_BOARD_UPMOST_PURPLE_TV: | 5036 | case SAA7134_BOARD_UPMOST_PURPLE_TV: |
4535 | case SAA7134_BOARD_HAUPPAUGE_HVR1110: | 5037 | case SAA7134_BOARD_HAUPPAUGE_HVR1110: |
5038 | case SAA7134_BOARD_BEHOLD_607_9FM: | ||
5039 | case SAA7134_BOARD_BEHOLD_M6: | ||
4536 | dev->has_remote = SAA7134_REMOTE_I2C; | 5040 | dev->has_remote = SAA7134_REMOTE_I2C; |
4537 | break; | 5041 | break; |
4538 | case SAA7134_BOARD_AVERMEDIA_A169_B: | 5042 | case SAA7134_BOARD_AVERMEDIA_A169_B: |
diff --git a/drivers/media/video/saa7134/saa7134-i2c.c b/drivers/media/video/saa7134/saa7134-i2c.c index 800b397f8f16..d3322c3018f2 100644 --- a/drivers/media/video/saa7134/saa7134-i2c.c +++ b/drivers/media/video/saa7134/saa7134-i2c.c | |||
@@ -334,6 +334,7 @@ static int attach_inform(struct i2c_client *client) | |||
334 | case 0x7a: | 334 | case 0x7a: |
335 | case 0x47: | 335 | case 0x47: |
336 | case 0x71: | 336 | case 0x71: |
337 | case 0x2d: | ||
337 | { | 338 | { |
338 | struct IR_i2c *ir = i2c_get_clientdata(client); | 339 | struct IR_i2c *ir = i2c_get_clientdata(client); |
339 | d1printk("%s i2c IR detected (%s).\n", | 340 | d1printk("%s i2c IR detected (%s).\n", |
@@ -439,6 +440,7 @@ static char *i2c_devs[128] = { | |||
439 | [ 0xa0 >> 1 ] = "eeprom", | 440 | [ 0xa0 >> 1 ] = "eeprom", |
440 | [ 0xc0 >> 1 ] = "tuner (analog)", | 441 | [ 0xc0 >> 1 ] = "tuner (analog)", |
441 | [ 0x86 >> 1 ] = "tda9887", | 442 | [ 0x86 >> 1 ] = "tda9887", |
443 | [ 0x5a >> 1 ] = "remote control", | ||
442 | }; | 444 | }; |
443 | 445 | ||
444 | static void do_i2c_scan(char *name, struct i2c_client *c) | 446 | static void do_i2c_scan(char *name, struct i2c_client *c) |
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index 8cfeb2bde90f..7f4212928e9f 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
@@ -52,6 +52,11 @@ module_param(repeat_period, int, 0644); | |||
52 | MODULE_PARM_DESC(repeat_period, "repeat period between " | 52 | MODULE_PARM_DESC(repeat_period, "repeat period between " |
53 | "keypresses when key is down"); | 53 | "keypresses when key is down"); |
54 | 54 | ||
55 | static unsigned int disable_other_ir; | ||
56 | module_param(disable_other_ir, int, 0644); | ||
57 | MODULE_PARM_DESC(disable_other_ir, "disable full codes of " | ||
58 | "alternative remotes from other manufacturers"); | ||
59 | |||
55 | #define dprintk(fmt, arg...) if (ir_debug) \ | 60 | #define dprintk(fmt, arg...) if (ir_debug) \ |
56 | printk(KERN_DEBUG "%s/ir: " fmt, dev->name , ## arg) | 61 | printk(KERN_DEBUG "%s/ir: " fmt, dev->name , ## arg) |
57 | #define i2cdprintk(fmt, arg...) if (ir_debug) \ | 62 | #define i2cdprintk(fmt, arg...) if (ir_debug) \ |
@@ -154,6 +159,45 @@ static int get_key_hvr1110(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) | |||
154 | return 1; | 159 | return 1; |
155 | } | 160 | } |
156 | 161 | ||
162 | |||
163 | static int get_key_beholdm6xx(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) | ||
164 | { | ||
165 | unsigned char data[12]; | ||
166 | u32 gpio; | ||
167 | |||
168 | struct saa7134_dev *dev = ir->c.adapter->algo_data; | ||
169 | |||
170 | /* rising SAA7134_GPIO_GPRESCAN reads the status */ | ||
171 | saa_clearb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN); | ||
172 | saa_setb(SAA7134_GPIO_GPMODE3, SAA7134_GPIO_GPRESCAN); | ||
173 | |||
174 | gpio = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2); | ||
175 | |||
176 | if (0x400000 &~ gpio) | ||
177 | return 0; /* No button press */ | ||
178 | |||
179 | ir->c.addr = 0x5a >> 1; | ||
180 | |||
181 | if (12 != i2c_master_recv(&ir->c, data, 12)) { | ||
182 | i2cdprintk("read error\n"); | ||
183 | return -EIO; | ||
184 | } | ||
185 | /* IR of this card normally decode signals NEC-standard from | ||
186 | * - Sven IHOO MT 5.1R remote. xxyye718 | ||
187 | * - Sven DVD HD-10xx remote. xxyyf708 | ||
188 | * - BBK ... | ||
189 | * - mayby others | ||
190 | * So, skip not our, if disable full codes mode. | ||
191 | */ | ||
192 | if (data[10] != 0x6b && data[11] != 0x86 && disable_other_ir) | ||
193 | return 0; | ||
194 | |||
195 | *ir_key = data[9]; | ||
196 | *ir_raw = data[9]; | ||
197 | |||
198 | return 1; | ||
199 | } | ||
200 | |||
157 | void saa7134_input_irq(struct saa7134_dev *dev) | 201 | void saa7134_input_irq(struct saa7134_dev *dev) |
158 | { | 202 | { |
159 | struct card_ir *ir = dev->remote; | 203 | struct card_ir *ir = dev->remote; |
@@ -288,6 +332,16 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
288 | case SAA7134_BOARD_MANLI_MTV001: | 332 | case SAA7134_BOARD_MANLI_MTV001: |
289 | case SAA7134_BOARD_MANLI_MTV002: | 333 | case SAA7134_BOARD_MANLI_MTV002: |
290 | case SAA7134_BOARD_BEHOLD_409FM: | 334 | case SAA7134_BOARD_BEHOLD_409FM: |
335 | case SAA7134_BOARD_BEHOLD_401: | ||
336 | case SAA7134_BOARD_BEHOLD_403: | ||
337 | case SAA7134_BOARD_BEHOLD_403FM: | ||
338 | case SAA7134_BOARD_BEHOLD_405: | ||
339 | case SAA7134_BOARD_BEHOLD_405FM: | ||
340 | case SAA7134_BOARD_BEHOLD_407: | ||
341 | case SAA7134_BOARD_BEHOLD_407FM: | ||
342 | case SAA7134_BOARD_BEHOLD_409: | ||
343 | case SAA7134_BOARD_BEHOLD_505FM: | ||
344 | case SAA7134_BOARD_BEHOLD_507_9FM: | ||
291 | ir_codes = ir_codes_manli; | 345 | ir_codes = ir_codes_manli; |
292 | mask_keycode = 0x001f00; | 346 | mask_keycode = 0x001f00; |
293 | mask_keyup = 0x004000; | 347 | mask_keyup = 0x004000; |
@@ -458,6 +512,12 @@ void saa7134_set_i2c_ir(struct saa7134_dev *dev, struct IR_i2c *ir) | |||
458 | ir->get_key = get_key_hvr1110; | 512 | ir->get_key = get_key_hvr1110; |
459 | ir->ir_codes = ir_codes_hauppauge_new; | 513 | ir->ir_codes = ir_codes_hauppauge_new; |
460 | break; | 514 | break; |
515 | case SAA7134_BOARD_BEHOLD_607_9FM: | ||
516 | case SAA7134_BOARD_BEHOLD_M6: | ||
517 | snprintf(ir->c.name, sizeof(ir->c.name), "BeholdTV"); | ||
518 | ir->get_key = get_key_beholdm6xx; | ||
519 | ir->ir_codes = ir_codes_behold; | ||
520 | break; | ||
461 | default: | 521 | default: |
462 | dprintk("Shouldn't get here: Unknown board %x for I2C IR?\n",dev->board); | 522 | dprintk("Shouldn't get here: Unknown board %x for I2C IR?\n",dev->board); |
463 | break; | 523 | break; |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 3e77aeb7974f..ce450304fb53 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -240,6 +240,19 @@ struct saa7134_format { | |||
240 | #define SAA7134_BOARD_SABRENT_TV_PCB05 115 | 240 | #define SAA7134_BOARD_SABRENT_TV_PCB05 115 |
241 | #define SAA7134_BOARD_10MOONSTVMASTER3 116 | 241 | #define SAA7134_BOARD_10MOONSTVMASTER3 116 |
242 | #define SAA7134_BOARD_AVERMEDIA_SUPER_007 117 | 242 | #define SAA7134_BOARD_AVERMEDIA_SUPER_007 117 |
243 | #define SAA7134_BOARD_BEHOLD_401 118 | ||
244 | #define SAA7134_BOARD_BEHOLD_403 119 | ||
245 | #define SAA7134_BOARD_BEHOLD_403FM 120 | ||
246 | #define SAA7134_BOARD_BEHOLD_405 121 | ||
247 | #define SAA7134_BOARD_BEHOLD_405FM 122 | ||
248 | #define SAA7134_BOARD_BEHOLD_407 123 | ||
249 | #define SAA7134_BOARD_BEHOLD_407FM 124 | ||
250 | #define SAA7134_BOARD_BEHOLD_409 125 | ||
251 | #define SAA7134_BOARD_BEHOLD_505FM 126 | ||
252 | #define SAA7134_BOARD_BEHOLD_507_9FM 127 | ||
253 | #define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 128 | ||
254 | #define SAA7134_BOARD_BEHOLD_607_9FM 129 | ||
255 | #define SAA7134_BOARD_BEHOLD_M6 130 | ||
243 | 256 | ||
244 | #define SAA7134_MAXBOARDS 8 | 257 | #define SAA7134_MAXBOARDS 8 |
245 | #define SAA7134_INPUT_MAX 8 | 258 | #define SAA7134_INPUT_MAX 8 |