aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Belimov <d.belimov@gmail.com>2008-04-23 13:09:08 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:09:46 -0400
commitb34dddbe4b88bf59e7607d1fc504eee43570c6a4 (patch)
tree882b091defac8ab3afa507db67fb638efb9824a9
parent8fb737b7dc94e495be02c775afe1e7de0e06f3f5 (diff)
V4L/DVB (7677): saa7134: Add/fix Beholder entries
Beholder TV/FM tuners: Changes: Add support Beholder Columbus PCMCIA card. Add key map for remote control of Beholder Columbus PCMCIA card. Fix gpiomask for all Beholder tuners. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--Documentation/video4linux/CARDLIST.saa71344
-rw-r--r--drivers/media/common/ir-keymaps.c70
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c80
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c13
-rw-r--r--include/media/ir-common.h1
5 files changed, 157 insertions, 11 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index fe925b335c94..44d84dd15ad6 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -25,8 +25,8 @@
25 24 -> KNC One TV-Station DVR [1894:a006] 25 24 -> KNC One TV-Station DVR [1894:a006]
26 25 -> ASUS TV-FM 7133 [1043:4843] 26 25 -> ASUS TV-FM 7133 [1043:4843]
27 26 -> Pinnacle PCTV Stereo (saa7134) [11bd:002b] 27 26 -> Pinnacle PCTV Stereo (saa7134) [11bd:002b]
28 27 -> Manli MuchTV M-TV002/Behold TV 403 FM 28 27 -> Manli MuchTV M-TV002
29 28 -> Manli MuchTV M-TV001/Behold TV 401 29 28 -> Manli MuchTV M-TV001
30 29 -> Nagase Sangyo TransGear 3000TV [1461:050c] 30 29 -> Nagase Sangyo TransGear 3000TV [1461:050c]
31 30 -> Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) [1019:4cb4] 31 30 -> Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) [1019:4cb4]
32 31 -> Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) [1019:4cb5] 32 31 -> Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) [1019:4cb5]
diff --git a/drivers/media/common/ir-keymaps.c b/drivers/media/common/ir-keymaps.c
index 65f810cde605..a3485817e46c 100644
--- a/drivers/media/common/ir-keymaps.c
+++ b/drivers/media/common/ir-keymaps.c
@@ -2043,6 +2043,76 @@ IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE] = {
2043 2043
2044EXPORT_SYMBOL_GPL(ir_codes_behold); 2044EXPORT_SYMBOL_GPL(ir_codes_behold);
2045 2045
2046/* Beholder Intl. Ltd. 2008
2047 * Dmitry Belimov d.belimov@google.com
2048 * Keytable is used by BeholdTV Columbus
2049 * The "ascii-art picture" below (in comments, first row
2050 * is the keycode in hex, and subsequent row(s) shows
2051 * the button labels (several variants when appropriate)
2052 * helps to descide which keycodes to assign to the buttons.
2053 */
2054IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE] = {
2055
2056 /* 0x13 0x11 0x1C 0x12 *
2057 * Mute Source TV/FM Power *
2058 * */
2059
2060 [0x13] = KEY_MUTE,
2061 [0x11] = KEY_PROPS,
2062 [0x1C] = KEY_TUNER, /* KEY_TV/KEY_RADIO */
2063 [0x12] = KEY_POWER,
2064
2065 /* 0x01 0x02 0x03 0x0D *
2066 * 1 2 3 Stereo *
2067 * *
2068 * 0x04 0x05 0x06 0x19 *
2069 * 4 5 6 Snapshot *
2070 * *
2071 * 0x07 0x08 0x09 0x10 *
2072 * 7 8 9 Zoom *
2073 * */
2074 [0x01] = KEY_1,
2075 [0x02] = KEY_2,
2076 [0x03] = KEY_3,
2077 [0x0D] = KEY_SETUP, /* Setup key */
2078 [0x04] = KEY_4,
2079 [0x05] = KEY_5,
2080 [0x06] = KEY_6,
2081 [0x19] = KEY_BOOKMARKS, /* Snapshot key */
2082 [0x07] = KEY_7,
2083 [0x08] = KEY_8,
2084 [0x09] = KEY_9,
2085 [0x10] = KEY_ZOOM,
2086
2087 /* 0x0A 0x00 0x0B 0x0C *
2088 * RECALL 0 ChannelUp VolumeUp *
2089 * */
2090 [0x0A] = KEY_AGAIN,
2091 [0x00] = KEY_0,
2092 [0x0B] = KEY_CHANNELUP,
2093 [0x0C] = KEY_VOLUMEUP,
2094
2095 /* 0x1B 0x1D 0x15 0x18 *
2096 * Timeshift Record ChannelDown VolumeDown *
2097 * */
2098
2099 [0x1B] = KEY_REWIND,
2100 [0x1D] = KEY_RECORD,
2101 [0x15] = KEY_CHANNELDOWN,
2102 [0x18] = KEY_VOLUMEDOWN,
2103
2104 /* 0x0E 0x1E 0x0F 0x1A *
2105 * Stop Pause Previouse Next *
2106 * */
2107
2108 [0x0E] = KEY_STOP,
2109 [0x1E] = KEY_PAUSE,
2110 [0x0F] = KEY_PREVIOUS,
2111 [0x1A] = KEY_NEXT,
2112
2113};
2114EXPORT_SYMBOL_GPL(ir_codes_behold_columbus);
2115
2046/* 2116/*
2047 * Remote control for the Genius TVGO A11MCE 2117 * Remote control for the Genius TVGO A11MCE
2048 * Adrian Pardini <pardo.bsso@gmail.com> 2118 * Adrian Pardini <pardo.bsso@gmail.com>
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 82fe19c3b1db..98375955a84b 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -30,6 +30,7 @@
30#include "tuner-xc2028.h" 30#include "tuner-xc2028.h"
31#include <media/v4l2-common.h> 31#include <media/v4l2-common.h>
32#include <media/tveeprom.h> 32#include <media/tveeprom.h>
33#include "tea5767.h"
33 34
34/* commly used strings */ 35/* commly used strings */
35static char name_mute[] = "mute"; 36static char name_mute[] = "mute";
@@ -1049,7 +1050,7 @@ struct saa7134_board saa7134_boards[] = {
1049 }, 1050 },
1050 [SAA7134_BOARD_MANLI_MTV002] = { 1051 [SAA7134_BOARD_MANLI_MTV002] = {
1051 /* Ognjen Nastic <ognjen@logosoft.ba> */ 1052 /* Ognjen Nastic <ognjen@logosoft.ba> */
1052 .name = "Manli MuchTV M-TV002/Behold TV 403 FM", 1053 .name = "Manli MuchTV M-TV002",
1053 .audio_clock = 0x00200000, 1054 .audio_clock = 0x00200000,
1054 .tuner_type = TUNER_PHILIPS_PAL, 1055 .tuner_type = TUNER_PHILIPS_PAL,
1055 .radio_type = UNSET, 1056 .radio_type = UNSET,
@@ -1076,7 +1077,7 @@ struct saa7134_board saa7134_boards[] = {
1076 }, 1077 },
1077 [SAA7134_BOARD_MANLI_MTV001] = { 1078 [SAA7134_BOARD_MANLI_MTV001] = {
1078 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */ 1079 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
1079 .name = "Manli MuchTV M-TV001/Behold TV 401", 1080 .name = "Manli MuchTV M-TV001",
1080 .audio_clock = 0x00200000, 1081 .audio_clock = 0x00200000,
1081 .tuner_type = TUNER_PHILIPS_PAL, 1082 .tuner_type = TUNER_PHILIPS_PAL,
1082 .radio_type = UNSET, 1083 .radio_type = UNSET,
@@ -2198,6 +2199,8 @@ struct saa7134_board saa7134_boards[] = {
2198 }, 2199 },
2199 [SAA7134_BOARD_BEHOLD_409FM] = { 2200 [SAA7134_BOARD_BEHOLD_409FM] = {
2200 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */ 2201 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2202 /* Beholder Intl. Ltd. 2008 */
2203 /*Dmitry Belimov <d.belimov@gmail.com> */
2201 .name = "Beholder BeholdTV 409 FM", 2204 .name = "Beholder BeholdTV 409 FM",
2202 .audio_clock = 0x00187de7, 2205 .audio_clock = 0x00187de7,
2203 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 2206 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -2205,6 +2208,7 @@ struct saa7134_board saa7134_boards[] = {
2205 .tuner_addr = ADDR_UNSET, 2208 .tuner_addr = ADDR_UNSET,
2206 .radio_addr = ADDR_UNSET, 2209 .radio_addr = ADDR_UNSET,
2207 .tda9887_conf = TDA9887_PRESENT, 2210 .tda9887_conf = TDA9887_PRESENT,
2211 .gpiomask = 0x00008000,
2208 .inputs = {{ 2212 .inputs = {{
2209 .name = name_tv, 2213 .name = name_tv,
2210 .vmux = 3, 2214 .vmux = 3,
@@ -3576,12 +3580,15 @@ struct saa7134_board saa7134_boards[] = {
3576 }}, 3580 }},
3577 }, 3581 },
3578 [SAA7134_BOARD_BEHOLD_401] = { 3582 [SAA7134_BOARD_BEHOLD_401] = {
3583 /* Beholder Intl. Ltd. 2008 */
3584 /*Dmitry Belimov <d.belimov@gmail.com> */
3579 .name = "Beholder BeholdTV 401", 3585 .name = "Beholder BeholdTV 401",
3580 .audio_clock = 0x00187de7, 3586 .audio_clock = 0x00187de7,
3581 .tuner_type = TUNER_PHILIPS_FQ1216ME, 3587 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3582 .radio_type = UNSET, 3588 .radio_type = UNSET,
3583 .tuner_addr = ADDR_UNSET, 3589 .tuner_addr = ADDR_UNSET,
3584 .radio_addr = ADDR_UNSET, 3590 .radio_addr = ADDR_UNSET,
3591 .gpiomask = 0x00008000,
3585 .inputs = {{ 3592 .inputs = {{
3586 .name = name_svideo, 3593 .name = name_svideo,
3587 .vmux = 8, 3594 .vmux = 8,
@@ -3602,12 +3609,15 @@ struct saa7134_board saa7134_boards[] = {
3602 }, 3609 },
3603 }, 3610 },
3604 [SAA7134_BOARD_BEHOLD_403] = { 3611 [SAA7134_BOARD_BEHOLD_403] = {
3612 /* Beholder Intl. Ltd. 2008 */
3613 /*Dmitry Belimov <d.belimov@gmail.com> */
3605 .name = "Beholder BeholdTV 403", 3614 .name = "Beholder BeholdTV 403",
3606 .audio_clock = 0x00187de7, 3615 .audio_clock = 0x00187de7,
3607 .tuner_type = TUNER_PHILIPS_FQ1216ME, 3616 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3608 .radio_type = UNSET, 3617 .radio_type = UNSET,
3609 .tuner_addr = ADDR_UNSET, 3618 .tuner_addr = ADDR_UNSET,
3610 .radio_addr = ADDR_UNSET, 3619 .radio_addr = ADDR_UNSET,
3620 .gpiomask = 0x00008000,
3611 .inputs = {{ 3621 .inputs = {{
3612 .name = name_svideo, 3622 .name = name_svideo,
3613 .vmux = 8, 3623 .vmux = 8,
@@ -3624,12 +3634,15 @@ struct saa7134_board saa7134_boards[] = {
3624 }}, 3634 }},
3625 }, 3635 },
3626 [SAA7134_BOARD_BEHOLD_403FM] = { 3636 [SAA7134_BOARD_BEHOLD_403FM] = {
3637 /* Beholder Intl. Ltd. 2008 */
3638 /*Dmitry Belimov <d.belimov@gmail.com> */
3627 .name = "Beholder BeholdTV 403 FM", 3639 .name = "Beholder BeholdTV 403 FM",
3628 .audio_clock = 0x00187de7, 3640 .audio_clock = 0x00187de7,
3629 .tuner_type = TUNER_PHILIPS_FQ1216ME, 3641 .tuner_type = TUNER_PHILIPS_FQ1216ME,
3630 .radio_type = UNSET, 3642 .radio_type = UNSET,
3631 .tuner_addr = ADDR_UNSET, 3643 .tuner_addr = ADDR_UNSET,
3632 .radio_addr = ADDR_UNSET, 3644 .radio_addr = ADDR_UNSET,
3645 .gpiomask = 0x00008000,
3633 .inputs = {{ 3646 .inputs = {{
3634 .name = name_svideo, 3647 .name = name_svideo,
3635 .vmux = 8, 3648 .vmux = 8,
@@ -3650,6 +3663,8 @@ struct saa7134_board saa7134_boards[] = {
3650 }, 3663 },
3651 }, 3664 },
3652 [SAA7134_BOARD_BEHOLD_405] = { 3665 [SAA7134_BOARD_BEHOLD_405] = {
3666 /* Beholder Intl. Ltd. 2008 */
3667 /*Dmitry Belimov <d.belimov@gmail.com> */
3653 .name = "Beholder BeholdTV 405", 3668 .name = "Beholder BeholdTV 405",
3654 .audio_clock = 0x00187de7, 3669 .audio_clock = 0x00187de7,
3655 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3670 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3657,6 +3672,7 @@ struct saa7134_board saa7134_boards[] = {
3657 .tuner_addr = ADDR_UNSET, 3672 .tuner_addr = ADDR_UNSET,
3658 .radio_addr = ADDR_UNSET, 3673 .radio_addr = ADDR_UNSET,
3659 .tda9887_conf = TDA9887_PRESENT, 3674 .tda9887_conf = TDA9887_PRESENT,
3675 .gpiomask = 0x00008000,
3660 .inputs = {{ 3676 .inputs = {{
3661 .name = name_svideo, 3677 .name = name_svideo,
3662 .vmux = 8, 3678 .vmux = 8,
@@ -3674,6 +3690,8 @@ struct saa7134_board saa7134_boards[] = {
3674 }, 3690 },
3675 [SAA7134_BOARD_BEHOLD_405FM] = { 3691 [SAA7134_BOARD_BEHOLD_405FM] = {
3676 /* Sergey <skiv@orel.ru> */ 3692 /* Sergey <skiv@orel.ru> */
3693 /* Beholder Intl. Ltd. 2008 */
3694 /*Dmitry Belimov <d.belimov@gmail.com> */
3677 .name = "Beholder BeholdTV 405 FM", 3695 .name = "Beholder BeholdTV 405 FM",
3678 .audio_clock = 0x00187de7, 3696 .audio_clock = 0x00187de7,
3679 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3697 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3681,6 +3699,7 @@ struct saa7134_board saa7134_boards[] = {
3681 .tuner_addr = ADDR_UNSET, 3699 .tuner_addr = ADDR_UNSET,
3682 .radio_addr = ADDR_UNSET, 3700 .radio_addr = ADDR_UNSET,
3683 .tda9887_conf = TDA9887_PRESENT, 3701 .tda9887_conf = TDA9887_PRESENT,
3702 .gpiomask = 0x00008000,
3684 .inputs = {{ 3703 .inputs = {{
3685 .name = name_svideo, 3704 .name = name_svideo,
3686 .vmux = 8, 3705 .vmux = 8,
@@ -3701,6 +3720,8 @@ struct saa7134_board saa7134_boards[] = {
3701 }, 3720 },
3702 }, 3721 },
3703 [SAA7134_BOARD_BEHOLD_407] = { 3722 [SAA7134_BOARD_BEHOLD_407] = {
3723 /* Beholder Intl. Ltd. 2008 */
3724 /*Dmitry Belimov <d.belimov@gmail.com> */
3704 .name = "Beholder BeholdTV 407", 3725 .name = "Beholder BeholdTV 407",
3705 .audio_clock = 0x00187de7, 3726 .audio_clock = 0x00187de7,
3706 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3727 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3708,7 +3729,7 @@ struct saa7134_board saa7134_boards[] = {
3708 .tuner_addr = ADDR_UNSET, 3729 .tuner_addr = ADDR_UNSET,
3709 .radio_addr = ADDR_UNSET, 3730 .radio_addr = ADDR_UNSET,
3710 .tda9887_conf = TDA9887_PRESENT, 3731 .tda9887_conf = TDA9887_PRESENT,
3711 .gpiomask = 0xc0c000, 3732 .gpiomask = 0x00008000,
3712 .inputs = {{ 3733 .inputs = {{
3713 .name = name_svideo, 3734 .name = name_svideo,
3714 .vmux = 8, 3735 .vmux = 8,
@@ -3728,6 +3749,8 @@ struct saa7134_board saa7134_boards[] = {
3728 }}, 3749 }},
3729 }, 3750 },
3730 [SAA7134_BOARD_BEHOLD_407FM] = { 3751 [SAA7134_BOARD_BEHOLD_407FM] = {
3752 /* Beholder Intl. Ltd. 2008 */
3753 /*Dmitry Belimov <d.belimov@gmail.com> */
3731 .name = "Beholder BeholdTV 407 FM", 3754 .name = "Beholder BeholdTV 407 FM",
3732 .audio_clock = 0x00187de7, 3755 .audio_clock = 0x00187de7,
3733 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3756 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3735,7 +3758,7 @@ struct saa7134_board saa7134_boards[] = {
3735 .tuner_addr = ADDR_UNSET, 3758 .tuner_addr = ADDR_UNSET,
3736 .radio_addr = ADDR_UNSET, 3759 .radio_addr = ADDR_UNSET,
3737 .tda9887_conf = TDA9887_PRESENT, 3760 .tda9887_conf = TDA9887_PRESENT,
3738 .gpiomask = 0xc0c000, 3761 .gpiomask = 0x00008000,
3739 .inputs = {{ 3762 .inputs = {{
3740 .name = name_svideo, 3763 .name = name_svideo,
3741 .vmux = 8, 3764 .vmux = 8,
@@ -3760,6 +3783,8 @@ struct saa7134_board saa7134_boards[] = {
3760 }, 3783 },
3761 }, 3784 },
3762 [SAA7134_BOARD_BEHOLD_409] = { 3785 [SAA7134_BOARD_BEHOLD_409] = {
3786 /* Beholder Intl. Ltd. 2008 */
3787 /*Dmitry Belimov <d.belimov@gmail.com> */
3763 .name = "Beholder BeholdTV 409", 3788 .name = "Beholder BeholdTV 409",
3764 .audio_clock = 0x00187de7, 3789 .audio_clock = 0x00187de7,
3765 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3790 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3767,6 +3792,7 @@ struct saa7134_board saa7134_boards[] = {
3767 .tuner_addr = ADDR_UNSET, 3792 .tuner_addr = ADDR_UNSET,
3768 .radio_addr = ADDR_UNSET, 3793 .radio_addr = ADDR_UNSET,
3769 .tda9887_conf = TDA9887_PRESENT, 3794 .tda9887_conf = TDA9887_PRESENT,
3795 .gpiomask = 0x00008000,
3770 .inputs = {{ 3796 .inputs = {{
3771 .name = name_tv, 3797 .name = name_tv,
3772 .vmux = 3, 3798 .vmux = 3,
@@ -3783,6 +3809,8 @@ struct saa7134_board saa7134_boards[] = {
3783 }}, 3809 }},
3784 }, 3810 },
3785 [SAA7134_BOARD_BEHOLD_505FM] = { 3811 [SAA7134_BOARD_BEHOLD_505FM] = {
3812 /* Beholder Intl. Ltd. 2008 */
3813 /*Dmitry Belimov <d.belimov@gmail.com> */
3786 .name = "Beholder BeholdTV 505 FM/RDS", 3814 .name = "Beholder BeholdTV 505 FM/RDS",
3787 .audio_clock = 0x00200000, 3815 .audio_clock = 0x00200000,
3788 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3816 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3790,6 +3818,7 @@ struct saa7134_board saa7134_boards[] = {
3790 .tuner_addr = ADDR_UNSET, 3818 .tuner_addr = ADDR_UNSET,
3791 .radio_addr = ADDR_UNSET, 3819 .radio_addr = ADDR_UNSET,
3792 .tda9887_conf = TDA9887_PRESENT, 3820 .tda9887_conf = TDA9887_PRESENT,
3821 .gpiomask = 0x00008000,
3793 .inputs = {{ 3822 .inputs = {{
3794 .name = name_tv, 3823 .name = name_tv,
3795 .vmux = 3, 3824 .vmux = 3,
@@ -3814,6 +3843,8 @@ struct saa7134_board saa7134_boards[] = {
3814 }, 3843 },
3815 }, 3844 },
3816 [SAA7134_BOARD_BEHOLD_507_9FM] = { 3845 [SAA7134_BOARD_BEHOLD_507_9FM] = {
3846 /* Beholder Intl. Ltd. 2008 */
3847 /*Dmitry Belimov <d.belimov@gmail.com> */
3817 .name = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM", 3848 .name = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
3818 .audio_clock = 0x00187de7, 3849 .audio_clock = 0x00187de7,
3819 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 3850 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
@@ -3821,6 +3852,7 @@ struct saa7134_board saa7134_boards[] = {
3821 .tuner_addr = ADDR_UNSET, 3852 .tuner_addr = ADDR_UNSET,
3822 .radio_addr = ADDR_UNSET, 3853 .radio_addr = ADDR_UNSET,
3823 .tda9887_conf = TDA9887_PRESENT, 3854 .tda9887_conf = TDA9887_PRESENT,
3855 .gpiomask = 0x00008000,
3824 .inputs = {{ 3856 .inputs = {{
3825 .name = name_tv, 3857 .name = name_tv,
3826 .vmux = 3, 3858 .vmux = 3,
@@ -3841,6 +3873,8 @@ struct saa7134_board saa7134_boards[] = {
3841 }, 3873 },
3842 }, 3874 },
3843 [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = { 3875 [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
3876 /* Beholder Intl. Ltd. 2008 */
3877 /*Dmitry Belimov <d.belimov@gmail.com> */
3844 .name = "Beholder BeholdTV Columbus TVFM", 3878 .name = "Beholder BeholdTV Columbus TVFM",
3845 .audio_clock = 0x00187de7, 3879 .audio_clock = 0x00187de7,
3846 .tuner_type = TUNER_ALPS_TSBE5_PAL, 3880 .tuner_type = TUNER_ALPS_TSBE5_PAL,
@@ -3848,23 +3882,28 @@ struct saa7134_board saa7134_boards[] = {
3848 .tuner_addr = ADDR_UNSET, 3882 .tuner_addr = ADDR_UNSET,
3849 .radio_addr = ADDR_UNSET, 3883 .radio_addr = ADDR_UNSET,
3850 .tda9887_conf = TDA9887_PRESENT, 3884 .tda9887_conf = TDA9887_PRESENT,
3885 .gpiomask = 0x000A8004,
3851 .inputs = {{ 3886 .inputs = {{
3852 .name = name_tv, 3887 .name = name_tv,
3853 .vmux = 3, 3888 .vmux = 3,
3854 .amux = TV, 3889 .amux = TV,
3855 .tv = 1, 3890 .tv = 1,
3856 },{ 3891 .gpio = 0x000A8004,
3892 }, {
3857 .name = name_comp1, 3893 .name = name_comp1,
3858 .vmux = 1, 3894 .vmux = 1,
3859 .amux = LINE1, 3895 .amux = LINE1,
3860 },{ 3896 .gpio = 0x000A8000,
3897 }, {
3861 .name = name_svideo, 3898 .name = name_svideo,
3862 .vmux = 8, 3899 .vmux = 8,
3863 .amux = LINE1, 3900 .amux = LINE1,
3864 }}, 3901 .gpio = 0x000A8000,
3902 } },
3865 .radio = { 3903 .radio = {
3866 .name = name_radio, 3904 .name = name_radio,
3867 .amux = LINE2, 3905 .amux = LINE2,
3906 .gpio = 0x000A8000,
3868 }, 3907 },
3869 }, 3908 },
3870 [SAA7134_BOARD_BEHOLD_607_9FM] = { 3909 [SAA7134_BOARD_BEHOLD_607_9FM] = {
@@ -5471,7 +5510,6 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5471 case SAA7134_BOARD_AVERMEDIA_CARDBUS: 5510 case SAA7134_BOARD_AVERMEDIA_CARDBUS:
5472 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 5511 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5473 case SAA7134_BOARD_AVERMEDIA_M115: 5512 case SAA7134_BOARD_AVERMEDIA_M115:
5474 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5475 case SAA7134_BOARD_AVERMEDIA_A16D: 5513 case SAA7134_BOARD_AVERMEDIA_A16D:
5476 /* power-down tuner chip */ 5514 /* power-down tuner chip */
5477 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0); 5515 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0);
@@ -5482,6 +5520,18 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5482 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); 5520 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
5483 msleep(10); 5521 msleep(10);
5484 break; 5522 break;
5523 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5524 /* power-down tuner chip */
5525 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
5526 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
5527 msleep(10);
5528 /* power-up tuner chip */
5529 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
5530 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
5531 msleep(10);
5532 /* remote via GPIO */
5533 dev->has_remote = SAA7134_REMOTE_GPIO;
5534 break;
5485 case SAA7134_BOARD_RTD_VFG7350: 5535 case SAA7134_BOARD_RTD_VFG7350:
5486 5536
5487 /* 5537 /*
@@ -5770,6 +5820,20 @@ int saa7134_board_init2(struct saa7134_dev *dev)
5770 break; 5820 break;
5771 } 5821 }
5772 break; 5822 break;
5823 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5824 {
5825 struct v4l2_priv_tun_config tea5767_cfg;
5826 struct tea5767_ctrl ctl;
5827
5828 dev->i2c_client.addr = 0xC0;
5829 /* set TEA5767(analog FM) defines */
5830 memset(&ctl, 0, sizeof(ctl));
5831 ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
5832 tea5767_cfg.tuner = TUNER_TEA5767;
5833 tea5767_cfg.priv = &ctl;
5834 saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, &tea5767_cfg);
5835 }
5836 break;
5773 } 5837 }
5774 5838
5775 if (dev->tuner_type == TUNER_XC2028) { 5839 if (dev->tuner_type == TUNER_XC2028) {
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c
index 65f8e594d6fb..767ff30832f2 100644
--- a/drivers/media/video/saa7134/saa7134-input.c
+++ b/drivers/media/video/saa7134/saa7134-input.c
@@ -331,6 +331,11 @@ int saa7134_input_init1(struct saa7134_dev *dev)
331 break; 331 break;
332 case SAA7134_BOARD_MANLI_MTV001: 332 case SAA7134_BOARD_MANLI_MTV001:
333 case SAA7134_BOARD_MANLI_MTV002: 333 case SAA7134_BOARD_MANLI_MTV002:
334 ir_codes = ir_codes_manli;
335 mask_keycode = 0x001f00;
336 mask_keyup = 0x004000;
337 polling = 50; /* ms */
338 break;
334 case SAA7134_BOARD_BEHOLD_409FM: 339 case SAA7134_BOARD_BEHOLD_409FM:
335 case SAA7134_BOARD_BEHOLD_401: 340 case SAA7134_BOARD_BEHOLD_401:
336 case SAA7134_BOARD_BEHOLD_403: 341 case SAA7134_BOARD_BEHOLD_403:
@@ -343,7 +348,13 @@ int saa7134_input_init1(struct saa7134_dev *dev)
343 case SAA7134_BOARD_BEHOLD_505FM: 348 case SAA7134_BOARD_BEHOLD_505FM:
344 case SAA7134_BOARD_BEHOLD_507_9FM: 349 case SAA7134_BOARD_BEHOLD_507_9FM:
345 ir_codes = ir_codes_manli; 350 ir_codes = ir_codes_manli;
346 mask_keycode = 0x001f00; 351 mask_keycode = 0x003f00;
352 mask_keyup = 0x004000;
353 polling = 50; /* ms */
354 break;
355 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
356 ir_codes = ir_codes_behold_columbus;
357 mask_keycode = 0x003f00;
347 mask_keyup = 0x004000; 358 mask_keyup = 0x004000;
348 polling = 50; // ms 359 polling = 50; // ms
349 break; 360 break;
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index 75a3482866fe..bfee8be5d63f 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -142,6 +142,7 @@ extern IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE];
142extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE]; 142extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE];
143extern IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE]; 143extern IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE];
144extern IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE]; 144extern IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE];
145extern IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE];
145extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE]; 146extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE];
146extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE]; 147extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE];
147extern IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE]; 148extern IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE];