Loading drivers/media/rc/keymaps/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ rc-anysee.o \ rc-apac-viewcomp.o \ rc-asus-pc39.o \ rc-asus-ps3-100.o \ rc-ati-tv-wonder-hd-600.o \ rc-ati-x10.o \ rc-avermedia-a16d.o \ Loading drivers/media/rc/keymaps/rc-asus-ps3-100.c 0 → 100644 +91 −0 Original line number Diff line number Diff line /* asus-ps3-100.h - Keytable for asus_ps3_100 Remote Controller * * Copyright (c) 2012 by Mauro Carvalho Chehab <mchehab@redhat.com> * * Based on a previous patch from Remi Schwartz <remi.schwartz@gmail.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #include <media/rc-map.h> #include <linux/module.h> static struct rc_map_table asus_ps3_100[] = { { 0x081c, KEY_HOME }, /* home */ { 0x081e, KEY_TV }, /* tv */ { 0x0803, KEY_TEXT }, /* teletext */ { 0x0829, KEY_POWER }, /* close */ { 0x080b, KEY_RED }, /* red */ { 0x080d, KEY_YELLOW }, /* yellow */ { 0x0806, KEY_BLUE }, /* blue */ { 0x0807, KEY_GREEN }, /* green */ /* Keys 0 to 9 */ { 0x082a, KEY_0 }, { 0x0816, KEY_1 }, { 0x0812, KEY_2 }, { 0x0814, KEY_3 }, { 0x0836, KEY_4 }, { 0x0832, KEY_5 }, { 0x0834, KEY_6 }, { 0x080e, KEY_7 }, { 0x080a, KEY_8 }, { 0x080c, KEY_9 }, { 0x0815, KEY_VOLUMEUP }, { 0x0826, KEY_VOLUMEDOWN }, { 0x0835, KEY_CHANNELUP }, /* channel / program + */ { 0x0824, KEY_CHANNELDOWN }, /* channel / program - */ { 0x0808, KEY_UP }, { 0x0804, KEY_DOWN }, { 0x0818, KEY_LEFT }, { 0x0810, KEY_RIGHT }, { 0x0825, KEY_ENTER }, /* enter */ { 0x0822, KEY_EXIT }, /* back */ { 0x082c, KEY_AB }, /* recall */ { 0x0820, KEY_AUDIO }, /* TV audio */ { 0x0837, KEY_SCREEN }, /* snapshot */ { 0x082e, KEY_ZOOM }, /* full screen */ { 0x0802, KEY_MUTE }, /* mute */ { 0x0831, KEY_REWIND }, /* backward << */ { 0x0811, KEY_RECORD }, /* recording */ { 0x0809, KEY_STOP }, { 0x0805, KEY_FASTFORWARD }, /* forward >> */ { 0x0821, KEY_PREVIOUS }, /* rew */ { 0x081a, KEY_PAUSE }, /* pause */ { 0x0839, KEY_PLAY }, /* play */ { 0x0819, KEY_NEXT }, /* forward */ }; static struct rc_map_list asus_ps3_100_map = { .map = { .scan = asus_ps3_100, .size = ARRAY_SIZE(asus_ps3_100), .rc_type = RC_TYPE_RC5, .name = RC_MAP_ASUS_PS3_100, } }; static int __init init_rc_map_asus_ps3_100(void) { return rc_map_register(&asus_ps3_100_map); } static void __exit exit_rc_map_asus_ps3_100(void) { rc_map_unregister(&asus_ps3_100_map); } module_init(init_rc_map_asus_ps3_100) module_exit(exit_rc_map_asus_ps3_100) MODULE_LICENSE("GPL"); MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>"); drivers/media/video/saa7134/saa7134-cards.c +51 −0 Original line number Diff line number Diff line Loading @@ -5080,6 +5080,36 @@ struct saa7134_board saa7134_boards[] = { .gpio = 0x0200000, }, }, [SAA7134_BOARD_ASUSTeK_PS3_100] = { .name = "Asus My Cinema PS3-100", .audio_clock = 0x00187de7, .tuner_type = TUNER_PHILIPS_TDA8290, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, .tuner_config = 2, .gpiomask = 1 << 21, .mpeg = SAA7134_MPEG_DVB, .inputs = {{ .name = name_tv, .vmux = 1, .amux = TV, .tv = 1, }, { .name = name_comp, .vmux = 0, .amux = LINE2, }, { .name = name_svideo, .vmux = 8, .amux = LINE2, } }, .radio = { .name = name_radio, .amux = TV, .gpio = 0x0200000, }, }, [SAA7134_BOARD_REAL_ANGEL_220] = { .name = "Zogis Real Angel 220", .audio_clock = 0x00187de7, Loading Loading @@ -6875,6 +6905,18 @@ struct pci_device_id saa7134_pci_tbl[] = { .subvendor = 0x1043, .subdevice = 0x4878, /* REV:1.02G */ .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, }, { .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7133, .subvendor = 0x1043, .subdevice = 0x48cd, .driver_data = SAA7134_BOARD_ASUSTeK_PS3_100, }, { .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, .subvendor = 0x17de, .subdevice = 0x7128, .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, }, { .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, Loading Loading @@ -7347,6 +7389,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) case SAA7134_BOARD_KWORLD_TERMINATOR: case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: case SAA7134_BOARD_FLYDVBT_LR301: case SAA7134_BOARD_ASUSTeK_PS3_100: case SAA7134_BOARD_ASUSTeK_P7131_DUAL: case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: case SAA7134_BOARD_ASUSTeK_P7131_ANALOG: Loading Loading @@ -7811,6 +7854,14 @@ int saa7134_board_init2(struct saa7134_dev *dev) i2c_transfer(&dev->i2c_adap, &msg, 1); break; } case SAA7134_BOARD_ASUSTeK_PS3_100: { u8 data[] = { 0x3c, 0x33, 0x60}; struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data, .len = sizeof(data)}; i2c_transfer(&dev->i2c_adap, &msg, 1); break; } case SAA7134_BOARD_FLYDVB_TRIO: { u8 temp = 0; Loading drivers/media/video/saa7134/saa7134-dvb.c +39 −0 Original line number Diff line number Diff line Loading @@ -881,6 +881,20 @@ static struct tda1004x_config asus_tiger_3in1_config = { .request_firmware = philips_tda1004x_request_firmware }; static struct tda1004x_config asus_ps3_100_config = { .demod_address = 0x0b, .invert = 1, .invert_oclk = 0, .xtal_freq = TDA10046_XTAL_16M, .agc_config = TDA10046_AGC_TDA827X, .gpio_config = TDA10046_GP11_I, .if_freq = TDA10046_FREQ_045, .i2c_gate = 0x4b, .tuner_address = 0x61, .antenna_switch = 1, .request_firmware = philips_tda1004x_request_firmware }; /* ------------------------------------------------------------------ * special case: this card uses saa713x GPIO22 for the mode switch */ Loading Loading @@ -1652,6 +1666,31 @@ static int dvb_init(struct saa7134_dev *dev) } } break; case SAA7134_BOARD_ASUSTeK_PS3_100: if (!use_frontend) { /* terrestrial */ if (configure_tda827x_fe(dev, &asus_ps3_100_config, &tda827x_cfg_2) < 0) goto dettach_frontend; } else { /* satellite */ fe0->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs, &dev->i2c_adap); if (fe0->dvb.frontend) { if (dvb_attach(tda826x_attach, fe0->dvb.frontend, 0x60, &dev->i2c_adap, 0) == NULL) { wprintk("%s: Asus My Cinema PS3-100, no " "tda826x found!\n", __func__); goto dettach_frontend; } if (dvb_attach(lnbp21_attach, fe0->dvb.frontend, &dev->i2c_adap, 0, 0) == NULL) { wprintk("%s: Asus My Cinema PS3-100, no lnbp21" " found!\n", __func__); goto dettach_frontend; } } } break; case SAA7134_BOARD_ASUSTeK_TIGER: if (configure_tda827x_fe(dev, &philips_tiger_config, &tda827x_cfg_0) < 0) Loading drivers/media/video/saa7134/saa7134-input.c +7 −0 Original line number Diff line number Diff line Loading @@ -753,6 +753,13 @@ int saa7134_input_init1(struct saa7134_dev *dev) mask_keycode = 0xffff; raw_decode = true; break; case SAA7134_BOARD_ASUSTeK_PS3_100: ir_codes = RC_MAP_ASUS_PS3_100; mask_keydown = 0x0040000; mask_keyup = 0x0040000; mask_keycode = 0xffff; raw_decode = true; break; case SAA7134_BOARD_ENCORE_ENLTV: case SAA7134_BOARD_ENCORE_ENLTV_FM: ir_codes = RC_MAP_ENCORE_ENLTV; Loading Loading
drivers/media/rc/keymaps/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ rc-anysee.o \ rc-apac-viewcomp.o \ rc-asus-pc39.o \ rc-asus-ps3-100.o \ rc-ati-tv-wonder-hd-600.o \ rc-ati-x10.o \ rc-avermedia-a16d.o \ Loading
drivers/media/rc/keymaps/rc-asus-ps3-100.c 0 → 100644 +91 −0 Original line number Diff line number Diff line /* asus-ps3-100.h - Keytable for asus_ps3_100 Remote Controller * * Copyright (c) 2012 by Mauro Carvalho Chehab <mchehab@redhat.com> * * Based on a previous patch from Remi Schwartz <remi.schwartz@gmail.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #include <media/rc-map.h> #include <linux/module.h> static struct rc_map_table asus_ps3_100[] = { { 0x081c, KEY_HOME }, /* home */ { 0x081e, KEY_TV }, /* tv */ { 0x0803, KEY_TEXT }, /* teletext */ { 0x0829, KEY_POWER }, /* close */ { 0x080b, KEY_RED }, /* red */ { 0x080d, KEY_YELLOW }, /* yellow */ { 0x0806, KEY_BLUE }, /* blue */ { 0x0807, KEY_GREEN }, /* green */ /* Keys 0 to 9 */ { 0x082a, KEY_0 }, { 0x0816, KEY_1 }, { 0x0812, KEY_2 }, { 0x0814, KEY_3 }, { 0x0836, KEY_4 }, { 0x0832, KEY_5 }, { 0x0834, KEY_6 }, { 0x080e, KEY_7 }, { 0x080a, KEY_8 }, { 0x080c, KEY_9 }, { 0x0815, KEY_VOLUMEUP }, { 0x0826, KEY_VOLUMEDOWN }, { 0x0835, KEY_CHANNELUP }, /* channel / program + */ { 0x0824, KEY_CHANNELDOWN }, /* channel / program - */ { 0x0808, KEY_UP }, { 0x0804, KEY_DOWN }, { 0x0818, KEY_LEFT }, { 0x0810, KEY_RIGHT }, { 0x0825, KEY_ENTER }, /* enter */ { 0x0822, KEY_EXIT }, /* back */ { 0x082c, KEY_AB }, /* recall */ { 0x0820, KEY_AUDIO }, /* TV audio */ { 0x0837, KEY_SCREEN }, /* snapshot */ { 0x082e, KEY_ZOOM }, /* full screen */ { 0x0802, KEY_MUTE }, /* mute */ { 0x0831, KEY_REWIND }, /* backward << */ { 0x0811, KEY_RECORD }, /* recording */ { 0x0809, KEY_STOP }, { 0x0805, KEY_FASTFORWARD }, /* forward >> */ { 0x0821, KEY_PREVIOUS }, /* rew */ { 0x081a, KEY_PAUSE }, /* pause */ { 0x0839, KEY_PLAY }, /* play */ { 0x0819, KEY_NEXT }, /* forward */ }; static struct rc_map_list asus_ps3_100_map = { .map = { .scan = asus_ps3_100, .size = ARRAY_SIZE(asus_ps3_100), .rc_type = RC_TYPE_RC5, .name = RC_MAP_ASUS_PS3_100, } }; static int __init init_rc_map_asus_ps3_100(void) { return rc_map_register(&asus_ps3_100_map); } static void __exit exit_rc_map_asus_ps3_100(void) { rc_map_unregister(&asus_ps3_100_map); } module_init(init_rc_map_asus_ps3_100) module_exit(exit_rc_map_asus_ps3_100) MODULE_LICENSE("GPL"); MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>");
drivers/media/video/saa7134/saa7134-cards.c +51 −0 Original line number Diff line number Diff line Loading @@ -5080,6 +5080,36 @@ struct saa7134_board saa7134_boards[] = { .gpio = 0x0200000, }, }, [SAA7134_BOARD_ASUSTeK_PS3_100] = { .name = "Asus My Cinema PS3-100", .audio_clock = 0x00187de7, .tuner_type = TUNER_PHILIPS_TDA8290, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, .tuner_config = 2, .gpiomask = 1 << 21, .mpeg = SAA7134_MPEG_DVB, .inputs = {{ .name = name_tv, .vmux = 1, .amux = TV, .tv = 1, }, { .name = name_comp, .vmux = 0, .amux = LINE2, }, { .name = name_svideo, .vmux = 8, .amux = LINE2, } }, .radio = { .name = name_radio, .amux = TV, .gpio = 0x0200000, }, }, [SAA7134_BOARD_REAL_ANGEL_220] = { .name = "Zogis Real Angel 220", .audio_clock = 0x00187de7, Loading Loading @@ -6875,6 +6905,18 @@ struct pci_device_id saa7134_pci_tbl[] = { .subvendor = 0x1043, .subdevice = 0x4878, /* REV:1.02G */ .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, }, { .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7133, .subvendor = 0x1043, .subdevice = 0x48cd, .driver_data = SAA7134_BOARD_ASUSTeK_PS3_100, }, { .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, .subvendor = 0x17de, .subdevice = 0x7128, .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, }, { .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, Loading Loading @@ -7347,6 +7389,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) case SAA7134_BOARD_KWORLD_TERMINATOR: case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: case SAA7134_BOARD_FLYDVBT_LR301: case SAA7134_BOARD_ASUSTeK_PS3_100: case SAA7134_BOARD_ASUSTeK_P7131_DUAL: case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: case SAA7134_BOARD_ASUSTeK_P7131_ANALOG: Loading Loading @@ -7811,6 +7854,14 @@ int saa7134_board_init2(struct saa7134_dev *dev) i2c_transfer(&dev->i2c_adap, &msg, 1); break; } case SAA7134_BOARD_ASUSTeK_PS3_100: { u8 data[] = { 0x3c, 0x33, 0x60}; struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data, .len = sizeof(data)}; i2c_transfer(&dev->i2c_adap, &msg, 1); break; } case SAA7134_BOARD_FLYDVB_TRIO: { u8 temp = 0; Loading
drivers/media/video/saa7134/saa7134-dvb.c +39 −0 Original line number Diff line number Diff line Loading @@ -881,6 +881,20 @@ static struct tda1004x_config asus_tiger_3in1_config = { .request_firmware = philips_tda1004x_request_firmware }; static struct tda1004x_config asus_ps3_100_config = { .demod_address = 0x0b, .invert = 1, .invert_oclk = 0, .xtal_freq = TDA10046_XTAL_16M, .agc_config = TDA10046_AGC_TDA827X, .gpio_config = TDA10046_GP11_I, .if_freq = TDA10046_FREQ_045, .i2c_gate = 0x4b, .tuner_address = 0x61, .antenna_switch = 1, .request_firmware = philips_tda1004x_request_firmware }; /* ------------------------------------------------------------------ * special case: this card uses saa713x GPIO22 for the mode switch */ Loading Loading @@ -1652,6 +1666,31 @@ static int dvb_init(struct saa7134_dev *dev) } } break; case SAA7134_BOARD_ASUSTeK_PS3_100: if (!use_frontend) { /* terrestrial */ if (configure_tda827x_fe(dev, &asus_ps3_100_config, &tda827x_cfg_2) < 0) goto dettach_frontend; } else { /* satellite */ fe0->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs, &dev->i2c_adap); if (fe0->dvb.frontend) { if (dvb_attach(tda826x_attach, fe0->dvb.frontend, 0x60, &dev->i2c_adap, 0) == NULL) { wprintk("%s: Asus My Cinema PS3-100, no " "tda826x found!\n", __func__); goto dettach_frontend; } if (dvb_attach(lnbp21_attach, fe0->dvb.frontend, &dev->i2c_adap, 0, 0) == NULL) { wprintk("%s: Asus My Cinema PS3-100, no lnbp21" " found!\n", __func__); goto dettach_frontend; } } } break; case SAA7134_BOARD_ASUSTeK_TIGER: if (configure_tda827x_fe(dev, &philips_tiger_config, &tda827x_cfg_0) < 0) Loading
drivers/media/video/saa7134/saa7134-input.c +7 −0 Original line number Diff line number Diff line Loading @@ -753,6 +753,13 @@ int saa7134_input_init1(struct saa7134_dev *dev) mask_keycode = 0xffff; raw_decode = true; break; case SAA7134_BOARD_ASUSTeK_PS3_100: ir_codes = RC_MAP_ASUS_PS3_100; mask_keydown = 0x0040000; mask_keyup = 0x0040000; mask_keycode = 0xffff; raw_decode = true; break; case SAA7134_BOARD_ENCORE_ENLTV: case SAA7134_BOARD_ENCORE_ENLTV_FM: ir_codes = RC_MAP_ENCORE_ENLTV; Loading