diff options
| author | Ramiro Morales <ramiro@rmorales.net> | 2010-12-26 16:13:30 -0500 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-12-29 05:17:17 -0500 |
| commit | b7a0f2e793a52b306e682a0e2e9a0b6f0f0a730e (patch) | |
| tree | 137d0e3af908043048e1c08274762236ce637137 | |
| parent | 44c6e2a7c2ec76dd495a0f330f9beac572a2fdd7 (diff) | |
[media] saa7134: Add support for Compro VideoMate Vista M1F
Signed-off-by: Pavel Osnova <pvosnova@gmail.com>
Signed-off-by: Ramiro Morales <ramiro@rmorales.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
| -rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 1 | ||||
| -rw-r--r-- | drivers/media/rc/keymaps/Makefile | 1 | ||||
| -rw-r--r-- | drivers/media/rc/keymaps/rc-videomate-m1f.c | 92 | ||||
| -rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 38 | ||||
| -rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 5 | ||||
| -rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 | ||||
| -rw-r--r-- | include/media/rc-map.h | 1 |
7 files changed, 139 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 8d9afc7d8014..8db1a94e6986 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
| @@ -180,3 +180,4 @@ | |||
| 180 | 179 -> Beholder BeholdTV A7 [5ace:7090] | 180 | 179 -> Beholder BeholdTV A7 [5ace:7090] |
| 181 | 180 -> Avermedia PCI M733A [1461:4155,1461:4255] | 181 | 180 -> Avermedia PCI M733A [1461:4155,1461:4255] |
| 182 | 181 -> TechoTrend TT-budget T-3000 [13c2:2804] | 182 | 181 -> TechoTrend TT-budget T-3000 [13c2:2804] |
| 183 | 183 -> Compro VideoMate Vista M1F [185b:c900] | ||
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile index 148900f443d2..0659e9f50144 100644 --- a/drivers/media/rc/keymaps/Makefile +++ b/drivers/media/rc/keymaps/Makefile | |||
| @@ -81,6 +81,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ | |||
| 81 | rc-trekstor.o \ | 81 | rc-trekstor.o \ |
| 82 | rc-tt-1500.o \ | 82 | rc-tt-1500.o \ |
| 83 | rc-twinhan1027.o \ | 83 | rc-twinhan1027.o \ |
| 84 | rc-videomate-m1f.o \ | ||
| 84 | rc-videomate-s350.o \ | 85 | rc-videomate-s350.o \ |
| 85 | rc-videomate-tv-pvr.o \ | 86 | rc-videomate-tv-pvr.o \ |
| 86 | rc-winfast.o \ | 87 | rc-winfast.o \ |
diff --git a/drivers/media/rc/keymaps/rc-videomate-m1f.c b/drivers/media/rc/keymaps/rc-videomate-m1f.c new file mode 100644 index 000000000000..4994d405c0a1 --- /dev/null +++ b/drivers/media/rc/keymaps/rc-videomate-m1f.c | |||
| @@ -0,0 +1,92 @@ | |||
| 1 | /* videomate-m1f.h - Keytable for videomate_m1f Remote Controller | ||
| 2 | * | ||
| 3 | * keymap imported from ir-keymaps.c | ||
| 4 | * | ||
| 5 | * Copyright (c) 2010 by Pavel Osnova <pvosnova@gmail.com> | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License as published by | ||
| 9 | * the Free Software Foundation; either version 2 of the License, or | ||
| 10 | * (at your option) any later version. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <media/rc-map.h> | ||
| 14 | |||
| 15 | static struct rc_map_table videomate_m1f[] = { | ||
| 16 | { 0x01, KEY_POWER }, | ||
| 17 | { 0x31, KEY_TUNER }, | ||
| 18 | { 0x33, KEY_VIDEO }, | ||
| 19 | { 0x2f, KEY_RADIO }, | ||
| 20 | { 0x30, KEY_CAMERA }, | ||
| 21 | { 0x2d, KEY_NEW }, /* TV record button */ | ||
| 22 | { 0x17, KEY_CYCLEWINDOWS }, | ||
| 23 | { 0x2c, KEY_ANGLE }, | ||
| 24 | { 0x2b, KEY_LANGUAGE }, | ||
| 25 | { 0x32, KEY_SEARCH }, /* '...' button */ | ||
| 26 | { 0x11, KEY_UP }, | ||
| 27 | { 0x13, KEY_LEFT }, | ||
| 28 | { 0x15, KEY_OK }, | ||
| 29 | { 0x14, KEY_RIGHT }, | ||
| 30 | { 0x12, KEY_DOWN }, | ||
| 31 | { 0x16, KEY_BACKSPACE }, | ||
| 32 | { 0x02, KEY_ZOOM }, /* WIN key */ | ||
| 33 | { 0x04, KEY_INFO }, | ||
| 34 | { 0x05, KEY_VOLUMEUP }, | ||
| 35 | { 0x03, KEY_MUTE }, | ||
| 36 | { 0x07, KEY_CHANNELUP }, | ||
| 37 | { 0x06, KEY_VOLUMEDOWN }, | ||
| 38 | { 0x08, KEY_CHANNELDOWN }, | ||
| 39 | { 0x0c, KEY_RECORD }, | ||
| 40 | { 0x0e, KEY_STOP }, | ||
| 41 | { 0x0a, KEY_BACK }, | ||
| 42 | { 0x0b, KEY_PLAY }, | ||
| 43 | { 0x09, KEY_FORWARD }, | ||
| 44 | { 0x10, KEY_PREVIOUS }, | ||
| 45 | { 0x0d, KEY_PAUSE }, | ||
| 46 | { 0x0f, KEY_NEXT }, | ||
| 47 | { 0x1e, KEY_1 }, | ||
| 48 | { 0x1f, KEY_2 }, | ||
| 49 | { 0x20, KEY_3 }, | ||
| 50 | { 0x21, KEY_4 }, | ||
| 51 | { 0x22, KEY_5 }, | ||
| 52 | { 0x23, KEY_6 }, | ||
| 53 | { 0x24, KEY_7 }, | ||
| 54 | { 0x25, KEY_8 }, | ||
| 55 | { 0x26, KEY_9 }, | ||
| 56 | { 0x2a, KEY_NUMERIC_STAR }, /* * key */ | ||
| 57 | { 0x1d, KEY_0 }, | ||
| 58 | { 0x29, KEY_SUBTITLE }, /* # key */ | ||
| 59 | { 0x27, KEY_CLEAR }, | ||
| 60 | { 0x34, KEY_SCREEN }, | ||
| 61 | { 0x28, KEY_ENTER }, | ||
| 62 | { 0x19, KEY_RED }, | ||
| 63 | { 0x1a, KEY_GREEN }, | ||
| 64 | { 0x1b, KEY_YELLOW }, | ||
| 65 | { 0x1c, KEY_BLUE }, | ||
| 66 | { 0x18, KEY_TEXT }, | ||
| 67 | }; | ||
| 68 | |||
| 69 | static struct rc_map_list videomate_m1f_map = { | ||
| 70 | .map = { | ||
| 71 | .scan = videomate_m1f, | ||
| 72 | .size = ARRAY_SIZE(videomate_m1f), | ||
| 73 | .rc_type = RC_TYPE_UNKNOWN, /* Legacy IR type */ | ||
| 74 | .name = RC_MAP_VIDEOMATE_M1F, | ||
| 75 | } | ||
| 76 | }; | ||
| 77 | |||
| 78 | static int __init init_rc_map_videomate_m1f(void) | ||
| 79 | { | ||
| 80 | return rc_map_register(&videomate_m1f_map); | ||
| 81 | } | ||
| 82 | |||
| 83 | static void __exit exit_rc_map_videomate_m1f(void) | ||
| 84 | { | ||
| 85 | rc_map_unregister(&videomate_m1f_map); | ||
| 86 | } | ||
| 87 | |||
| 88 | module_init(init_rc_map_videomate_m1f) | ||
| 89 | module_exit(exit_rc_map_videomate_m1f) | ||
| 90 | |||
| 91 | MODULE_LICENSE("GPL"); | ||
| 92 | MODULE_AUTHOR("Pavel Osnova <pvosnova@gmail.com>"); | ||
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index ff23e6ebdde4..e7aa588c6c5a 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
| @@ -5538,6 +5538,37 @@ struct saa7134_board saa7134_boards[] = { | |||
| 5538 | .amux = LINE2, | 5538 | .amux = LINE2, |
| 5539 | } }, | 5539 | } }, |
| 5540 | }, | 5540 | }, |
| 5541 | [SAA7134_BOARD_VIDEOMATE_M1F] = { | ||
| 5542 | /* Pavel Osnova <pvosnova@gmail.com> */ | ||
| 5543 | .name = "Compro VideoMate Vista M1F", | ||
| 5544 | .audio_clock = 0x00187de7, | ||
| 5545 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | ||
| 5546 | .radio_type = TUNER_TEA5767, | ||
| 5547 | .tuner_addr = ADDR_UNSET, | ||
| 5548 | .radio_addr = 0x60, | ||
| 5549 | .inputs = { { | ||
| 5550 | .name = name_tv, | ||
| 5551 | .vmux = 1, | ||
| 5552 | .amux = TV, | ||
| 5553 | .tv = 1, | ||
| 5554 | }, { | ||
| 5555 | .name = name_comp1, | ||
| 5556 | .vmux = 3, | ||
| 5557 | .amux = LINE2, | ||
| 5558 | }, { | ||
| 5559 | .name = name_svideo, | ||
| 5560 | .vmux = 8, | ||
| 5561 | .amux = LINE2, | ||
| 5562 | } }, | ||
| 5563 | .radio = { | ||
| 5564 | .name = name_radio, | ||
| 5565 | .amux = LINE1, | ||
| 5566 | }, | ||
| 5567 | .mute = { | ||
| 5568 | .name = name_mute, | ||
| 5569 | .amux = TV, | ||
| 5570 | }, | ||
| 5571 | }, | ||
| 5541 | 5572 | ||
| 5542 | }; | 5573 | }; |
| 5543 | 5574 | ||
| @@ -6731,6 +6762,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
| 6731 | .subdevice = 0x7090, | 6762 | .subdevice = 0x7090, |
| 6732 | .driver_data = SAA7134_BOARD_BEHOLD_A7, | 6763 | .driver_data = SAA7134_BOARD_BEHOLD_A7, |
| 6733 | }, { | 6764 | }, { |
| 6765 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
| 6766 | .device = PCI_DEVICE_ID_PHILIPS_SAA7135, | ||
| 6767 | .subvendor = 0x185b, | ||
| 6768 | .subdevice = 0xc900, | ||
| 6769 | .driver_data = SAA7134_BOARD_VIDEOMATE_M1F, | ||
| 6770 | }, { | ||
| 6734 | /* --- boards without eeprom + subsystem ID --- */ | 6771 | /* --- boards without eeprom + subsystem ID --- */ |
| 6735 | .vendor = PCI_VENDOR_ID_PHILIPS, | 6772 | .vendor = PCI_VENDOR_ID_PHILIPS, |
| 6736 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 6773 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
| @@ -7046,6 +7083,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
| 7046 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: | 7083 | case SAA7134_BOARD_VIDEOMATE_TV_PVR: |
| 7047 | case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS: | 7084 | case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS: |
| 7048 | case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: | 7085 | case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: |
| 7086 | case SAA7134_BOARD_VIDEOMATE_M1F: | ||
| 7049 | case SAA7134_BOARD_VIDEOMATE_DVBT_300: | 7087 | case SAA7134_BOARD_VIDEOMATE_DVBT_300: |
| 7050 | case SAA7134_BOARD_VIDEOMATE_DVBT_200: | 7088 | case SAA7134_BOARD_VIDEOMATE_DVBT_200: |
| 7051 | case SAA7134_BOARD_VIDEOMATE_DVBT_200A: | 7089 | case SAA7134_BOARD_VIDEOMATE_DVBT_200A: |
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index 98678d941847..dc646e65edb7 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
| @@ -721,6 +721,11 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
| 721 | mask_keyup = 0x020000; | 721 | mask_keyup = 0x020000; |
| 722 | polling = 50; /* ms */ | 722 | polling = 50; /* ms */ |
| 723 | break; | 723 | break; |
| 724 | case SAA7134_BOARD_VIDEOMATE_M1F: | ||
| 725 | ir_codes = RC_MAP_VIDEOMATE_M1F; | ||
| 726 | mask_keycode = 0x0ff00; | ||
| 727 | mask_keyup = 0x040000; | ||
| 728 | break; | ||
| 724 | } | 729 | } |
| 725 | if (NULL == ir_codes) { | 730 | if (NULL == ir_codes) { |
| 726 | printk("%s: Oops: IR config error [card=%d]\n", | 731 | printk("%s: Oops: IR config error [card=%d]\n", |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index babfbe7543eb..5b0a347b0b8f 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
| @@ -326,6 +326,7 @@ struct saa7134_card_ir { | |||
| 326 | #define SAA7134_BOARD_AVERMEDIA_M733A 180 | 326 | #define SAA7134_BOARD_AVERMEDIA_M733A 180 |
| 327 | #define SAA7134_BOARD_TECHNOTREND_BUDGET_T3000 181 | 327 | #define SAA7134_BOARD_TECHNOTREND_BUDGET_T3000 181 |
| 328 | #define SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG 182 | 328 | #define SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG 182 |
| 329 | #define SAA7134_BOARD_VIDEOMATE_M1F 183 | ||
| 329 | 330 | ||
| 330 | #define SAA7134_MAXBOARDS 32 | 331 | #define SAA7134_MAXBOARDS 32 |
| 331 | #define SAA7134_INPUT_MAX 8 | 332 | #define SAA7134_INPUT_MAX 8 |
diff --git a/include/media/rc-map.h b/include/media/rc-map.h index 5d3a45748767..ee9e2f747c76 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h | |||
| @@ -138,6 +138,7 @@ void rc_map_init(void); | |||
| 138 | #define RC_MAP_TREKSTOR "rc-trekstor" | 138 | #define RC_MAP_TREKSTOR "rc-trekstor" |
| 139 | #define RC_MAP_TT_1500 "rc-tt-1500" | 139 | #define RC_MAP_TT_1500 "rc-tt-1500" |
| 140 | #define RC_MAP_TWINHAN_VP1027_DVBS "rc-twinhan1027" | 140 | #define RC_MAP_TWINHAN_VP1027_DVBS "rc-twinhan1027" |
| 141 | #define RC_MAP_VIDEOMATE_M1F "rc-videomate-m1f" | ||
| 141 | #define RC_MAP_VIDEOMATE_S350 "rc-videomate-s350" | 142 | #define RC_MAP_VIDEOMATE_S350 "rc-videomate-s350" |
| 142 | #define RC_MAP_VIDEOMATE_TV_PVR "rc-videomate-tv-pvr" | 143 | #define RC_MAP_VIDEOMATE_TV_PVR "rc-videomate-tv-pvr" |
| 143 | #define RC_MAP_WINFAST "rc-winfast" | 144 | #define RC_MAP_WINFAST "rc-winfast" |
