Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Ramiro Morales and committed by
Mauro Carvalho Chehab
b7a0f2e7 44c6e2a7

+139
+1
Documentation/video4linux/CARDLIST.saa7134
··· 180 180 179 -> Beholder BeholdTV A7 [5ace:7090] 181 181 180 -> Avermedia PCI M733A [1461:4155,1461:4255] 182 182 181 -> TechoTrend TT-budget T-3000 [13c2:2804] 183 + 183 -> Compro VideoMate Vista M1F [185b:c900]
+1
drivers/media/rc/keymaps/Makefile
··· 81 81 rc-trekstor.o \ 82 82 rc-tt-1500.o \ 83 83 rc-twinhan1027.o \ 84 + rc-videomate-m1f.o \ 84 85 rc-videomate-s350.o \ 85 86 rc-videomate-tv-pvr.o \ 86 87 rc-winfast.o \
+92
drivers/media/rc/keymaps/rc-videomate-m1f.c
··· 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>");
+38
drivers/media/video/saa7134/saa7134-cards.c
··· 5538 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 ··· 6762 6731 .subdevice = 0x7090, 6763 6732 .driver_data = SAA7134_BOARD_BEHOLD_A7, 6764 6733 }, { 6734 + .vendor = PCI_VENDOR_ID_PHILIPS, 6735 + .device = PCI_DEVICE_ID_PHILIPS_SAA7135, 6736 + .subvendor = 0x185b, 6737 + .subdevice = 0xc900, 6738 + .driver_data = SAA7134_BOARD_VIDEOMATE_M1F, 6739 + }, { 6765 6740 /* --- boards without eeprom + subsystem ID --- */ 6766 6741 .vendor = PCI_VENDOR_ID_PHILIPS, 6767 6742 .device = PCI_DEVICE_ID_PHILIPS_SAA7134, ··· 7083 7046 case SAA7134_BOARD_VIDEOMATE_TV_PVR: 7084 7047 case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS: 7085 7048 case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: 7049 + case SAA7134_BOARD_VIDEOMATE_M1F: 7086 7050 case SAA7134_BOARD_VIDEOMATE_DVBT_300: 7087 7051 case SAA7134_BOARD_VIDEOMATE_DVBT_200: 7088 7052 case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
+5
drivers/media/video/saa7134/saa7134-input.c
··· 721 721 mask_keyup = 0x020000; 722 722 polling = 50; /* ms */ 723 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 730 if (NULL == ir_codes) { 726 731 printk("%s: Oops: IR config error [card=%d]\n",
+1
drivers/media/video/saa7134/saa7134.h
··· 326 326 #define SAA7134_BOARD_AVERMEDIA_M733A 180 327 327 #define SAA7134_BOARD_TECHNOTREND_BUDGET_T3000 181 328 328 #define SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG 182 329 + #define SAA7134_BOARD_VIDEOMATE_M1F 183 329 330 330 331 #define SAA7134_MAXBOARDS 32 331 332 #define SAA7134_INPUT_MAX 8
+1
include/media/rc-map.h
··· 138 138 #define RC_MAP_TREKSTOR "rc-trekstor" 139 139 #define RC_MAP_TT_1500 "rc-tt-1500" 140 140 #define RC_MAP_TWINHAN_VP1027_DVBS "rc-twinhan1027" 141 + #define RC_MAP_VIDEOMATE_M1F "rc-videomate-m1f" 141 142 #define RC_MAP_VIDEOMATE_S350 "rc-videomate-s350" 142 143 #define RC_MAP_VIDEOMATE_TV_PVR "rc-videomate-tv-pvr" 143 144 #define RC_MAP_WINFAST "rc-winfast"