diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.bttv | 1 | ||||
-rw-r--r-- | drivers/media/video/bttv-cards.c | 23 | ||||
-rw-r--r-- | drivers/media/video/bttv-input.c | 6 | ||||
-rw-r--r-- | drivers/media/video/bttv.h | 1 |
4 files changed, 31 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv index 74fb085e178b..b72706c58a44 100644 --- a/Documentation/video4linux/CARDLIST.bttv +++ b/Documentation/video4linux/CARDLIST.bttv | |||
@@ -142,3 +142,4 @@ | |||
142 | 141 -> Asound Skyeye PCTV | 142 | 141 -> Asound Skyeye PCTV |
143 | 142 -> Sabrent TV-FM (bttv version) | 143 | 142 -> Sabrent TV-FM (bttv version) |
144 | 143 -> Hauppauge ImpactVCB (bt878) [0070:13eb] | 144 | 143 -> Hauppauge ImpactVCB (bt878) [0070:13eb] |
145 | 144 -> MagicTV | ||
diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c index 1621ab133d23..6c92a6f5fc10 100644 --- a/drivers/media/video/bttv-cards.c +++ b/drivers/media/video/bttv-cards.c | |||
@@ -2836,6 +2836,29 @@ struct tvcard bttv_tvcards[] = { | |||
2836 | .tuner_addr = ADDR_UNSET, | 2836 | .tuner_addr = ADDR_UNSET, |
2837 | .radio_addr = ADDR_UNSET, | 2837 | .radio_addr = ADDR_UNSET, |
2838 | }, | 2838 | }, |
2839 | [BTTV_BOARD_MACHTV_MAGICTV] = { | ||
2840 | /* Julian Calaby <julian.calaby@gmail.com> | ||
2841 | * Slightly different from original MachTV definition (0x60) | ||
2842 | |||
2843 | * FIXME: RegSpy says gpiomask should be "0x001c800f", but it | ||
2844 | * stuffs up remote chip. Bug is a pin on the jaecs is not set | ||
2845 | * properly (methinks) causing no keyup bits being set */ | ||
2846 | |||
2847 | .name = "MagicTV", /* rebranded MachTV */ | ||
2848 | .video_inputs = 3, | ||
2849 | .audio_inputs = 1, | ||
2850 | .tuner = 0, | ||
2851 | .svhs = 2, | ||
2852 | .gpiomask = 7, | ||
2853 | .muxsel = { 2, 3, 1, 1 }, | ||
2854 | .audiomux = { 0, 1, 2, 3, 4 }, | ||
2855 | .tuner_type = TUNER_TEMIC_4009FR5_PAL, | ||
2856 | .tuner_addr = ADDR_UNSET, | ||
2857 | .radio_addr = ADDR_UNSET, | ||
2858 | .pll = PLL_28, | ||
2859 | .has_radio = 1, | ||
2860 | .has_remote = 1, | ||
2861 | }, | ||
2839 | }; | 2862 | }; |
2840 | 2863 | ||
2841 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); | 2864 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); |
diff --git a/drivers/media/video/bttv-input.c b/drivers/media/video/bttv-input.c index 12197f1b2757..221b36e7f392 100644 --- a/drivers/media/video/bttv-input.c +++ b/drivers/media/video/bttv-input.c | |||
@@ -583,6 +583,12 @@ int bttv_input_init(struct bttv *btv) | |||
583 | btv->custom_irq = bttv_rc5_irq; | 583 | btv->custom_irq = bttv_rc5_irq; |
584 | ir->rc5_gpio = 1; | 584 | ir->rc5_gpio = 1; |
585 | break; | 585 | break; |
586 | case BTTV_BOARD_MACHTV_MAGICTV: | ||
587 | ir_codes = ir_codes_apac_viewcomp; | ||
588 | ir->mask_keycode = 0x001F00; | ||
589 | ir->mask_keyup = 0x004000; | ||
590 | ir->polling = 50; /* ms */ | ||
591 | break; | ||
586 | } | 592 | } |
587 | if (NULL == ir_codes) { | 593 | if (NULL == ir_codes) { |
588 | dprintk(KERN_INFO "Ooops: IR config error [card=%d]\n",btv->c.type); | 594 | dprintk(KERN_INFO "Ooops: IR config error [card=%d]\n",btv->c.type); |
diff --git a/drivers/media/video/bttv.h b/drivers/media/video/bttv.h index 9feaa6bab207..e370d74f2a1b 100644 --- a/drivers/media/video/bttv.h +++ b/drivers/media/video/bttv.h | |||
@@ -166,6 +166,7 @@ | |||
166 | #define BTTV_BOARD_ASOUND_SKYEYE 0x8d | 166 | #define BTTV_BOARD_ASOUND_SKYEYE 0x8d |
167 | #define BTTV_BOARD_SABRENT_TVFM 0x8e | 167 | #define BTTV_BOARD_SABRENT_TVFM 0x8e |
168 | #define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f | 168 | #define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f |
169 | #define BTTV_BOARD_MACHTV_MAGICTV 0x90 | ||
169 | 170 | ||
170 | /* i2c address list */ | 171 | /* i2c address list */ |
171 | #define I2C_TSA5522 0xc2 | 172 | #define I2C_TSA5522 0xc2 |