diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb')
27 files changed, 334 insertions, 220 deletions
diff --git a/drivers/media/dvb/dvb-usb/a800.c b/drivers/media/dvb/dvb-usb/a800.c index 6247239982e9..b6cbb1dfc5f1 100644 --- a/drivers/media/dvb/dvb-usb/a800.c +++ b/drivers/media/dvb/dvb-usb/a800.c | |||
| @@ -37,7 +37,7 @@ static int a800_identify_state(struct usb_device *udev, struct dvb_usb_device_pr | |||
| 37 | return 0; | 37 | return 0; |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | static struct dvb_usb_rc_key a800_rc_keys[] = { | 40 | static struct dvb_usb_rc_key ir_codes_a800_table[] = { |
| 41 | { 0x0201, KEY_PROG1 }, /* SOURCE */ | 41 | { 0x0201, KEY_PROG1 }, /* SOURCE */ |
| 42 | { 0x0200, KEY_POWER }, /* POWER */ | 42 | { 0x0200, KEY_POWER }, /* POWER */ |
| 43 | { 0x0205, KEY_1 }, /* 1 */ | 43 | { 0x0205, KEY_1 }, /* 1 */ |
| @@ -147,8 +147,8 @@ static struct dvb_usb_device_properties a800_properties = { | |||
| 147 | .identify_state = a800_identify_state, | 147 | .identify_state = a800_identify_state, |
| 148 | 148 | ||
| 149 | .rc_interval = DEFAULT_RC_INTERVAL, | 149 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 150 | .rc_key_map = a800_rc_keys, | 150 | .rc_key_map = ir_codes_a800_table, |
| 151 | .rc_key_map_size = ARRAY_SIZE(a800_rc_keys), | 151 | .rc_key_map_size = ARRAY_SIZE(ir_codes_a800_table), |
| 152 | .rc_query = a800_rc_query, | 152 | .rc_query = a800_rc_query, |
| 153 | 153 | ||
| 154 | .i2c_algo = &dibusb_i2c_algo, | 154 | .i2c_algo = &dibusb_i2c_algo, |
diff --git a/drivers/media/dvb/dvb-usb/af9005-remote.c b/drivers/media/dvb/dvb-usb/af9005-remote.c index f4379c650a19..b41fa873b04d 100644 --- a/drivers/media/dvb/dvb-usb/af9005-remote.c +++ b/drivers/media/dvb/dvb-usb/af9005-remote.c | |||
| @@ -33,7 +33,7 @@ MODULE_PARM_DESC(debug, | |||
| 33 | 33 | ||
| 34 | #define deb_decode(args...) dprintk(dvb_usb_af9005_remote_debug,0x01,args) | 34 | #define deb_decode(args...) dprintk(dvb_usb_af9005_remote_debug,0x01,args) |
| 35 | 35 | ||
| 36 | struct dvb_usb_rc_key af9005_rc_keys[] = { | 36 | struct dvb_usb_rc_key ir_codes_af9005_table[] = { |
| 37 | 37 | ||
| 38 | {0x01b7, KEY_POWER}, | 38 | {0x01b7, KEY_POWER}, |
| 39 | {0x01a7, KEY_VOLUMEUP}, | 39 | {0x01a7, KEY_VOLUMEUP}, |
| @@ -74,7 +74,7 @@ struct dvb_usb_rc_key af9005_rc_keys[] = { | |||
| 74 | {0x00d5, KEY_GOTO}, /* marked jump on the remote */ | 74 | {0x00d5, KEY_GOTO}, /* marked jump on the remote */ |
| 75 | }; | 75 | }; |
| 76 | 76 | ||
| 77 | int af9005_rc_keys_size = ARRAY_SIZE(af9005_rc_keys); | 77 | int ir_codes_af9005_table_size = ARRAY_SIZE(ir_codes_af9005_table); |
| 78 | 78 | ||
| 79 | static int repeatable_keys[] = { | 79 | static int repeatable_keys[] = { |
| 80 | KEY_VOLUMEUP, | 80 | KEY_VOLUMEUP, |
| @@ -130,10 +130,10 @@ int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, u32 * event, | |||
| 130 | deb_decode("code != inverted code\n"); | 130 | deb_decode("code != inverted code\n"); |
| 131 | return 0; | 131 | return 0; |
| 132 | } | 132 | } |
| 133 | for (i = 0; i < af9005_rc_keys_size; i++) { | 133 | for (i = 0; i < ir_codes_af9005_table_size; i++) { |
| 134 | if (rc5_custom(&af9005_rc_keys[i]) == cust | 134 | if (rc5_custom(&ir_codes_af9005_table[i]) == cust |
| 135 | && rc5_data(&af9005_rc_keys[i]) == dat) { | 135 | && rc5_data(&ir_codes_af9005_table[i]) == dat) { |
| 136 | *event = af9005_rc_keys[i].event; | 136 | *event = ir_codes_af9005_table[i].event; |
| 137 | *state = REMOTE_KEY_PRESSED; | 137 | *state = REMOTE_KEY_PRESSED; |
| 138 | deb_decode | 138 | deb_decode |
| 139 | ("key pressed, event %x\n", *event); | 139 | ("key pressed, event %x\n", *event); |
| @@ -146,8 +146,8 @@ int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, u32 * event, | |||
| 146 | return 0; | 146 | return 0; |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | EXPORT_SYMBOL(af9005_rc_keys); | 149 | EXPORT_SYMBOL(ir_codes_af9005_table); |
| 150 | EXPORT_SYMBOL(af9005_rc_keys_size); | 150 | EXPORT_SYMBOL(ir_codes_af9005_table_size); |
| 151 | EXPORT_SYMBOL(af9005_rc_decode); | 151 | EXPORT_SYMBOL(af9005_rc_decode); |
| 152 | 152 | ||
| 153 | MODULE_AUTHOR("Luca Olivetti <luca@ventoso.org>"); | 153 | MODULE_AUTHOR("Luca Olivetti <luca@ventoso.org>"); |
diff --git a/drivers/media/dvb/dvb-usb/af9005.c b/drivers/media/dvb/dvb-usb/af9005.c index ca5a0a4d2a47..cfd6107d5349 100644 --- a/drivers/media/dvb/dvb-usb/af9005.c +++ b/drivers/media/dvb/dvb-usb/af9005.c | |||
| @@ -1109,8 +1109,8 @@ static int __init af9005_usb_module_init(void) | |||
| 1109 | return result; | 1109 | return result; |
| 1110 | } | 1110 | } |
| 1111 | rc_decode = symbol_request(af9005_rc_decode); | 1111 | rc_decode = symbol_request(af9005_rc_decode); |
| 1112 | rc_keys = symbol_request(af9005_rc_keys); | 1112 | rc_keys = symbol_request(ir_codes_af9005_table); |
| 1113 | rc_keys_size = symbol_request(af9005_rc_keys_size); | 1113 | rc_keys_size = symbol_request(ir_codes_af9005_table_size); |
| 1114 | if (rc_decode == NULL || rc_keys == NULL || rc_keys_size == NULL) { | 1114 | if (rc_decode == NULL || rc_keys == NULL || rc_keys_size == NULL) { |
| 1115 | err("af9005_rc_decode function not found, disabling remote"); | 1115 | err("af9005_rc_decode function not found, disabling remote"); |
| 1116 | af9005_properties.rc_query = NULL; | 1116 | af9005_properties.rc_query = NULL; |
| @@ -1128,9 +1128,9 @@ static void __exit af9005_usb_module_exit(void) | |||
| 1128 | if (rc_decode != NULL) | 1128 | if (rc_decode != NULL) |
| 1129 | symbol_put(af9005_rc_decode); | 1129 | symbol_put(af9005_rc_decode); |
| 1130 | if (rc_keys != NULL) | 1130 | if (rc_keys != NULL) |
| 1131 | symbol_put(af9005_rc_keys); | 1131 | symbol_put(ir_codes_af9005_table); |
| 1132 | if (rc_keys_size != NULL) | 1132 | if (rc_keys_size != NULL) |
| 1133 | symbol_put(af9005_rc_keys_size); | 1133 | symbol_put(ir_codes_af9005_table_size); |
| 1134 | /* deregister this driver from the USB subsystem */ | 1134 | /* deregister this driver from the USB subsystem */ |
| 1135 | usb_deregister(&af9005_usb_driver); | 1135 | usb_deregister(&af9005_usb_driver); |
| 1136 | } | 1136 | } |
diff --git a/drivers/media/dvb/dvb-usb/af9005.h b/drivers/media/dvb/dvb-usb/af9005.h index 0bc48a012187..088e7083a39b 100644 --- a/drivers/media/dvb/dvb-usb/af9005.h +++ b/drivers/media/dvb/dvb-usb/af9005.h | |||
| @@ -3490,7 +3490,7 @@ extern u8 regmask[8]; | |||
| 3490 | /* remote control decoder */ | 3490 | /* remote control decoder */ |
| 3491 | extern int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, | 3491 | extern int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, |
| 3492 | u32 * event, int *state); | 3492 | u32 * event, int *state); |
| 3493 | extern struct dvb_usb_rc_key af9005_rc_keys[]; | 3493 | extern struct dvb_usb_rc_key ir_codes_af9005_table[]; |
| 3494 | extern int af9005_rc_keys_size; | 3494 | extern int ir_codes_af9005_table_size; |
| 3495 | 3495 | ||
| 3496 | #endif | 3496 | #endif |
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c index 74d94e45324d..66c7c3ea7990 100644 --- a/drivers/media/dvb/dvb-usb/af9015.c +++ b/drivers/media/dvb/dvb-usb/af9015.c | |||
| @@ -752,19 +752,19 @@ static const struct af9015_setup *af9015_setup_match(unsigned int id, | |||
| 752 | 752 | ||
| 753 | static const struct af9015_setup af9015_setup_modparam[] = { | 753 | static const struct af9015_setup af9015_setup_modparam[] = { |
| 754 | { AF9015_REMOTE_A_LINK_DTU_M, | 754 | { AF9015_REMOTE_A_LINK_DTU_M, |
| 755 | af9015_rc_keys_a_link, ARRAY_SIZE(af9015_rc_keys_a_link), | 755 | ir_codes_af9015_table_a_link, ARRAY_SIZE(ir_codes_af9015_table_a_link), |
| 756 | af9015_ir_table_a_link, ARRAY_SIZE(af9015_ir_table_a_link) }, | 756 | af9015_ir_table_a_link, ARRAY_SIZE(af9015_ir_table_a_link) }, |
| 757 | { AF9015_REMOTE_MSI_DIGIVOX_MINI_II_V3, | 757 | { AF9015_REMOTE_MSI_DIGIVOX_MINI_II_V3, |
| 758 | af9015_rc_keys_msi, ARRAY_SIZE(af9015_rc_keys_msi), | 758 | ir_codes_af9015_table_msi, ARRAY_SIZE(ir_codes_af9015_table_msi), |
| 759 | af9015_ir_table_msi, ARRAY_SIZE(af9015_ir_table_msi) }, | 759 | af9015_ir_table_msi, ARRAY_SIZE(af9015_ir_table_msi) }, |
| 760 | { AF9015_REMOTE_MYGICTV_U718, | 760 | { AF9015_REMOTE_MYGICTV_U718, |
| 761 | af9015_rc_keys_mygictv, ARRAY_SIZE(af9015_rc_keys_mygictv), | 761 | ir_codes_af9015_table_mygictv, ARRAY_SIZE(ir_codes_af9015_table_mygictv), |
| 762 | af9015_ir_table_mygictv, ARRAY_SIZE(af9015_ir_table_mygictv) }, | 762 | af9015_ir_table_mygictv, ARRAY_SIZE(af9015_ir_table_mygictv) }, |
| 763 | { AF9015_REMOTE_DIGITTRADE_DVB_T, | 763 | { AF9015_REMOTE_DIGITTRADE_DVB_T, |
| 764 | af9015_rc_keys_digittrade, ARRAY_SIZE(af9015_rc_keys_digittrade), | 764 | ir_codes_af9015_table_digittrade, ARRAY_SIZE(ir_codes_af9015_table_digittrade), |
| 765 | af9015_ir_table_digittrade, ARRAY_SIZE(af9015_ir_table_digittrade) }, | 765 | af9015_ir_table_digittrade, ARRAY_SIZE(af9015_ir_table_digittrade) }, |
| 766 | { AF9015_REMOTE_AVERMEDIA_KS, | 766 | { AF9015_REMOTE_AVERMEDIA_KS, |
| 767 | af9015_rc_keys_avermedia, ARRAY_SIZE(af9015_rc_keys_avermedia), | 767 | ir_codes_af9015_table_avermedia, ARRAY_SIZE(ir_codes_af9015_table_avermedia), |
| 768 | af9015_ir_table_avermedia_ks, ARRAY_SIZE(af9015_ir_table_avermedia_ks) }, | 768 | af9015_ir_table_avermedia_ks, ARRAY_SIZE(af9015_ir_table_avermedia_ks) }, |
| 769 | { } | 769 | { } |
| 770 | }; | 770 | }; |
| @@ -772,32 +772,32 @@ static const struct af9015_setup af9015_setup_modparam[] = { | |||
| 772 | /* don't add new entries here anymore, use hashes instead */ | 772 | /* don't add new entries here anymore, use hashes instead */ |
| 773 | static const struct af9015_setup af9015_setup_usbids[] = { | 773 | static const struct af9015_setup af9015_setup_usbids[] = { |
| 774 | { USB_VID_LEADTEK, | 774 | { USB_VID_LEADTEK, |
| 775 | af9015_rc_keys_leadtek, ARRAY_SIZE(af9015_rc_keys_leadtek), | 775 | ir_codes_af9015_table_leadtek, ARRAY_SIZE(ir_codes_af9015_table_leadtek), |
| 776 | af9015_ir_table_leadtek, ARRAY_SIZE(af9015_ir_table_leadtek) }, | 776 | af9015_ir_table_leadtek, ARRAY_SIZE(af9015_ir_table_leadtek) }, |
| 777 | { USB_VID_VISIONPLUS, | 777 | { USB_VID_VISIONPLUS, |
| 778 | af9015_rc_keys_twinhan, ARRAY_SIZE(af9015_rc_keys_twinhan), | 778 | ir_codes_af9015_table_twinhan, ARRAY_SIZE(ir_codes_af9015_table_twinhan), |
| 779 | af9015_ir_table_twinhan, ARRAY_SIZE(af9015_ir_table_twinhan) }, | 779 | af9015_ir_table_twinhan, ARRAY_SIZE(af9015_ir_table_twinhan) }, |
| 780 | { USB_VID_KWORLD_2, /* TODO: use correct rc keys */ | 780 | { USB_VID_KWORLD_2, /* TODO: use correct rc keys */ |
| 781 | af9015_rc_keys_twinhan, ARRAY_SIZE(af9015_rc_keys_twinhan), | 781 | ir_codes_af9015_table_twinhan, ARRAY_SIZE(ir_codes_af9015_table_twinhan), |
| 782 | af9015_ir_table_kworld, ARRAY_SIZE(af9015_ir_table_kworld) }, | 782 | af9015_ir_table_kworld, ARRAY_SIZE(af9015_ir_table_kworld) }, |
| 783 | { USB_VID_AVERMEDIA, | 783 | { USB_VID_AVERMEDIA, |
| 784 | af9015_rc_keys_avermedia, ARRAY_SIZE(af9015_rc_keys_avermedia), | 784 | ir_codes_af9015_table_avermedia, ARRAY_SIZE(ir_codes_af9015_table_avermedia), |
| 785 | af9015_ir_table_avermedia, ARRAY_SIZE(af9015_ir_table_avermedia) }, | 785 | af9015_ir_table_avermedia, ARRAY_SIZE(af9015_ir_table_avermedia) }, |
| 786 | { USB_VID_MSI_2, | 786 | { USB_VID_MSI_2, |
| 787 | af9015_rc_keys_msi_digivox_iii, ARRAY_SIZE(af9015_rc_keys_msi_digivox_iii), | 787 | ir_codes_af9015_table_msi_digivox_iii, ARRAY_SIZE(ir_codes_af9015_table_msi_digivox_iii), |
| 788 | af9015_ir_table_msi_digivox_iii, ARRAY_SIZE(af9015_ir_table_msi_digivox_iii) }, | 788 | af9015_ir_table_msi_digivox_iii, ARRAY_SIZE(af9015_ir_table_msi_digivox_iii) }, |
| 789 | { } | 789 | { } |
| 790 | }; | 790 | }; |
| 791 | 791 | ||
| 792 | static const struct af9015_setup af9015_setup_hashes[] = { | 792 | static const struct af9015_setup af9015_setup_hashes[] = { |
| 793 | { 0xb8feb708, | 793 | { 0xb8feb708, |
| 794 | af9015_rc_keys_msi, ARRAY_SIZE(af9015_rc_keys_msi), | 794 | ir_codes_af9015_table_msi, ARRAY_SIZE(ir_codes_af9015_table_msi), |
| 795 | af9015_ir_table_msi, ARRAY_SIZE(af9015_ir_table_msi) }, | 795 | af9015_ir_table_msi, ARRAY_SIZE(af9015_ir_table_msi) }, |
| 796 | { 0xa3703d00, | 796 | { 0xa3703d00, |
| 797 | af9015_rc_keys_a_link, ARRAY_SIZE(af9015_rc_keys_a_link), | 797 | ir_codes_af9015_table_a_link, ARRAY_SIZE(ir_codes_af9015_table_a_link), |
| 798 | af9015_ir_table_a_link, ARRAY_SIZE(af9015_ir_table_a_link) }, | 798 | af9015_ir_table_a_link, ARRAY_SIZE(af9015_ir_table_a_link) }, |
| 799 | { 0x9b7dc64e, | 799 | { 0x9b7dc64e, |
| 800 | af9015_rc_keys_mygictv, ARRAY_SIZE(af9015_rc_keys_mygictv), | 800 | ir_codes_af9015_table_mygictv, ARRAY_SIZE(ir_codes_af9015_table_mygictv), |
| 801 | af9015_ir_table_mygictv, ARRAY_SIZE(af9015_ir_table_mygictv) }, | 801 | af9015_ir_table_mygictv, ARRAY_SIZE(af9015_ir_table_mygictv) }, |
| 802 | { } | 802 | { } |
| 803 | }; | 803 | }; |
| @@ -836,8 +836,8 @@ static void af9015_set_remote_config(struct usb_device *udev, | |||
| 836 | } else if (udev->descriptor.idProduct == | 836 | } else if (udev->descriptor.idProduct == |
| 837 | cpu_to_le16(USB_PID_TREKSTOR_DVBT)) { | 837 | cpu_to_le16(USB_PID_TREKSTOR_DVBT)) { |
| 838 | table = &(const struct af9015_setup){ 0, | 838 | table = &(const struct af9015_setup){ 0, |
| 839 | af9015_rc_keys_trekstor, | 839 | ir_codes_af9015_table_trekstor, |
| 840 | ARRAY_SIZE(af9015_rc_keys_trekstor), | 840 | ARRAY_SIZE(ir_codes_af9015_table_trekstor), |
| 841 | af9015_ir_table_trekstor, | 841 | af9015_ir_table_trekstor, |
| 842 | ARRAY_SIZE(af9015_ir_table_trekstor) | 842 | ARRAY_SIZE(af9015_ir_table_trekstor) |
| 843 | }; | 843 | }; |
| @@ -1297,6 +1297,8 @@ static struct usb_device_id af9015_usb_table[] = { | |||
| 1297 | {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV20)}, | 1297 | {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV20)}, |
| 1298 | {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_TINYTWIN_2)}, | 1298 | {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_TINYTWIN_2)}, |
| 1299 | {USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV2000DS)}, | 1299 | {USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV2000DS)}, |
| 1300 | /* 30 */{USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_UB383_T)}, | ||
| 1301 | {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_4)}, | ||
| 1300 | {0}, | 1302 | {0}, |
| 1301 | }; | 1303 | }; |
| 1302 | MODULE_DEVICE_TABLE(usb, af9015_usb_table); | 1304 | MODULE_DEVICE_TABLE(usb, af9015_usb_table); |
| @@ -1500,7 +1502,8 @@ static struct dvb_usb_device_properties af9015_properties[] = { | |||
| 1500 | "(VS-DVB-T 395U)", | 1502 | "(VS-DVB-T 395U)", |
| 1501 | .cold_ids = {&af9015_usb_table[16], | 1503 | .cold_ids = {&af9015_usb_table[16], |
| 1502 | &af9015_usb_table[17], | 1504 | &af9015_usb_table[17], |
| 1503 | &af9015_usb_table[18], NULL}, | 1505 | &af9015_usb_table[18], |
| 1506 | &af9015_usb_table[31], NULL}, | ||
| 1504 | .warm_ids = {NULL}, | 1507 | .warm_ids = {NULL}, |
| 1505 | }, | 1508 | }, |
| 1506 | { | 1509 | { |
| @@ -1569,7 +1572,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { | |||
| 1569 | 1572 | ||
| 1570 | .i2c_algo = &af9015_i2c_algo, | 1573 | .i2c_algo = &af9015_i2c_algo, |
| 1571 | 1574 | ||
| 1572 | .num_device_descs = 7, /* max 9 */ | 1575 | .num_device_descs = 8, /* max 9 */ |
| 1573 | .devices = { | 1576 | .devices = { |
| 1574 | { | 1577 | { |
| 1575 | .name = "AverMedia AVerTV Volar GPS 805 (A805)", | 1578 | .name = "AverMedia AVerTV Volar GPS 805 (A805)", |
| @@ -1608,6 +1611,12 @@ static struct dvb_usb_device_properties af9015_properties[] = { | |||
| 1608 | .cold_ids = {&af9015_usb_table[29], NULL}, | 1611 | .cold_ids = {&af9015_usb_table[29], NULL}, |
| 1609 | .warm_ids = {NULL}, | 1612 | .warm_ids = {NULL}, |
| 1610 | }, | 1613 | }, |
| 1614 | { | ||
| 1615 | .name = "KWorld USB DVB-T Stick Mobile " \ | ||
| 1616 | "(UB383-T)", | ||
| 1617 | .cold_ids = {&af9015_usb_table[30], NULL}, | ||
| 1618 | .warm_ids = {NULL}, | ||
| 1619 | }, | ||
| 1611 | } | 1620 | } |
| 1612 | }, | 1621 | }, |
| 1613 | }; | 1622 | }; |
diff --git a/drivers/media/dvb/dvb-usb/af9015.h b/drivers/media/dvb/dvb-usb/af9015.h index ef36b1831490..63b2a4907b7e 100644 --- a/drivers/media/dvb/dvb-usb/af9015.h +++ b/drivers/media/dvb/dvb-usb/af9015.h | |||
| @@ -123,7 +123,7 @@ enum af9015_remote { | |||
| 123 | 123 | ||
| 124 | /* LeadTek - Y04G0051 */ | 124 | /* LeadTek - Y04G0051 */ |
| 125 | /* Leadtek WinFast DTV Dongle Gold */ | 125 | /* Leadtek WinFast DTV Dongle Gold */ |
| 126 | static struct dvb_usb_rc_key af9015_rc_keys_leadtek[] = { | 126 | static struct dvb_usb_rc_key ir_codes_af9015_table_leadtek[] = { |
| 127 | { 0x001e, KEY_1 }, | 127 | { 0x001e, KEY_1 }, |
| 128 | { 0x001f, KEY_2 }, | 128 | { 0x001f, KEY_2 }, |
| 129 | { 0x0020, KEY_3 }, | 129 | { 0x0020, KEY_3 }, |
| @@ -227,7 +227,7 @@ static u8 af9015_ir_table_leadtek[] = { | |||
| 227 | }; | 227 | }; |
| 228 | 228 | ||
| 229 | /* TwinHan AzureWave AD-TU700(704J) */ | 229 | /* TwinHan AzureWave AD-TU700(704J) */ |
| 230 | static struct dvb_usb_rc_key af9015_rc_keys_twinhan[] = { | 230 | static struct dvb_usb_rc_key ir_codes_af9015_table_twinhan[] = { |
| 231 | { 0x053f, KEY_POWER }, | 231 | { 0x053f, KEY_POWER }, |
| 232 | { 0x0019, KEY_FAVORITES }, /* Favorite List */ | 232 | { 0x0019, KEY_FAVORITES }, /* Favorite List */ |
| 233 | { 0x0004, KEY_TEXT }, /* Teletext */ | 233 | { 0x0004, KEY_TEXT }, /* Teletext */ |
| @@ -338,7 +338,7 @@ static u8 af9015_ir_table_twinhan[] = { | |||
| 338 | }; | 338 | }; |
| 339 | 339 | ||
| 340 | /* A-Link DTU(m) */ | 340 | /* A-Link DTU(m) */ |
| 341 | static struct dvb_usb_rc_key af9015_rc_keys_a_link[] = { | 341 | static struct dvb_usb_rc_key ir_codes_af9015_table_a_link[] = { |
| 342 | { 0x001e, KEY_1 }, | 342 | { 0x001e, KEY_1 }, |
| 343 | { 0x001f, KEY_2 }, | 343 | { 0x001f, KEY_2 }, |
| 344 | { 0x0020, KEY_3 }, | 344 | { 0x0020, KEY_3 }, |
| @@ -381,7 +381,7 @@ static u8 af9015_ir_table_a_link[] = { | |||
| 381 | }; | 381 | }; |
| 382 | 382 | ||
| 383 | /* MSI DIGIVOX mini II V3.0 */ | 383 | /* MSI DIGIVOX mini II V3.0 */ |
| 384 | static struct dvb_usb_rc_key af9015_rc_keys_msi[] = { | 384 | static struct dvb_usb_rc_key ir_codes_af9015_table_msi[] = { |
| 385 | { 0x001e, KEY_1 }, | 385 | { 0x001e, KEY_1 }, |
| 386 | { 0x001f, KEY_2 }, | 386 | { 0x001f, KEY_2 }, |
| 387 | { 0x0020, KEY_3 }, | 387 | { 0x0020, KEY_3 }, |
| @@ -424,7 +424,7 @@ static u8 af9015_ir_table_msi[] = { | |||
| 424 | }; | 424 | }; |
| 425 | 425 | ||
| 426 | /* MYGICTV U718 */ | 426 | /* MYGICTV U718 */ |
| 427 | static struct dvb_usb_rc_key af9015_rc_keys_mygictv[] = { | 427 | static struct dvb_usb_rc_key ir_codes_af9015_table_mygictv[] = { |
| 428 | { 0x003d, KEY_SWITCHVIDEOMODE }, | 428 | { 0x003d, KEY_SWITCHVIDEOMODE }, |
| 429 | /* TV / AV */ | 429 | /* TV / AV */ |
| 430 | { 0x0545, KEY_POWER }, | 430 | { 0x0545, KEY_POWER }, |
| @@ -550,7 +550,7 @@ static u8 af9015_ir_table_kworld[] = { | |||
| 550 | }; | 550 | }; |
| 551 | 551 | ||
| 552 | /* AverMedia Volar X */ | 552 | /* AverMedia Volar X */ |
| 553 | static struct dvb_usb_rc_key af9015_rc_keys_avermedia[] = { | 553 | static struct dvb_usb_rc_key ir_codes_af9015_table_avermedia[] = { |
| 554 | { 0x053d, KEY_PROG1 }, /* SOURCE */ | 554 | { 0x053d, KEY_PROG1 }, /* SOURCE */ |
| 555 | { 0x0512, KEY_POWER }, /* POWER */ | 555 | { 0x0512, KEY_POWER }, /* POWER */ |
| 556 | { 0x051e, KEY_1 }, /* 1 */ | 556 | { 0x051e, KEY_1 }, /* 1 */ |
| @@ -656,7 +656,7 @@ static u8 af9015_ir_table_avermedia_ks[] = { | |||
| 656 | }; | 656 | }; |
| 657 | 657 | ||
| 658 | /* Digittrade DVB-T USB Stick */ | 658 | /* Digittrade DVB-T USB Stick */ |
| 659 | static struct dvb_usb_rc_key af9015_rc_keys_digittrade[] = { | 659 | static struct dvb_usb_rc_key ir_codes_af9015_table_digittrade[] = { |
| 660 | { 0x010f, KEY_LAST }, /* RETURN */ | 660 | { 0x010f, KEY_LAST }, /* RETURN */ |
| 661 | { 0x0517, KEY_TEXT }, /* TELETEXT */ | 661 | { 0x0517, KEY_TEXT }, /* TELETEXT */ |
| 662 | { 0x0108, KEY_EPG }, /* EPG */ | 662 | { 0x0108, KEY_EPG }, /* EPG */ |
| @@ -719,7 +719,7 @@ static u8 af9015_ir_table_digittrade[] = { | |||
| 719 | }; | 719 | }; |
| 720 | 720 | ||
| 721 | /* TREKSTOR DVB-T USB Stick */ | 721 | /* TREKSTOR DVB-T USB Stick */ |
| 722 | static struct dvb_usb_rc_key af9015_rc_keys_trekstor[] = { | 722 | static struct dvb_usb_rc_key ir_codes_af9015_table_trekstor[] = { |
| 723 | { 0x0704, KEY_AGAIN }, /* Home */ | 723 | { 0x0704, KEY_AGAIN }, /* Home */ |
| 724 | { 0x0705, KEY_MUTE }, /* Mute */ | 724 | { 0x0705, KEY_MUTE }, /* Mute */ |
| 725 | { 0x0706, KEY_UP }, /* Up */ | 725 | { 0x0706, KEY_UP }, /* Up */ |
| @@ -782,7 +782,7 @@ static u8 af9015_ir_table_trekstor[] = { | |||
| 782 | }; | 782 | }; |
| 783 | 783 | ||
| 784 | /* MSI DIGIVOX mini III */ | 784 | /* MSI DIGIVOX mini III */ |
| 785 | static struct dvb_usb_rc_key af9015_rc_keys_msi_digivox_iii[] = { | 785 | static struct dvb_usb_rc_key ir_codes_af9015_table_msi_digivox_iii[] = { |
| 786 | { 0x0713, KEY_POWER }, /* [red power button] */ | 786 | { 0x0713, KEY_POWER }, /* [red power button] */ |
| 787 | { 0x073b, KEY_VIDEO }, /* Source */ | 787 | { 0x073b, KEY_VIDEO }, /* Source */ |
| 788 | { 0x073e, KEY_ZOOM }, /* Zoom */ | 788 | { 0x073e, KEY_ZOOM }, /* Zoom */ |
diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c index bb69f3719f9a..faca1ad88a67 100644 --- a/drivers/media/dvb/dvb-usb/anysee.c +++ b/drivers/media/dvb/dvb-usb/anysee.c | |||
| @@ -399,7 +399,7 @@ static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | |||
| 399 | return 0; | 399 | return 0; |
| 400 | } | 400 | } |
| 401 | 401 | ||
| 402 | static struct dvb_usb_rc_key anysee_rc_keys[] = { | 402 | static struct dvb_usb_rc_key ir_codes_anysee_table[] = { |
| 403 | { 0x0100, KEY_0 }, | 403 | { 0x0100, KEY_0 }, |
| 404 | { 0x0101, KEY_1 }, | 404 | { 0x0101, KEY_1 }, |
| 405 | { 0x0102, KEY_2 }, | 405 | { 0x0102, KEY_2 }, |
| @@ -518,8 +518,8 @@ static struct dvb_usb_device_properties anysee_properties = { | |||
| 518 | } | 518 | } |
| 519 | }, | 519 | }, |
| 520 | 520 | ||
| 521 | .rc_key_map = anysee_rc_keys, | 521 | .rc_key_map = ir_codes_anysee_table, |
| 522 | .rc_key_map_size = ARRAY_SIZE(anysee_rc_keys), | 522 | .rc_key_map_size = ARRAY_SIZE(ir_codes_anysee_table), |
| 523 | .rc_query = anysee_rc_query, | 523 | .rc_query = anysee_rc_query, |
| 524 | .rc_interval = 200, /* windows driver uses 500ms */ | 524 | .rc_interval = 200, /* windows driver uses 500ms */ |
| 525 | 525 | ||
diff --git a/drivers/media/dvb/dvb-usb/az6027.c b/drivers/media/dvb/dvb-usb/az6027.c index d7290b2c0913..6681ac1c56e3 100644 --- a/drivers/media/dvb/dvb-usb/az6027.c +++ b/drivers/media/dvb/dvb-usb/az6027.c | |||
| @@ -125,12 +125,12 @@ static const struct stb0899_s1_reg az6027_stb0899_s1_init_3[] = { | |||
| 125 | { STB0899_RCOMPC , 0xc9 }, | 125 | { STB0899_RCOMPC , 0xc9 }, |
| 126 | { STB0899_AGC1CN , 0x01 }, | 126 | { STB0899_AGC1CN , 0x01 }, |
| 127 | { STB0899_AGC1REF , 0x10 }, | 127 | { STB0899_AGC1REF , 0x10 }, |
| 128 | { STB0899_RTC , 0x23 }, | 128 | { STB0899_RTC , 0x23 }, |
| 129 | { STB0899_TMGCFG , 0x4e }, | 129 | { STB0899_TMGCFG , 0x4e }, |
| 130 | { STB0899_AGC2REF , 0x34 }, | 130 | { STB0899_AGC2REF , 0x34 }, |
| 131 | { STB0899_TLSR , 0x84 }, | 131 | { STB0899_TLSR , 0x84 }, |
| 132 | { STB0899_CFD , 0xf7 }, | 132 | { STB0899_CFD , 0xf7 }, |
| 133 | { STB0899_ACLC , 0x87 }, | 133 | { STB0899_ACLC , 0x87 }, |
| 134 | { STB0899_BCLC , 0x94 }, | 134 | { STB0899_BCLC , 0x94 }, |
| 135 | { STB0899_EQON , 0x41 }, | 135 | { STB0899_EQON , 0x41 }, |
| 136 | { STB0899_LDT , 0xf1 }, | 136 | { STB0899_LDT , 0xf1 }, |
| @@ -183,10 +183,10 @@ static const struct stb0899_s1_reg az6027_stb0899_s1_init_3[] = { | |||
| 183 | { STB0899_ECNT3M , 0x0a }, | 183 | { STB0899_ECNT3M , 0x0a }, |
| 184 | { STB0899_ECNT3L , 0xad }, | 184 | { STB0899_ECNT3L , 0xad }, |
| 185 | { STB0899_FECAUTO1 , 0x06 }, | 185 | { STB0899_FECAUTO1 , 0x06 }, |
| 186 | { STB0899_FECM , 0x01 }, | 186 | { STB0899_FECM , 0x01 }, |
| 187 | { STB0899_VTH12 , 0xb0 }, | 187 | { STB0899_VTH12 , 0xb0 }, |
| 188 | { STB0899_VTH23 , 0x7a }, | 188 | { STB0899_VTH23 , 0x7a }, |
| 189 | { STB0899_VTH34 , 0x58 }, | 189 | { STB0899_VTH34 , 0x58 }, |
| 190 | { STB0899_VTH56 , 0x38 }, | 190 | { STB0899_VTH56 , 0x38 }, |
| 191 | { STB0899_VTH67 , 0x34 }, | 191 | { STB0899_VTH67 , 0x34 }, |
| 192 | { STB0899_VTH78 , 0x24 }, | 192 | { STB0899_VTH78 , 0x24 }, |
| @@ -195,7 +195,7 @@ static const struct stb0899_s1_reg az6027_stb0899_s1_init_3[] = { | |||
| 195 | { STB0899_RSULC , 0xb1 }, /* DVB = 0xb1, DSS = 0xa1 */ | 195 | { STB0899_RSULC , 0xb1 }, /* DVB = 0xb1, DSS = 0xa1 */ |
| 196 | { STB0899_TSULC , 0x42 }, | 196 | { STB0899_TSULC , 0x42 }, |
| 197 | { STB0899_RSLLC , 0x41 }, | 197 | { STB0899_RSLLC , 0x41 }, |
| 198 | { STB0899_TSLPL , 0x12 }, | 198 | { STB0899_TSLPL , 0x12 }, |
| 199 | { STB0899_TSCFGH , 0x0c }, | 199 | { STB0899_TSCFGH , 0x0c }, |
| 200 | { STB0899_TSCFGM , 0x00 }, | 200 | { STB0899_TSCFGM , 0x00 }, |
| 201 | { STB0899_TSCFGL , 0x00 }, | 201 | { STB0899_TSCFGL , 0x00 }, |
| @@ -386,7 +386,7 @@ static int az6027_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) | |||
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | /* keys for the enclosed remote control */ | 388 | /* keys for the enclosed remote control */ |
| 389 | static struct dvb_usb_rc_key az6027_rc_keys[] = { | 389 | static struct dvb_usb_rc_key ir_codes_az6027_table[] = { |
| 390 | { 0x01, KEY_1 }, | 390 | { 0x01, KEY_1 }, |
| 391 | { 0x02, KEY_2 }, | 391 | { 0x02, KEY_2 }, |
| 392 | }; | 392 | }; |
| @@ -417,11 +417,15 @@ static int az6027_ci_read_attribute_mem(struct dvb_ca_en50221 *ca, | |||
| 417 | u16 value; | 417 | u16 value; |
| 418 | u16 index; | 418 | u16 index; |
| 419 | int blen; | 419 | int blen; |
| 420 | u8 b[12]; | 420 | u8 *b; |
| 421 | 421 | ||
| 422 | if (slot != 0) | 422 | if (slot != 0) |
| 423 | return -EINVAL; | 423 | return -EINVAL; |
| 424 | 424 | ||
| 425 | b = kmalloc(12, GFP_KERNEL); | ||
| 426 | if (!b) | ||
| 427 | return -ENOMEM; | ||
| 428 | |||
| 425 | mutex_lock(&state->ca_mutex); | 429 | mutex_lock(&state->ca_mutex); |
| 426 | 430 | ||
| 427 | req = 0xC1; | 431 | req = 0xC1; |
| @@ -438,6 +442,7 @@ static int az6027_ci_read_attribute_mem(struct dvb_ca_en50221 *ca, | |||
| 438 | } | 442 | } |
| 439 | 443 | ||
| 440 | mutex_unlock(&state->ca_mutex); | 444 | mutex_unlock(&state->ca_mutex); |
| 445 | kfree(b); | ||
| 441 | return ret; | 446 | return ret; |
| 442 | } | 447 | } |
| 443 | 448 | ||
| @@ -485,11 +490,15 @@ static int az6027_ci_read_cam_control(struct dvb_ca_en50221 *ca, | |||
| 485 | u16 value; | 490 | u16 value; |
| 486 | u16 index; | 491 | u16 index; |
| 487 | int blen; | 492 | int blen; |
| 488 | u8 b[12]; | 493 | u8 *b; |
| 489 | 494 | ||
| 490 | if (slot != 0) | 495 | if (slot != 0) |
| 491 | return -EINVAL; | 496 | return -EINVAL; |
| 492 | 497 | ||
| 498 | b = kmalloc(12, GFP_KERNEL); | ||
| 499 | if (!b) | ||
| 500 | return -ENOMEM; | ||
| 501 | |||
| 493 | mutex_lock(&state->ca_mutex); | 502 | mutex_lock(&state->ca_mutex); |
| 494 | 503 | ||
| 495 | req = 0xC3; | 504 | req = 0xC3; |
| @@ -510,6 +519,7 @@ static int az6027_ci_read_cam_control(struct dvb_ca_en50221 *ca, | |||
| 510 | } | 519 | } |
| 511 | 520 | ||
| 512 | mutex_unlock(&state->ca_mutex); | 521 | mutex_unlock(&state->ca_mutex); |
| 522 | kfree(b); | ||
| 513 | return ret; | 523 | return ret; |
| 514 | } | 524 | } |
| 515 | 525 | ||
| @@ -556,7 +566,11 @@ static int CI_CamReady(struct dvb_ca_en50221 *ca, int slot) | |||
| 556 | u16 value; | 566 | u16 value; |
| 557 | u16 index; | 567 | u16 index; |
| 558 | int blen; | 568 | int blen; |
| 559 | u8 b[12]; | 569 | u8 *b; |
| 570 | |||
| 571 | b = kmalloc(12, GFP_KERNEL); | ||
| 572 | if (!b) | ||
| 573 | return -ENOMEM; | ||
| 560 | 574 | ||
| 561 | req = 0xC8; | 575 | req = 0xC8; |
| 562 | value = 0; | 576 | value = 0; |
| @@ -570,6 +584,7 @@ static int CI_CamReady(struct dvb_ca_en50221 *ca, int slot) | |||
| 570 | } else{ | 584 | } else{ |
| 571 | ret = b[0]; | 585 | ret = b[0]; |
| 572 | } | 586 | } |
| 587 | kfree(b); | ||
| 573 | return ret; | 588 | return ret; |
| 574 | } | 589 | } |
| 575 | 590 | ||
| @@ -667,8 +682,11 @@ static int az6027_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int o | |||
| 667 | u16 value; | 682 | u16 value; |
| 668 | u16 index; | 683 | u16 index; |
| 669 | int blen; | 684 | int blen; |
| 670 | u8 b[12]; | 685 | u8 *b; |
| 671 | 686 | ||
| 687 | b = kmalloc(12, GFP_KERNEL); | ||
| 688 | if (!b) | ||
| 689 | return -ENOMEM; | ||
| 672 | mutex_lock(&state->ca_mutex); | 690 | mutex_lock(&state->ca_mutex); |
| 673 | 691 | ||
| 674 | req = 0xC5; | 692 | req = 0xC5; |
| @@ -683,15 +701,13 @@ static int az6027_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int o | |||
| 683 | } else | 701 | } else |
| 684 | ret = 0; | 702 | ret = 0; |
| 685 | 703 | ||
| 686 | if (b[0] == 0) { | 704 | if (!ret && b[0] == 1) { |
| 687 | ret = 0; | ||
| 688 | |||
| 689 | } else if (b[0] == 1) { | ||
| 690 | ret = DVB_CA_EN50221_POLL_CAM_PRESENT | | 705 | ret = DVB_CA_EN50221_POLL_CAM_PRESENT | |
| 691 | DVB_CA_EN50221_POLL_CAM_READY; | 706 | DVB_CA_EN50221_POLL_CAM_READY; |
| 692 | } | 707 | } |
| 693 | 708 | ||
| 694 | mutex_unlock(&state->ca_mutex); | 709 | mutex_unlock(&state->ca_mutex); |
| 710 | kfree(b); | ||
| 695 | return ret; | 711 | return ret; |
| 696 | } | 712 | } |
| 697 | 713 | ||
| @@ -943,10 +959,16 @@ static int az6027_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int n | |||
| 943 | u16 value; | 959 | u16 value; |
| 944 | int length; | 960 | int length; |
| 945 | u8 req; | 961 | u8 req; |
| 946 | u8 data[256]; | 962 | u8 *data; |
| 947 | 963 | ||
| 948 | if (mutex_lock_interruptible(&d->i2c_mutex) < 0) | 964 | data = kmalloc(256, GFP_KERNEL); |
| 965 | if (!data) | ||
| 966 | return -ENOMEM; | ||
| 967 | |||
| 968 | if (mutex_lock_interruptible(&d->i2c_mutex) < 0) { | ||
| 969 | kfree(data); | ||
| 949 | return -EAGAIN; | 970 | return -EAGAIN; |
| 971 | } | ||
| 950 | 972 | ||
| 951 | if (num > 2) | 973 | if (num > 2) |
| 952 | warn("more than 2 i2c messages at a time is not handled yet. TODO."); | 974 | warn("more than 2 i2c messages at a time is not handled yet. TODO."); |
| @@ -976,17 +998,14 @@ static int az6027_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int n | |||
| 976 | i++; | 998 | i++; |
| 977 | } else { | 999 | } else { |
| 978 | 1000 | ||
| 979 | if (msg[i].addr == 0xd0) { | 1001 | /* demod 16bit addr */ |
| 980 | /* demod 16bit addr */ | 1002 | req = 0xBD; |
| 981 | req = 0xBD; | 1003 | index = (((msg[i].buf[0] << 8) & 0xff00) | (msg[i].buf[1] & 0x00ff)); |
| 982 | index = (((msg[i].buf[0] << 8) & 0xff00) | (msg[i].buf[1] & 0x00ff)); | 1004 | value = msg[i].addr + (2 << 8); |
| 983 | value = msg[i].addr + (2 << 8); | 1005 | length = msg[i].len - 2; |
| 984 | length = msg[i].len - 2; | 1006 | len = msg[i].len - 2; |
| 985 | len = msg[i].len - 2; | 1007 | for (j = 0; j < len; j++) |
| 986 | for (j = 0; j < len; j++) | 1008 | data[j] = msg[i].buf[j + 2]; |
| 987 | data[j] = msg[i].buf[j + 2]; | ||
| 988 | |||
| 989 | } | ||
| 990 | az6027_usb_out_op(d, req, value, index, data, length); | 1009 | az6027_usb_out_op(d, req, value, index, data, length); |
| 991 | } | 1010 | } |
| 992 | } | 1011 | } |
| @@ -1019,6 +1038,7 @@ static int az6027_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int n | |||
| 1019 | } | 1038 | } |
| 1020 | } | 1039 | } |
| 1021 | mutex_unlock(&d->i2c_mutex); | 1040 | mutex_unlock(&d->i2c_mutex); |
| 1041 | kfree(data); | ||
| 1022 | 1042 | ||
| 1023 | return i; | 1043 | return i; |
| 1024 | } | 1044 | } |
| @@ -1039,8 +1059,14 @@ int az6027_identify_state(struct usb_device *udev, | |||
| 1039 | struct dvb_usb_device_description **desc, | 1059 | struct dvb_usb_device_description **desc, |
| 1040 | int *cold) | 1060 | int *cold) |
| 1041 | { | 1061 | { |
| 1042 | u8 b[16]; | 1062 | u8 *b; |
| 1043 | s16 ret = usb_control_msg(udev, | 1063 | s16 ret; |
| 1064 | |||
| 1065 | b = kmalloc(16, GFP_KERNEL); | ||
| 1066 | if (!b) | ||
| 1067 | return -ENOMEM; | ||
| 1068 | |||
| 1069 | ret = usb_control_msg(udev, | ||
| 1044 | usb_rcvctrlpipe(udev, 0), | 1070 | usb_rcvctrlpipe(udev, 0), |
| 1045 | 0xb7, | 1071 | 0xb7, |
| 1046 | USB_TYPE_VENDOR | USB_DIR_IN, | 1072 | USB_TYPE_VENDOR | USB_DIR_IN, |
| @@ -1051,7 +1077,7 @@ int az6027_identify_state(struct usb_device *udev, | |||
| 1051 | USB_CTRL_GET_TIMEOUT); | 1077 | USB_CTRL_GET_TIMEOUT); |
| 1052 | 1078 | ||
| 1053 | *cold = ret <= 0; | 1079 | *cold = ret <= 0; |
| 1054 | 1080 | kfree(b); | |
| 1055 | deb_info("cold: %d\n", *cold); | 1081 | deb_info("cold: %d\n", *cold); |
| 1056 | return 0; | 1082 | return 0; |
| 1057 | } | 1083 | } |
| @@ -1059,8 +1085,10 @@ int az6027_identify_state(struct usb_device *udev, | |||
| 1059 | 1085 | ||
| 1060 | static struct usb_device_id az6027_usb_table[] = { | 1086 | static struct usb_device_id az6027_usb_table[] = { |
| 1061 | { USB_DEVICE(USB_VID_AZUREWAVE, USB_PID_AZUREWAVE_AZ6027) }, | 1087 | { USB_DEVICE(USB_VID_AZUREWAVE, USB_PID_AZUREWAVE_AZ6027) }, |
| 1062 | { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_DVBS2CI) }, | 1088 | { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_DVBS2CI_V1) }, |
| 1063 | { USB_DEVICE(USB_VID_TECHNISAT, USB_PID_TECHNISAT_USB2_HDCI) }, | 1089 | { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_DVBS2CI_V2) }, |
| 1090 | { USB_DEVICE(USB_VID_TECHNISAT, USB_PID_TECHNISAT_USB2_HDCI_V1) }, | ||
| 1091 | { USB_DEVICE(USB_VID_TECHNISAT, USB_PID_TECHNISAT_USB2_HDCI_V2) }, | ||
| 1064 | { }, | 1092 | { }, |
| 1065 | }; | 1093 | }; |
| 1066 | 1094 | ||
| @@ -1097,18 +1125,34 @@ static struct dvb_usb_device_properties az6027_properties = { | |||
| 1097 | .power_ctrl = az6027_power_ctrl, | 1125 | .power_ctrl = az6027_power_ctrl, |
| 1098 | .read_mac_address = az6027_read_mac_addr, | 1126 | .read_mac_address = az6027_read_mac_addr, |
| 1099 | */ | 1127 | */ |
| 1100 | .rc_key_map = az6027_rc_keys, | 1128 | .rc_key_map = ir_codes_az6027_table, |
| 1101 | .rc_key_map_size = ARRAY_SIZE(az6027_rc_keys), | 1129 | .rc_key_map_size = ARRAY_SIZE(ir_codes_az6027_table), |
| 1102 | .rc_interval = 400, | 1130 | .rc_interval = 400, |
| 1103 | .rc_query = az6027_rc_query, | 1131 | .rc_query = az6027_rc_query, |
| 1104 | .i2c_algo = &az6027_i2c_algo, | 1132 | .i2c_algo = &az6027_i2c_algo, |
| 1105 | 1133 | ||
| 1106 | .num_device_descs = 1, | 1134 | .num_device_descs = 5, |
| 1107 | .devices = { | 1135 | .devices = { |
| 1108 | { | 1136 | { |
| 1109 | .name = "AZUREWAVE DVB-S/S2 USB2.0 (AZ6027)", | 1137 | .name = "AZUREWAVE DVB-S/S2 USB2.0 (AZ6027)", |
| 1110 | .cold_ids = { &az6027_usb_table[0], NULL }, | 1138 | .cold_ids = { &az6027_usb_table[0], NULL }, |
| 1111 | .warm_ids = { NULL }, | 1139 | .warm_ids = { NULL }, |
| 1140 | }, { | ||
| 1141 | .name = "TERRATEC S7", | ||
| 1142 | .cold_ids = { &az6027_usb_table[1], NULL }, | ||
| 1143 | .warm_ids = { NULL }, | ||
| 1144 | }, { | ||
| 1145 | .name = "TERRATEC S7 MKII", | ||
| 1146 | .cold_ids = { &az6027_usb_table[2], NULL }, | ||
| 1147 | .warm_ids = { NULL }, | ||
| 1148 | }, { | ||
| 1149 | .name = "Technisat SkyStar USB 2 HD CI", | ||
| 1150 | .cold_ids = { &az6027_usb_table[3], NULL }, | ||
| 1151 | .warm_ids = { NULL }, | ||
| 1152 | }, { | ||
| 1153 | .name = "Technisat SkyStar USB 2 HD CI", | ||
| 1154 | .cold_ids = { &az6027_usb_table[4], NULL }, | ||
| 1155 | .warm_ids = { NULL }, | ||
| 1112 | }, | 1156 | }, |
| 1113 | { NULL }, | 1157 | { NULL }, |
| 1114 | } | 1158 | } |
diff --git a/drivers/media/dvb/dvb-usb/cinergyT2-core.c b/drivers/media/dvb/dvb-usb/cinergyT2-core.c index e37ac4d48602..5a9c14bdc980 100644 --- a/drivers/media/dvb/dvb-usb/cinergyT2-core.c +++ b/drivers/media/dvb/dvb-usb/cinergyT2-core.c | |||
| @@ -84,7 +84,7 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap) | |||
| 84 | return 0; | 84 | return 0; |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | static struct dvb_usb_rc_key cinergyt2_rc_keys[] = { | 87 | static struct dvb_usb_rc_key ir_codes_cinergyt2_table[] = { |
| 88 | { 0x0401, KEY_POWER }, | 88 | { 0x0401, KEY_POWER }, |
| 89 | { 0x0402, KEY_1 }, | 89 | { 0x0402, KEY_1 }, |
| 90 | { 0x0403, KEY_2 }, | 90 | { 0x0403, KEY_2 }, |
| @@ -218,8 +218,8 @@ static struct dvb_usb_device_properties cinergyt2_properties = { | |||
| 218 | .power_ctrl = cinergyt2_power_ctrl, | 218 | .power_ctrl = cinergyt2_power_ctrl, |
| 219 | 219 | ||
| 220 | .rc_interval = 50, | 220 | .rc_interval = 50, |
| 221 | .rc_key_map = cinergyt2_rc_keys, | 221 | .rc_key_map = ir_codes_cinergyt2_table, |
| 222 | .rc_key_map_size = ARRAY_SIZE(cinergyt2_rc_keys), | 222 | .rc_key_map_size = ARRAY_SIZE(ir_codes_cinergyt2_table), |
| 223 | .rc_query = cinergyt2_rc_query, | 223 | .rc_query = cinergyt2_rc_query, |
| 224 | 224 | ||
| 225 | .generic_bulk_ctrl_endpoint = 1, | 225 | .generic_bulk_ctrl_endpoint = 1, |
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index 960376da7d59..0eb490889162 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c | |||
| @@ -461,7 +461,7 @@ static int cxusb_d680_dmb_rc_query(struct dvb_usb_device *d, u32 *event, | |||
| 461 | return 0; | 461 | return 0; |
| 462 | } | 462 | } |
| 463 | 463 | ||
| 464 | static struct dvb_usb_rc_key dvico_mce_rc_keys[] = { | 464 | static struct dvb_usb_rc_key ir_codes_dvico_mce_table[] = { |
| 465 | { 0xfe02, KEY_TV }, | 465 | { 0xfe02, KEY_TV }, |
| 466 | { 0xfe0e, KEY_MP3 }, | 466 | { 0xfe0e, KEY_MP3 }, |
| 467 | { 0xfe1a, KEY_DVD }, | 467 | { 0xfe1a, KEY_DVD }, |
| @@ -509,7 +509,7 @@ static struct dvb_usb_rc_key dvico_mce_rc_keys[] = { | |||
| 509 | { 0xfe4e, KEY_POWER }, | 509 | { 0xfe4e, KEY_POWER }, |
| 510 | }; | 510 | }; |
| 511 | 511 | ||
| 512 | static struct dvb_usb_rc_key dvico_portable_rc_keys[] = { | 512 | static struct dvb_usb_rc_key ir_codes_dvico_portable_table[] = { |
| 513 | { 0xfc02, KEY_SETUP }, /* Profile */ | 513 | { 0xfc02, KEY_SETUP }, /* Profile */ |
| 514 | { 0xfc43, KEY_POWER2 }, | 514 | { 0xfc43, KEY_POWER2 }, |
| 515 | { 0xfc06, KEY_EPG }, | 515 | { 0xfc06, KEY_EPG }, |
| @@ -548,7 +548,7 @@ static struct dvb_usb_rc_key dvico_portable_rc_keys[] = { | |||
| 548 | { 0xfc00, KEY_UNKNOWN }, /* HD */ | 548 | { 0xfc00, KEY_UNKNOWN }, /* HD */ |
| 549 | }; | 549 | }; |
| 550 | 550 | ||
| 551 | static struct dvb_usb_rc_key d680_dmb_rc_keys[] = { | 551 | static struct dvb_usb_rc_key ir_codes_d680_dmb_table[] = { |
| 552 | { 0x0038, KEY_UNKNOWN }, /* TV/AV */ | 552 | { 0x0038, KEY_UNKNOWN }, /* TV/AV */ |
| 553 | { 0x080c, KEY_ZOOM }, | 553 | { 0x080c, KEY_ZOOM }, |
| 554 | { 0x0800, KEY_0 }, | 554 | { 0x0800, KEY_0 }, |
| @@ -1025,8 +1025,9 @@ static int cxusb_dualdig4_rev2_frontend_attach(struct dvb_usb_adapter *adap) | |||
| 1025 | 1025 | ||
| 1026 | cxusb_bluebird_gpio_pulse(adap->dev, 0x02, 1); | 1026 | cxusb_bluebird_gpio_pulse(adap->dev, 0x02, 1); |
| 1027 | 1027 | ||
| 1028 | dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18, | 1028 | if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18, |
| 1029 | &cxusb_dualdig4_rev2_config); | 1029 | &cxusb_dualdig4_rev2_config) < 0) |
| 1030 | return -ENODEV; | ||
| 1030 | 1031 | ||
| 1031 | adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, | 1032 | adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, |
| 1032 | &cxusb_dualdig4_rev2_config); | 1033 | &cxusb_dualdig4_rev2_config); |
| @@ -1449,8 +1450,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgh064f_properties = { | |||
| 1449 | .i2c_algo = &cxusb_i2c_algo, | 1450 | .i2c_algo = &cxusb_i2c_algo, |
| 1450 | 1451 | ||
| 1451 | .rc_interval = 100, | 1452 | .rc_interval = 100, |
| 1452 | .rc_key_map = dvico_portable_rc_keys, | 1453 | .rc_key_map = ir_codes_dvico_portable_table, |
| 1453 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | 1454 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_portable_table), |
| 1454 | .rc_query = cxusb_rc_query, | 1455 | .rc_query = cxusb_rc_query, |
| 1455 | 1456 | ||
| 1456 | .generic_bulk_ctrl_endpoint = 0x01, | 1457 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -1500,8 +1501,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_dee1601_properties = { | |||
| 1500 | .i2c_algo = &cxusb_i2c_algo, | 1501 | .i2c_algo = &cxusb_i2c_algo, |
| 1501 | 1502 | ||
| 1502 | .rc_interval = 150, | 1503 | .rc_interval = 150, |
| 1503 | .rc_key_map = dvico_mce_rc_keys, | 1504 | .rc_key_map = ir_codes_dvico_mce_table, |
| 1504 | .rc_key_map_size = ARRAY_SIZE(dvico_mce_rc_keys), | 1505 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_mce_table), |
| 1505 | .rc_query = cxusb_rc_query, | 1506 | .rc_query = cxusb_rc_query, |
| 1506 | 1507 | ||
| 1507 | .generic_bulk_ctrl_endpoint = 0x01, | 1508 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -1559,8 +1560,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgz201_properties = { | |||
| 1559 | .i2c_algo = &cxusb_i2c_algo, | 1560 | .i2c_algo = &cxusb_i2c_algo, |
| 1560 | 1561 | ||
| 1561 | .rc_interval = 100, | 1562 | .rc_interval = 100, |
| 1562 | .rc_key_map = dvico_portable_rc_keys, | 1563 | .rc_key_map = ir_codes_dvico_portable_table, |
| 1563 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | 1564 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_portable_table), |
| 1564 | .rc_query = cxusb_rc_query, | 1565 | .rc_query = cxusb_rc_query, |
| 1565 | 1566 | ||
| 1566 | .generic_bulk_ctrl_endpoint = 0x01, | 1567 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -1609,8 +1610,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_dtt7579_properties = { | |||
| 1609 | .i2c_algo = &cxusb_i2c_algo, | 1610 | .i2c_algo = &cxusb_i2c_algo, |
| 1610 | 1611 | ||
| 1611 | .rc_interval = 100, | 1612 | .rc_interval = 100, |
| 1612 | .rc_key_map = dvico_portable_rc_keys, | 1613 | .rc_key_map = ir_codes_dvico_portable_table, |
| 1613 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | 1614 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_portable_table), |
| 1614 | .rc_query = cxusb_rc_query, | 1615 | .rc_query = cxusb_rc_query, |
| 1615 | 1616 | ||
| 1616 | .generic_bulk_ctrl_endpoint = 0x01, | 1617 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -1658,8 +1659,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_dualdig4_properties = { | |||
| 1658 | .generic_bulk_ctrl_endpoint = 0x01, | 1659 | .generic_bulk_ctrl_endpoint = 0x01, |
| 1659 | 1660 | ||
| 1660 | .rc_interval = 100, | 1661 | .rc_interval = 100, |
| 1661 | .rc_key_map = dvico_mce_rc_keys, | 1662 | .rc_key_map = ir_codes_dvico_mce_table, |
| 1662 | .rc_key_map_size = ARRAY_SIZE(dvico_mce_rc_keys), | 1663 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_mce_table), |
| 1663 | .rc_query = cxusb_bluebird2_rc_query, | 1664 | .rc_query = cxusb_bluebird2_rc_query, |
| 1664 | 1665 | ||
| 1665 | .num_device_descs = 1, | 1666 | .num_device_descs = 1, |
| @@ -1706,8 +1707,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_properties = { | |||
| 1706 | .generic_bulk_ctrl_endpoint = 0x01, | 1707 | .generic_bulk_ctrl_endpoint = 0x01, |
| 1707 | 1708 | ||
| 1708 | .rc_interval = 100, | 1709 | .rc_interval = 100, |
| 1709 | .rc_key_map = dvico_portable_rc_keys, | 1710 | .rc_key_map = ir_codes_dvico_portable_table, |
| 1710 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | 1711 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_portable_table), |
| 1711 | .rc_query = cxusb_bluebird2_rc_query, | 1712 | .rc_query = cxusb_bluebird2_rc_query, |
| 1712 | 1713 | ||
| 1713 | .num_device_descs = 1, | 1714 | .num_device_descs = 1, |
| @@ -1756,8 +1757,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_needsfirmware_prope | |||
| 1756 | .generic_bulk_ctrl_endpoint = 0x01, | 1757 | .generic_bulk_ctrl_endpoint = 0x01, |
| 1757 | 1758 | ||
| 1758 | .rc_interval = 100, | 1759 | .rc_interval = 100, |
| 1759 | .rc_key_map = dvico_portable_rc_keys, | 1760 | .rc_key_map = ir_codes_dvico_portable_table, |
| 1760 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | 1761 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_portable_table), |
| 1761 | .rc_query = cxusb_rc_query, | 1762 | .rc_query = cxusb_rc_query, |
| 1762 | 1763 | ||
| 1763 | .num_device_descs = 1, | 1764 | .num_device_descs = 1, |
| @@ -1847,8 +1848,8 @@ struct dvb_usb_device_properties cxusb_bluebird_dualdig4_rev2_properties = { | |||
| 1847 | .generic_bulk_ctrl_endpoint = 0x01, | 1848 | .generic_bulk_ctrl_endpoint = 0x01, |
| 1848 | 1849 | ||
| 1849 | .rc_interval = 100, | 1850 | .rc_interval = 100, |
| 1850 | .rc_key_map = dvico_mce_rc_keys, | 1851 | .rc_key_map = ir_codes_dvico_mce_table, |
| 1851 | .rc_key_map_size = ARRAY_SIZE(dvico_mce_rc_keys), | 1852 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dvico_mce_table), |
| 1852 | .rc_query = cxusb_rc_query, | 1853 | .rc_query = cxusb_rc_query, |
| 1853 | 1854 | ||
| 1854 | .num_device_descs = 1, | 1855 | .num_device_descs = 1, |
| @@ -1895,8 +1896,8 @@ static struct dvb_usb_device_properties cxusb_d680_dmb_properties = { | |||
| 1895 | .generic_bulk_ctrl_endpoint = 0x01, | 1896 | .generic_bulk_ctrl_endpoint = 0x01, |
| 1896 | 1897 | ||
| 1897 | .rc_interval = 100, | 1898 | .rc_interval = 100, |
| 1898 | .rc_key_map = d680_dmb_rc_keys, | 1899 | .rc_key_map = ir_codes_d680_dmb_table, |
| 1899 | .rc_key_map_size = ARRAY_SIZE(d680_dmb_rc_keys), | 1900 | .rc_key_map_size = ARRAY_SIZE(ir_codes_d680_dmb_table), |
| 1900 | .rc_query = cxusb_d680_dmb_rc_query, | 1901 | .rc_query = cxusb_d680_dmb_rc_query, |
| 1901 | 1902 | ||
| 1902 | .num_device_descs = 1, | 1903 | .num_device_descs = 1, |
| @@ -1944,8 +1945,8 @@ static struct dvb_usb_device_properties cxusb_mygica_d689_properties = { | |||
| 1944 | .generic_bulk_ctrl_endpoint = 0x01, | 1945 | .generic_bulk_ctrl_endpoint = 0x01, |
| 1945 | 1946 | ||
| 1946 | .rc_interval = 100, | 1947 | .rc_interval = 100, |
| 1947 | .rc_key_map = d680_dmb_rc_keys, | 1948 | .rc_key_map = ir_codes_d680_dmb_table, |
| 1948 | .rc_key_map_size = ARRAY_SIZE(d680_dmb_rc_keys), | 1949 | .rc_key_map_size = ARRAY_SIZE(ir_codes_d680_dmb_table), |
| 1949 | .rc_query = cxusb_d680_dmb_rc_query, | 1950 | .rc_query = cxusb_d680_dmb_rc_query, |
| 1950 | 1951 | ||
| 1951 | .num_device_descs = 1, | 1952 | .num_device_descs = 1, |
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c index 34eab05afc6c..800800a9649e 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c | |||
| @@ -562,7 +562,7 @@ static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | |||
| 562 | return 0; | 562 | return 0; |
| 563 | } | 563 | } |
| 564 | 564 | ||
| 565 | static struct dvb_usb_rc_key dib0700_rc_keys[] = { | 565 | static struct dvb_usb_rc_key ir_codes_dib0700_table[] = { |
| 566 | /* Key codes for the tiny Pinnacle remote*/ | 566 | /* Key codes for the tiny Pinnacle remote*/ |
| 567 | { 0x0700, KEY_MUTE }, | 567 | { 0x0700, KEY_MUTE }, |
| 568 | { 0x0701, KEY_MENU }, /* Pinnacle logo */ | 568 | { 0x0701, KEY_MENU }, /* Pinnacle logo */ |
| @@ -794,6 +794,43 @@ static struct dvb_usb_rc_key dib0700_rc_keys[] = { | |||
| 794 | { 0x7a13, KEY_VOLUMEDOWN }, | 794 | { 0x7a13, KEY_VOLUMEDOWN }, |
| 795 | { 0x7a40, KEY_POWER }, | 795 | { 0x7a40, KEY_POWER }, |
| 796 | { 0x7a41, KEY_MUTE }, | 796 | { 0x7a41, KEY_MUTE }, |
| 797 | |||
| 798 | /* Key codes for the Elgato EyeTV Diversity silver remote, | ||
| 799 | set dvb_usb_dib0700_ir_proto=0 */ | ||
| 800 | { 0x4501, KEY_POWER }, | ||
| 801 | { 0x4502, KEY_MUTE }, | ||
| 802 | { 0x4503, KEY_1 }, | ||
| 803 | { 0x4504, KEY_2 }, | ||
| 804 | { 0x4505, KEY_3 }, | ||
| 805 | { 0x4506, KEY_4 }, | ||
| 806 | { 0x4507, KEY_5 }, | ||
| 807 | { 0x4508, KEY_6 }, | ||
| 808 | { 0x4509, KEY_7 }, | ||
| 809 | { 0x450a, KEY_8 }, | ||
| 810 | { 0x450b, KEY_9 }, | ||
| 811 | { 0x450c, KEY_LAST }, | ||
| 812 | { 0x450d, KEY_0 }, | ||
| 813 | { 0x450e, KEY_ENTER }, | ||
| 814 | { 0x450f, KEY_RED }, | ||
| 815 | { 0x4510, KEY_CHANNELUP }, | ||
| 816 | { 0x4511, KEY_GREEN }, | ||
| 817 | { 0x4512, KEY_VOLUMEDOWN }, | ||
| 818 | { 0x4513, KEY_OK }, | ||
| 819 | { 0x4514, KEY_VOLUMEUP }, | ||
| 820 | { 0x4515, KEY_YELLOW }, | ||
| 821 | { 0x4516, KEY_CHANNELDOWN }, | ||
| 822 | { 0x4517, KEY_BLUE }, | ||
| 823 | { 0x4518, KEY_LEFT }, /* Skip backwards */ | ||
| 824 | { 0x4519, KEY_PLAYPAUSE }, | ||
| 825 | { 0x451a, KEY_RIGHT }, /* Skip forward */ | ||
| 826 | { 0x451b, KEY_REWIND }, | ||
| 827 | { 0x451c, KEY_L }, /* Live */ | ||
| 828 | { 0x451d, KEY_FASTFORWARD }, | ||
| 829 | { 0x451e, KEY_STOP }, /* 'Reveal' for Teletext */ | ||
| 830 | { 0x451f, KEY_MENU }, /* KEY_TEXT for Teletext */ | ||
| 831 | { 0x4540, KEY_RECORD }, /* Font 'Size' for Teletext */ | ||
| 832 | { 0x4541, KEY_SCREEN }, /* Full screen toggle, 'Hold' for Teletext */ | ||
| 833 | { 0x4542, KEY_SELECT }, /* Select video input, 'Select' for Teletext */ | ||
| 797 | }; | 834 | }; |
| 798 | 835 | ||
| 799 | /* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */ | 836 | /* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */ |
| @@ -2049,6 +2086,7 @@ struct usb_device_id dib0700_usb_id_table[] = { | |||
| 2049 | /* 65 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73ESE) }, | 2086 | /* 65 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73ESE) }, |
| 2050 | { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV282E) }, | 2087 | { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV282E) }, |
| 2051 | { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK8096GP) }, | 2088 | { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK8096GP) }, |
| 2089 | { USB_DEVICE(USB_VID_ELGATO, USB_PID_ELGATO_EYETV_DIVERSITY) }, | ||
| 2052 | { 0 } /* Terminating entry */ | 2090 | { 0 } /* Terminating entry */ |
| 2053 | }; | 2091 | }; |
| 2054 | MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); | 2092 | MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); |
| @@ -2131,8 +2169,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2131 | }, | 2169 | }, |
| 2132 | 2170 | ||
| 2133 | .rc_interval = DEFAULT_RC_INTERVAL, | 2171 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2134 | .rc_key_map = dib0700_rc_keys, | 2172 | .rc_key_map = ir_codes_dib0700_table, |
| 2135 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2173 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2136 | .rc_query = dib0700_rc_query | 2174 | .rc_query = dib0700_rc_query |
| 2137 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2175 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2138 | 2176 | ||
| @@ -2160,8 +2198,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2160 | }, | 2198 | }, |
| 2161 | 2199 | ||
| 2162 | .rc_interval = DEFAULT_RC_INTERVAL, | 2200 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2163 | .rc_key_map = dib0700_rc_keys, | 2201 | .rc_key_map = ir_codes_dib0700_table, |
| 2164 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2202 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2165 | .rc_query = dib0700_rc_query | 2203 | .rc_query = dib0700_rc_query |
| 2166 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2204 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2167 | 2205 | ||
| @@ -2214,8 +2252,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2214 | }, | 2252 | }, |
| 2215 | 2253 | ||
| 2216 | .rc_interval = DEFAULT_RC_INTERVAL, | 2254 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2217 | .rc_key_map = dib0700_rc_keys, | 2255 | .rc_key_map = ir_codes_dib0700_table, |
| 2218 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2256 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2219 | .rc_query = dib0700_rc_query | 2257 | .rc_query = dib0700_rc_query |
| 2220 | 2258 | ||
| 2221 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2259 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| @@ -2251,8 +2289,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2251 | }, | 2289 | }, |
| 2252 | 2290 | ||
| 2253 | .rc_interval = DEFAULT_RC_INTERVAL, | 2291 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2254 | .rc_key_map = dib0700_rc_keys, | 2292 | .rc_key_map = ir_codes_dib0700_table, |
| 2255 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2293 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2256 | .rc_query = dib0700_rc_query | 2294 | .rc_query = dib0700_rc_query |
| 2257 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2295 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2258 | 2296 | ||
| @@ -2321,8 +2359,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2321 | }, | 2359 | }, |
| 2322 | 2360 | ||
| 2323 | .rc_interval = DEFAULT_RC_INTERVAL, | 2361 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2324 | .rc_key_map = dib0700_rc_keys, | 2362 | .rc_key_map = ir_codes_dib0700_table, |
| 2325 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2363 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2326 | .rc_query = dib0700_rc_query | 2364 | .rc_query = dib0700_rc_query |
| 2327 | 2365 | ||
| 2328 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2366 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| @@ -2360,8 +2398,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2360 | }, | 2398 | }, |
| 2361 | 2399 | ||
| 2362 | .rc_interval = DEFAULT_RC_INTERVAL, | 2400 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2363 | .rc_key_map = dib0700_rc_keys, | 2401 | .rc_key_map = ir_codes_dib0700_table, |
| 2364 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2402 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2365 | .rc_query = dib0700_rc_query | 2403 | .rc_query = dib0700_rc_query |
| 2366 | 2404 | ||
| 2367 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2405 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| @@ -2393,7 +2431,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2393 | } | 2431 | } |
| 2394 | }, | 2432 | }, |
| 2395 | 2433 | ||
| 2396 | .num_device_descs = 6, | 2434 | .num_device_descs = 7, |
| 2397 | .devices = { | 2435 | .devices = { |
| 2398 | { "DiBcom STK7070PD reference design", | 2436 | { "DiBcom STK7070PD reference design", |
| 2399 | { &dib0700_usb_id_table[17], NULL }, | 2437 | { &dib0700_usb_id_table[17], NULL }, |
| @@ -2419,11 +2457,15 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2419 | { "Sony PlayTV", | 2457 | { "Sony PlayTV", |
| 2420 | { &dib0700_usb_id_table[44], NULL }, | 2458 | { &dib0700_usb_id_table[44], NULL }, |
| 2421 | { NULL }, | 2459 | { NULL }, |
| 2422 | } | 2460 | }, |
| 2461 | { "Elgato EyeTV Diversity", | ||
| 2462 | { &dib0700_usb_id_table[68], NULL }, | ||
| 2463 | { NULL }, | ||
| 2464 | }, | ||
| 2423 | }, | 2465 | }, |
| 2424 | .rc_interval = DEFAULT_RC_INTERVAL, | 2466 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2425 | .rc_key_map = dib0700_rc_keys, | 2467 | .rc_key_map = ir_codes_dib0700_table, |
| 2426 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2468 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2427 | .rc_query = dib0700_rc_query | 2469 | .rc_query = dib0700_rc_query |
| 2428 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2470 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2429 | 2471 | ||
| @@ -2484,8 +2526,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2484 | }, | 2526 | }, |
| 2485 | }, | 2527 | }, |
| 2486 | .rc_interval = DEFAULT_RC_INTERVAL, | 2528 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2487 | .rc_key_map = dib0700_rc_keys, | 2529 | .rc_key_map = ir_codes_dib0700_table, |
| 2488 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2530 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2489 | .rc_query = dib0700_rc_query | 2531 | .rc_query = dib0700_rc_query |
| 2490 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2532 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2491 | .num_adapters = 1, | 2533 | .num_adapters = 1, |
| @@ -2513,8 +2555,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2513 | }, | 2555 | }, |
| 2514 | }, | 2556 | }, |
| 2515 | .rc_interval = DEFAULT_RC_INTERVAL, | 2557 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2516 | .rc_key_map = dib0700_rc_keys, | 2558 | .rc_key_map = ir_codes_dib0700_table, |
| 2517 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2559 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2518 | .rc_query = dib0700_rc_query | 2560 | .rc_query = dib0700_rc_query |
| 2519 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2561 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2520 | .num_adapters = 1, | 2562 | .num_adapters = 1, |
| @@ -2574,8 +2616,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2574 | }, | 2616 | }, |
| 2575 | }, | 2617 | }, |
| 2576 | .rc_interval = DEFAULT_RC_INTERVAL, | 2618 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2577 | .rc_key_map = dib0700_rc_keys, | 2619 | .rc_key_map = ir_codes_dib0700_table, |
| 2578 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2620 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2579 | .rc_query = dib0700_rc_query | 2621 | .rc_query = dib0700_rc_query |
| 2580 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2622 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2581 | .num_adapters = 1, | 2623 | .num_adapters = 1, |
| @@ -2612,8 +2654,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2612 | }, | 2654 | }, |
| 2613 | 2655 | ||
| 2614 | .rc_interval = DEFAULT_RC_INTERVAL, | 2656 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2615 | .rc_key_map = dib0700_rc_keys, | 2657 | .rc_key_map = ir_codes_dib0700_table, |
| 2616 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2658 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2617 | .rc_query = dib0700_rc_query | 2659 | .rc_query = dib0700_rc_query |
| 2618 | 2660 | ||
| 2619 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2661 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| @@ -2656,8 +2698,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2656 | }, | 2698 | }, |
| 2657 | 2699 | ||
| 2658 | .rc_interval = DEFAULT_RC_INTERVAL, | 2700 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2659 | .rc_key_map = dib0700_rc_keys, | 2701 | .rc_key_map = ir_codes_dib0700_table, |
| 2660 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2702 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2661 | .rc_query = dib0700_rc_query | 2703 | .rc_query = dib0700_rc_query |
| 2662 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, | 2704 | }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, |
| 2663 | .num_adapters = 1, | 2705 | .num_adapters = 1, |
| @@ -2687,8 +2729,8 @@ struct dvb_usb_device_properties dib0700_devices[] = { | |||
| 2687 | }, | 2729 | }, |
| 2688 | 2730 | ||
| 2689 | .rc_interval = DEFAULT_RC_INTERVAL, | 2731 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 2690 | .rc_key_map = dib0700_rc_keys, | 2732 | .rc_key_map = ir_codes_dib0700_table, |
| 2691 | .rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys), | 2733 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dib0700_table), |
| 2692 | .rc_query = dib0700_rc_query | 2734 | .rc_query = dib0700_rc_query |
| 2693 | }, | 2735 | }, |
| 2694 | }; | 2736 | }; |
diff --git a/drivers/media/dvb/dvb-usb/dibusb-common.c b/drivers/media/dvb/dvb-usb/dibusb-common.c index 9143b5631e88..bc08bc0b723c 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-common.c +++ b/drivers/media/dvb/dvb-usb/dibusb-common.c | |||
| @@ -327,7 +327,7 @@ EXPORT_SYMBOL(dibusb_dib3000mc_tuner_attach); | |||
| 327 | /* | 327 | /* |
| 328 | * common remote control stuff | 328 | * common remote control stuff |
| 329 | */ | 329 | */ |
| 330 | struct dvb_usb_rc_key dibusb_rc_keys[] = { | 330 | struct dvb_usb_rc_key ir_codes_dibusb_table[] = { |
| 331 | /* Key codes for the little Artec T1/Twinhan/HAMA/ remote. */ | 331 | /* Key codes for the little Artec T1/Twinhan/HAMA/ remote. */ |
| 332 | { 0x0016, KEY_POWER }, | 332 | { 0x0016, KEY_POWER }, |
| 333 | { 0x0010, KEY_MUTE }, | 333 | { 0x0010, KEY_MUTE }, |
| @@ -456,7 +456,7 @@ struct dvb_usb_rc_key dibusb_rc_keys[] = { | |||
| 456 | { 0x804e, KEY_ENTER }, | 456 | { 0x804e, KEY_ENTER }, |
| 457 | { 0x804f, KEY_VOLUMEDOWN }, | 457 | { 0x804f, KEY_VOLUMEDOWN }, |
| 458 | }; | 458 | }; |
| 459 | EXPORT_SYMBOL(dibusb_rc_keys); | 459 | EXPORT_SYMBOL(ir_codes_dibusb_table); |
| 460 | 460 | ||
| 461 | int dibusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | 461 | int dibusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) |
| 462 | { | 462 | { |
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mb.c b/drivers/media/dvb/dvb-usb/dibusb-mb.c index 5c0126dc1ff9..eb2e6f050fbe 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-mb.c +++ b/drivers/media/dvb/dvb-usb/dibusb-mb.c | |||
| @@ -212,7 +212,7 @@ static struct dvb_usb_device_properties dibusb1_1_properties = { | |||
| 212 | .power_ctrl = dibusb_power_ctrl, | 212 | .power_ctrl = dibusb_power_ctrl, |
| 213 | 213 | ||
| 214 | .rc_interval = DEFAULT_RC_INTERVAL, | 214 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 215 | .rc_key_map = dibusb_rc_keys, | 215 | .rc_key_map = ir_codes_dibusb_table, |
| 216 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ | 216 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ |
| 217 | .rc_query = dibusb_rc_query, | 217 | .rc_query = dibusb_rc_query, |
| 218 | 218 | ||
| @@ -296,7 +296,7 @@ static struct dvb_usb_device_properties dibusb1_1_an2235_properties = { | |||
| 296 | .power_ctrl = dibusb_power_ctrl, | 296 | .power_ctrl = dibusb_power_ctrl, |
| 297 | 297 | ||
| 298 | .rc_interval = DEFAULT_RC_INTERVAL, | 298 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 299 | .rc_key_map = dibusb_rc_keys, | 299 | .rc_key_map = ir_codes_dibusb_table, |
| 300 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ | 300 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ |
| 301 | .rc_query = dibusb_rc_query, | 301 | .rc_query = dibusb_rc_query, |
| 302 | 302 | ||
| @@ -360,7 +360,7 @@ static struct dvb_usb_device_properties dibusb2_0b_properties = { | |||
| 360 | .power_ctrl = dibusb2_0_power_ctrl, | 360 | .power_ctrl = dibusb2_0_power_ctrl, |
| 361 | 361 | ||
| 362 | .rc_interval = DEFAULT_RC_INTERVAL, | 362 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 363 | .rc_key_map = dibusb_rc_keys, | 363 | .rc_key_map = ir_codes_dibusb_table, |
| 364 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ | 364 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ |
| 365 | .rc_query = dibusb_rc_query, | 365 | .rc_query = dibusb_rc_query, |
| 366 | 366 | ||
| @@ -417,7 +417,7 @@ static struct dvb_usb_device_properties artec_t1_usb2_properties = { | |||
| 417 | .power_ctrl = dibusb2_0_power_ctrl, | 417 | .power_ctrl = dibusb2_0_power_ctrl, |
| 418 | 418 | ||
| 419 | .rc_interval = DEFAULT_RC_INTERVAL, | 419 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 420 | .rc_key_map = dibusb_rc_keys, | 420 | .rc_key_map = ir_codes_dibusb_table, |
| 421 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ | 421 | .rc_key_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ |
| 422 | .rc_query = dibusb_rc_query, | 422 | .rc_query = dibusb_rc_query, |
| 423 | 423 | ||
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mc.c b/drivers/media/dvb/dvb-usb/dibusb-mc.c index a05b9f875663..588308eb6638 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-mc.c +++ b/drivers/media/dvb/dvb-usb/dibusb-mc.c | |||
| @@ -82,7 +82,7 @@ static struct dvb_usb_device_properties dibusb_mc_properties = { | |||
| 82 | .power_ctrl = dibusb2_0_power_ctrl, | 82 | .power_ctrl = dibusb2_0_power_ctrl, |
| 83 | 83 | ||
| 84 | .rc_interval = DEFAULT_RC_INTERVAL, | 84 | .rc_interval = DEFAULT_RC_INTERVAL, |
| 85 | .rc_key_map = dibusb_rc_keys, | 85 | .rc_key_map = ir_codes_dibusb_table, |
| 86 | .rc_key_map_size = 111, /* FIXME */ | 86 | .rc_key_map_size = 111, /* FIXME */ |
| 87 | .rc_query = dibusb_rc_query, | 87 | .rc_query = dibusb_rc_query, |
| 88 | 88 | ||
diff --git a/drivers/media/dvb/dvb-usb/dibusb.h b/drivers/media/dvb/dvb-usb/dibusb.h index 8e847aa73ba1..3d50ac59088f 100644 --- a/drivers/media/dvb/dvb-usb/dibusb.h +++ b/drivers/media/dvb/dvb-usb/dibusb.h | |||
| @@ -124,7 +124,7 @@ extern int dibusb2_0_power_ctrl(struct dvb_usb_device *, int); | |||
| 124 | #define DEFAULT_RC_INTERVAL 150 | 124 | #define DEFAULT_RC_INTERVAL 150 |
| 125 | //#define DEFAULT_RC_INTERVAL 100000 | 125 | //#define DEFAULT_RC_INTERVAL 100000 |
| 126 | 126 | ||
| 127 | extern struct dvb_usb_rc_key dibusb_rc_keys[]; | 127 | extern struct dvb_usb_rc_key ir_codes_dibusb_table[]; |
| 128 | extern int dibusb_rc_query(struct dvb_usb_device *, u32 *, int *); | 128 | extern int dibusb_rc_query(struct dvb_usb_device *, u32 *, int *); |
| 129 | extern int dibusb_read_eeprom_byte(struct dvb_usb_device *, u8, u8 *); | 129 | extern int dibusb_read_eeprom_byte(struct dvb_usb_device *, u8, u8 *); |
| 130 | 130 | ||
diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c index 955147d00756..e826077094fa 100644 --- a/drivers/media/dvb/dvb-usb/digitv.c +++ b/drivers/media/dvb/dvb-usb/digitv.c | |||
| @@ -161,7 +161,7 @@ static int digitv_tuner_attach(struct dvb_usb_adapter *adap) | |||
| 161 | return 0; | 161 | return 0; |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | static struct dvb_usb_rc_key digitv_rc_keys[] = { | 164 | static struct dvb_usb_rc_key ir_codes_digitv_table[] = { |
| 165 | { 0x5f55, KEY_0 }, | 165 | { 0x5f55, KEY_0 }, |
| 166 | { 0x6f55, KEY_1 }, | 166 | { 0x6f55, KEY_1 }, |
| 167 | { 0x9f55, KEY_2 }, | 167 | { 0x9f55, KEY_2 }, |
| @@ -311,8 +311,8 @@ static struct dvb_usb_device_properties digitv_properties = { | |||
| 311 | .identify_state = digitv_identify_state, | 311 | .identify_state = digitv_identify_state, |
| 312 | 312 | ||
| 313 | .rc_interval = 1000, | 313 | .rc_interval = 1000, |
| 314 | .rc_key_map = digitv_rc_keys, | 314 | .rc_key_map = ir_codes_digitv_table, |
| 315 | .rc_key_map_size = ARRAY_SIZE(digitv_rc_keys), | 315 | .rc_key_map_size = ARRAY_SIZE(ir_codes_digitv_table), |
| 316 | .rc_query = digitv_rc_query, | 316 | .rc_query = digitv_rc_query, |
| 317 | 317 | ||
| 318 | .i2c_algo = &digitv_i2c_algo, | 318 | .i2c_algo = &digitv_i2c_algo, |
diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c index a1b12b01cbe4..f57e59044d4d 100644 --- a/drivers/media/dvb/dvb-usb/dtt200u.c +++ b/drivers/media/dvb/dvb-usb/dtt200u.c | |||
| @@ -57,7 +57,7 @@ static int dtt200u_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid, | |||
| 57 | 57 | ||
| 58 | /* remote control */ | 58 | /* remote control */ |
| 59 | /* key list for the tiny remote control (Yakumo, don't know about the others) */ | 59 | /* key list for the tiny remote control (Yakumo, don't know about the others) */ |
| 60 | static struct dvb_usb_rc_key dtt200u_rc_keys[] = { | 60 | static struct dvb_usb_rc_key ir_codes_dtt200u_table[] = { |
| 61 | { 0x8001, KEY_MUTE }, | 61 | { 0x8001, KEY_MUTE }, |
| 62 | { 0x8002, KEY_CHANNELDOWN }, | 62 | { 0x8002, KEY_CHANNELDOWN }, |
| 63 | { 0x8003, KEY_VOLUMEDOWN }, | 63 | { 0x8003, KEY_VOLUMEDOWN }, |
| @@ -162,8 +162,8 @@ static struct dvb_usb_device_properties dtt200u_properties = { | |||
| 162 | .power_ctrl = dtt200u_power_ctrl, | 162 | .power_ctrl = dtt200u_power_ctrl, |
| 163 | 163 | ||
| 164 | .rc_interval = 300, | 164 | .rc_interval = 300, |
| 165 | .rc_key_map = dtt200u_rc_keys, | 165 | .rc_key_map = ir_codes_dtt200u_table, |
| 166 | .rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys), | 166 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dtt200u_table), |
| 167 | .rc_query = dtt200u_rc_query, | 167 | .rc_query = dtt200u_rc_query, |
| 168 | 168 | ||
| 169 | .generic_bulk_ctrl_endpoint = 0x01, | 169 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -207,8 +207,8 @@ static struct dvb_usb_device_properties wt220u_properties = { | |||
| 207 | .power_ctrl = dtt200u_power_ctrl, | 207 | .power_ctrl = dtt200u_power_ctrl, |
| 208 | 208 | ||
| 209 | .rc_interval = 300, | 209 | .rc_interval = 300, |
| 210 | .rc_key_map = dtt200u_rc_keys, | 210 | .rc_key_map = ir_codes_dtt200u_table, |
| 211 | .rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys), | 211 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dtt200u_table), |
| 212 | .rc_query = dtt200u_rc_query, | 212 | .rc_query = dtt200u_rc_query, |
| 213 | 213 | ||
| 214 | .generic_bulk_ctrl_endpoint = 0x01, | 214 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -252,8 +252,8 @@ static struct dvb_usb_device_properties wt220u_fc_properties = { | |||
| 252 | .power_ctrl = dtt200u_power_ctrl, | 252 | .power_ctrl = dtt200u_power_ctrl, |
| 253 | 253 | ||
| 254 | .rc_interval = 300, | 254 | .rc_interval = 300, |
| 255 | .rc_key_map = dtt200u_rc_keys, | 255 | .rc_key_map = ir_codes_dtt200u_table, |
| 256 | .rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys), | 256 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dtt200u_table), |
| 257 | .rc_query = dtt200u_rc_query, | 257 | .rc_query = dtt200u_rc_query, |
| 258 | 258 | ||
| 259 | .generic_bulk_ctrl_endpoint = 0x01, | 259 | .generic_bulk_ctrl_endpoint = 0x01, |
| @@ -297,8 +297,8 @@ static struct dvb_usb_device_properties wt220u_zl0353_properties = { | |||
| 297 | .power_ctrl = dtt200u_power_ctrl, | 297 | .power_ctrl = dtt200u_power_ctrl, |
| 298 | 298 | ||
| 299 | .rc_interval = 300, | 299 | .rc_interval = 300, |
| 300 | .rc_key_map = dtt200u_rc_keys, | 300 | .rc_key_map = ir_codes_dtt200u_table, |
| 301 | .rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys), | 301 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dtt200u_table), |
| 302 | .rc_query = dtt200u_rc_query, | 302 | .rc_query = dtt200u_rc_query, |
| 303 | 303 | ||
| 304 | .generic_bulk_ctrl_endpoint = 0x01, | 304 | .generic_bulk_ctrl_endpoint = 0x01, |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h index ae8b57acfe05..085c4e457e0e 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | |||
| @@ -124,9 +124,11 @@ | |||
| 124 | #define USB_PID_KWORLD_395U 0xe396 | 124 | #define USB_PID_KWORLD_395U 0xe396 |
| 125 | #define USB_PID_KWORLD_395U_2 0xe39b | 125 | #define USB_PID_KWORLD_395U_2 0xe39b |
| 126 | #define USB_PID_KWORLD_395U_3 0xe395 | 126 | #define USB_PID_KWORLD_395U_3 0xe395 |
| 127 | #define USB_PID_KWORLD_395U_4 0xe39a | ||
| 127 | #define USB_PID_KWORLD_MC810 0xc810 | 128 | #define USB_PID_KWORLD_MC810 0xc810 |
| 128 | #define USB_PID_KWORLD_PC160_2T 0xc160 | 129 | #define USB_PID_KWORLD_PC160_2T 0xc160 |
| 129 | #define USB_PID_KWORLD_PC160_T 0xc161 | 130 | #define USB_PID_KWORLD_PC160_T 0xc161 |
| 131 | #define USB_PID_KWORLD_UB383_T 0xe383 | ||
| 130 | #define USB_PID_KWORLD_VSTREAM_COLD 0x17de | 132 | #define USB_PID_KWORLD_VSTREAM_COLD 0x17de |
| 131 | #define USB_PID_KWORLD_VSTREAM_WARM 0x17df | 133 | #define USB_PID_KWORLD_VSTREAM_WARM 0x17df |
| 132 | #define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055 | 134 | #define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055 |
| @@ -288,6 +290,7 @@ | |||
| 288 | #define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807 | 290 | #define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807 |
| 289 | #define USB_PID_SONY_PLAYTV 0x0003 | 291 | #define USB_PID_SONY_PLAYTV 0x0003 |
| 290 | #define USB_PID_MYGICA_D689 0xd811 | 292 | #define USB_PID_MYGICA_D689 0xd811 |
| 293 | #define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011 | ||
| 291 | #define USB_PID_ELGATO_EYETV_DTT 0x0021 | 294 | #define USB_PID_ELGATO_EYETV_DTT 0x0021 |
| 292 | #define USB_PID_ELGATO_EYETV_DTT_Dlx 0x0020 | 295 | #define USB_PID_ELGATO_EYETV_DTT_Dlx 0x0020 |
| 293 | #define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000 | 296 | #define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000 |
| @@ -296,6 +299,8 @@ | |||
| 296 | #define USB_PID_TVWAY_PLUS 0x0002 | 299 | #define USB_PID_TVWAY_PLUS 0x0002 |
| 297 | #define USB_PID_SVEON_STV20 0xe39d | 300 | #define USB_PID_SVEON_STV20 0xe39d |
| 298 | #define USB_PID_AZUREWAVE_AZ6027 0x3275 | 301 | #define USB_PID_AZUREWAVE_AZ6027 0x3275 |
| 299 | #define USB_PID_TERRATEC_DVBS2CI 0x3275 | 302 | #define USB_PID_TERRATEC_DVBS2CI_V1 0x10a4 |
| 300 | #define USB_PID_TECHNISAT_USB2_HDCI 0x0002 | 303 | #define USB_PID_TERRATEC_DVBS2CI_V2 0x10ac |
| 304 | #define USB_PID_TECHNISAT_USB2_HDCI_V1 0x0001 | ||
| 305 | #define USB_PID_TECHNISAT_USB2_HDCI_V2 0x0002 | ||
| 301 | #endif | 306 | #endif |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c index 6fe71c6745eb..bb46ba6a3573 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c | |||
| @@ -42,6 +42,8 @@ int dvb_usb_generic_rw(struct dvb_usb_device *d, u8 *wbuf, u16 wlen, u8 *rbuf, | |||
| 42 | msleep(delay_ms); | 42 | msleep(delay_ms); |
| 43 | 43 | ||
| 44 | ret = usb_bulk_msg(d->udev,usb_rcvbulkpipe(d->udev, | 44 | ret = usb_bulk_msg(d->udev,usb_rcvbulkpipe(d->udev, |
| 45 | d->props.generic_bulk_ctrl_endpoint_response ? | ||
| 46 | d->props.generic_bulk_ctrl_endpoint_response : | ||
| 45 | d->props.generic_bulk_ctrl_endpoint),rbuf,rlen,&actlen, | 47 | d->props.generic_bulk_ctrl_endpoint),rbuf,rlen,&actlen, |
| 46 | 2000); | 48 | 2000); |
| 47 | 49 | ||
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h index 0143aef19ecd..4a9f676087bf 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb.h | |||
| @@ -198,6 +198,12 @@ struct dvb_usb_adapter_properties { | |||
| 198 | * is non-zero, one can use dvb_usb_generic_rw and dvb_usb_generic_write- | 198 | * is non-zero, one can use dvb_usb_generic_rw and dvb_usb_generic_write- |
| 199 | * helper functions. | 199 | * helper functions. |
| 200 | * | 200 | * |
| 201 | * @generic_bulk_ctrl_endpoint_response: some DVB USB devices use a separate | ||
| 202 | * endpoint for responses to control messages sent with bulk transfers via | ||
| 203 | * the generic_bulk_ctrl_endpoint. When this is non-zero, this will be used | ||
| 204 | * instead of the generic_bulk_ctrl_endpoint when reading usb responses in | ||
| 205 | * the dvb_usb_generic_rw helper function. | ||
| 206 | * | ||
| 201 | * @num_device_descs: number of struct dvb_usb_device_description in @devices | 207 | * @num_device_descs: number of struct dvb_usb_device_description in @devices |
| 202 | * @devices: array of struct dvb_usb_device_description compatibles with these | 208 | * @devices: array of struct dvb_usb_device_description compatibles with these |
| 203 | * properties. | 209 | * properties. |
| @@ -239,6 +245,7 @@ struct dvb_usb_device_properties { | |||
| 239 | struct i2c_algorithm *i2c_algo; | 245 | struct i2c_algorithm *i2c_algo; |
| 240 | 246 | ||
| 241 | int generic_bulk_ctrl_endpoint; | 247 | int generic_bulk_ctrl_endpoint; |
| 248 | int generic_bulk_ctrl_endpoint_response; | ||
| 242 | 249 | ||
| 243 | int num_device_descs; | 250 | int num_device_descs; |
| 244 | struct dvb_usb_device_description devices[12]; | 251 | struct dvb_usb_device_description devices[12]; |
diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c index accc65509b07..e8fb85380672 100644 --- a/drivers/media/dvb/dvb-usb/dw2102.c +++ b/drivers/media/dvb/dvb-usb/dw2102.c | |||
| @@ -73,7 +73,7 @@ | |||
| 73 | "Please see linux/Documentation/dvb/ for more details " \ | 73 | "Please see linux/Documentation/dvb/ for more details " \ |
| 74 | "on firmware-problems." | 74 | "on firmware-problems." |
| 75 | 75 | ||
| 76 | struct dvb_usb_rc_keys_table { | 76 | struct ir_codes_dvb_usb_table_table { |
| 77 | struct dvb_usb_rc_key *rc_keys; | 77 | struct dvb_usb_rc_key *rc_keys; |
| 78 | int rc_keys_size; | 78 | int rc_keys_size; |
| 79 | }; | 79 | }; |
| @@ -948,7 +948,7 @@ static int dw3101_tuner_attach(struct dvb_usb_adapter *adap) | |||
| 948 | return 0; | 948 | return 0; |
| 949 | } | 949 | } |
| 950 | 950 | ||
| 951 | static struct dvb_usb_rc_key dw210x_rc_keys[] = { | 951 | static struct dvb_usb_rc_key ir_codes_dw210x_table[] = { |
| 952 | { 0xf80a, KEY_Q }, /*power*/ | 952 | { 0xf80a, KEY_Q }, /*power*/ |
| 953 | { 0xf80c, KEY_M }, /*mute*/ | 953 | { 0xf80c, KEY_M }, /*mute*/ |
| 954 | { 0xf811, KEY_1 }, | 954 | { 0xf811, KEY_1 }, |
| @@ -982,7 +982,7 @@ static struct dvb_usb_rc_key dw210x_rc_keys[] = { | |||
| 982 | { 0xf81b, KEY_B }, /*recall*/ | 982 | { 0xf81b, KEY_B }, /*recall*/ |
| 983 | }; | 983 | }; |
| 984 | 984 | ||
| 985 | static struct dvb_usb_rc_key tevii_rc_keys[] = { | 985 | static struct dvb_usb_rc_key ir_codes_tevii_table[] = { |
| 986 | { 0xf80a, KEY_POWER }, | 986 | { 0xf80a, KEY_POWER }, |
| 987 | { 0xf80c, KEY_MUTE }, | 987 | { 0xf80c, KEY_MUTE }, |
| 988 | { 0xf811, KEY_1 }, | 988 | { 0xf811, KEY_1 }, |
| @@ -1032,7 +1032,7 @@ static struct dvb_usb_rc_key tevii_rc_keys[] = { | |||
| 1032 | { 0xf858, KEY_SWITCHVIDEOMODE }, | 1032 | { 0xf858, KEY_SWITCHVIDEOMODE }, |
| 1033 | }; | 1033 | }; |
| 1034 | 1034 | ||
| 1035 | static struct dvb_usb_rc_key tbs_rc_keys[] = { | 1035 | static struct dvb_usb_rc_key ir_codes_tbs_table[] = { |
| 1036 | { 0xf884, KEY_POWER }, | 1036 | { 0xf884, KEY_POWER }, |
| 1037 | { 0xf894, KEY_MUTE }, | 1037 | { 0xf894, KEY_MUTE }, |
| 1038 | { 0xf887, KEY_1 }, | 1038 | { 0xf887, KEY_1 }, |
| @@ -1067,10 +1067,10 @@ static struct dvb_usb_rc_key tbs_rc_keys[] = { | |||
| 1067 | { 0xf89b, KEY_MODE } | 1067 | { 0xf89b, KEY_MODE } |
| 1068 | }; | 1068 | }; |
| 1069 | 1069 | ||
| 1070 | static struct dvb_usb_rc_keys_table keys_tables[] = { | 1070 | static struct ir_codes_dvb_usb_table_table keys_tables[] = { |
| 1071 | { dw210x_rc_keys, ARRAY_SIZE(dw210x_rc_keys) }, | 1071 | { ir_codes_dw210x_table, ARRAY_SIZE(ir_codes_dw210x_table) }, |
| 1072 | { tevii_rc_keys, ARRAY_SIZE(tevii_rc_keys) }, | 1072 | { ir_codes_tevii_table, ARRAY_SIZE(ir_codes_tevii_table) }, |
| 1073 | { tbs_rc_keys, ARRAY_SIZE(tbs_rc_keys) }, | 1073 | { ir_codes_tbs_table, ARRAY_SIZE(ir_codes_tbs_table) }, |
| 1074 | }; | 1074 | }; |
| 1075 | 1075 | ||
| 1076 | static int dw2102_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | 1076 | static int dw2102_rc_query(struct dvb_usb_device *d, u32 *event, int *state) |
| @@ -1185,14 +1185,14 @@ static int dw2102_load_firmware(struct usb_device *dev, | |||
| 1185 | /* init registers */ | 1185 | /* init registers */ |
| 1186 | switch (dev->descriptor.idProduct) { | 1186 | switch (dev->descriptor.idProduct) { |
| 1187 | case USB_PID_PROF_1100: | 1187 | case USB_PID_PROF_1100: |
| 1188 | s6x0_properties.rc_key_map = tbs_rc_keys; | 1188 | s6x0_properties.rc_key_map = ir_codes_tbs_table; |
| 1189 | s6x0_properties.rc_key_map_size = | 1189 | s6x0_properties.rc_key_map_size = |
| 1190 | ARRAY_SIZE(tbs_rc_keys); | 1190 | ARRAY_SIZE(ir_codes_tbs_table); |
| 1191 | break; | 1191 | break; |
| 1192 | case USB_PID_TEVII_S650: | 1192 | case USB_PID_TEVII_S650: |
| 1193 | dw2104_properties.rc_key_map = tevii_rc_keys; | 1193 | dw2104_properties.rc_key_map = ir_codes_tevii_table; |
| 1194 | dw2104_properties.rc_key_map_size = | 1194 | dw2104_properties.rc_key_map_size = |
| 1195 | ARRAY_SIZE(tevii_rc_keys); | 1195 | ARRAY_SIZE(ir_codes_tevii_table); |
| 1196 | case USB_PID_DW2104: | 1196 | case USB_PID_DW2104: |
| 1197 | reset = 1; | 1197 | reset = 1; |
| 1198 | dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1, | 1198 | dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1, |
| @@ -1255,8 +1255,8 @@ static struct dvb_usb_device_properties dw2102_properties = { | |||
| 1255 | .no_reconnect = 1, | 1255 | .no_reconnect = 1, |
| 1256 | 1256 | ||
| 1257 | .i2c_algo = &dw2102_serit_i2c_algo, | 1257 | .i2c_algo = &dw2102_serit_i2c_algo, |
| 1258 | .rc_key_map = dw210x_rc_keys, | 1258 | .rc_key_map = ir_codes_dw210x_table, |
| 1259 | .rc_key_map_size = ARRAY_SIZE(dw210x_rc_keys), | 1259 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dw210x_table), |
| 1260 | .rc_interval = 150, | 1260 | .rc_interval = 150, |
| 1261 | .rc_query = dw2102_rc_query, | 1261 | .rc_query = dw2102_rc_query, |
| 1262 | 1262 | ||
| @@ -1306,8 +1306,8 @@ static struct dvb_usb_device_properties dw2104_properties = { | |||
| 1306 | .no_reconnect = 1, | 1306 | .no_reconnect = 1, |
| 1307 | 1307 | ||
| 1308 | .i2c_algo = &dw2104_i2c_algo, | 1308 | .i2c_algo = &dw2104_i2c_algo, |
| 1309 | .rc_key_map = dw210x_rc_keys, | 1309 | .rc_key_map = ir_codes_dw210x_table, |
| 1310 | .rc_key_map_size = ARRAY_SIZE(dw210x_rc_keys), | 1310 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dw210x_table), |
| 1311 | .rc_interval = 150, | 1311 | .rc_interval = 150, |
| 1312 | .rc_query = dw2102_rc_query, | 1312 | .rc_query = dw2102_rc_query, |
| 1313 | 1313 | ||
| @@ -1353,8 +1353,8 @@ static struct dvb_usb_device_properties dw3101_properties = { | |||
| 1353 | .no_reconnect = 1, | 1353 | .no_reconnect = 1, |
| 1354 | 1354 | ||
| 1355 | .i2c_algo = &dw3101_i2c_algo, | 1355 | .i2c_algo = &dw3101_i2c_algo, |
| 1356 | .rc_key_map = dw210x_rc_keys, | 1356 | .rc_key_map = ir_codes_dw210x_table, |
| 1357 | .rc_key_map_size = ARRAY_SIZE(dw210x_rc_keys), | 1357 | .rc_key_map_size = ARRAY_SIZE(ir_codes_dw210x_table), |
| 1358 | .rc_interval = 150, | 1358 | .rc_interval = 150, |
| 1359 | .rc_query = dw2102_rc_query, | 1359 | .rc_query = dw2102_rc_query, |
| 1360 | 1360 | ||
| @@ -1396,8 +1396,8 @@ static struct dvb_usb_device_properties s6x0_properties = { | |||
| 1396 | .no_reconnect = 1, | 1396 | .no_reconnect = 1, |
| 1397 | 1397 | ||
| 1398 | .i2c_algo = &s6x0_i2c_algo, | 1398 | .i2c_algo = &s6x0_i2c_algo, |
| 1399 | .rc_key_map = tevii_rc_keys, | 1399 | .rc_key_map = ir_codes_tevii_table, |
| 1400 | .rc_key_map_size = ARRAY_SIZE(tevii_rc_keys), | 1400 | .rc_key_map_size = ARRAY_SIZE(ir_codes_tevii_table), |
| 1401 | .rc_interval = 150, | 1401 | .rc_interval = 150, |
| 1402 | .rc_query = dw2102_rc_query, | 1402 | .rc_query = dw2102_rc_query, |
| 1403 | 1403 | ||
| @@ -1459,8 +1459,8 @@ static int dw2102_probe(struct usb_interface *intf, | |||
| 1459 | /* fill only different fields */ | 1459 | /* fill only different fields */ |
| 1460 | p7500->firmware = "dvb-usb-p7500.fw"; | 1460 | p7500->firmware = "dvb-usb-p7500.fw"; |
| 1461 | p7500->devices[0] = d7500; | 1461 | p7500->devices[0] = d7500; |
| 1462 | p7500->rc_key_map = tbs_rc_keys; | 1462 | p7500->rc_key_map = ir_codes_tbs_table; |
| 1463 | p7500->rc_key_map_size = ARRAY_SIZE(tbs_rc_keys); | 1463 | p7500->rc_key_map_size = ARRAY_SIZE(ir_codes_tbs_table); |
| 1464 | p7500->adapter->frontend_attach = prof_7500_frontend_attach; | 1464 | p7500->adapter->frontend_attach = prof_7500_frontend_attach; |
| 1465 | 1465 | ||
| 1466 | if (0 == dvb_usb_device_init(intf, &dw2102_properties, | 1466 | if (0 == dvb_usb_device_init(intf, &dw2102_properties, |
diff --git a/drivers/media/dvb/dvb-usb/gp8psk.c b/drivers/media/dvb/dvb-usb/gp8psk.c index afb444db43ad..45106ac49674 100644 --- a/drivers/media/dvb/dvb-usb/gp8psk.c +++ b/drivers/media/dvb/dvb-usb/gp8psk.c | |||
| @@ -105,6 +105,10 @@ static int gp8psk_load_bcm4500fw(struct dvb_usb_device *d) | |||
| 105 | 105 | ||
| 106 | ptr = fw->data; | 106 | ptr = fw->data; |
| 107 | buf = kmalloc(64, GFP_KERNEL | GFP_DMA); | 107 | buf = kmalloc(64, GFP_KERNEL | GFP_DMA); |
| 108 | if (!buf) { | ||
| 109 | ret = -ENOMEM; | ||
| 110 | goto out_rel_fw; | ||
| 111 | } | ||
| 108 | 112 | ||
| 109 | while (ptr[0] != 0xff) { | 113 | while (ptr[0] != 0xff) { |
| 110 | u16 buflen = ptr[0] + 4; | 114 | u16 buflen = ptr[0] + 4; |
diff --git a/drivers/media/dvb/dvb-usb/m920x.c b/drivers/media/dvb/dvb-usb/m920x.c index 737ffa36ac9c..c211fef45fc3 100644 --- a/drivers/media/dvb/dvb-usb/m920x.c +++ b/drivers/media/dvb/dvb-usb/m920x.c | |||
| @@ -589,7 +589,7 @@ static struct m920x_inits pinnacle310e_init[] = { | |||
| 589 | }; | 589 | }; |
| 590 | 590 | ||
| 591 | /* ir keymaps */ | 591 | /* ir keymaps */ |
| 592 | static struct dvb_usb_rc_key megasky_rc_keys [] = { | 592 | static struct dvb_usb_rc_key ir_codes_megasky_table [] = { |
| 593 | { 0x0012, KEY_POWER }, | 593 | { 0x0012, KEY_POWER }, |
| 594 | { 0x001e, KEY_CYCLEWINDOWS }, /* min/max */ | 594 | { 0x001e, KEY_CYCLEWINDOWS }, /* min/max */ |
| 595 | { 0x0002, KEY_CHANNELUP }, | 595 | { 0x0002, KEY_CHANNELUP }, |
| @@ -608,7 +608,7 @@ static struct dvb_usb_rc_key megasky_rc_keys [] = { | |||
| 608 | { 0x000e, KEY_COFFEE }, /* "MTS" */ | 608 | { 0x000e, KEY_COFFEE }, /* "MTS" */ |
| 609 | }; | 609 | }; |
| 610 | 610 | ||
| 611 | static struct dvb_usb_rc_key tvwalkertwin_rc_keys [] = { | 611 | static struct dvb_usb_rc_key ir_codes_tvwalkertwin_table [] = { |
| 612 | { 0x0001, KEY_ZOOM }, /* Full Screen */ | 612 | { 0x0001, KEY_ZOOM }, /* Full Screen */ |
| 613 | { 0x0002, KEY_CAMERA }, /* snapshot */ | 613 | { 0x0002, KEY_CAMERA }, /* snapshot */ |
| 614 | { 0x0003, KEY_MUTE }, | 614 | { 0x0003, KEY_MUTE }, |
| @@ -628,7 +628,7 @@ static struct dvb_usb_rc_key tvwalkertwin_rc_keys [] = { | |||
| 628 | { 0x001e, KEY_VOLUMEUP }, | 628 | { 0x001e, KEY_VOLUMEUP }, |
| 629 | }; | 629 | }; |
| 630 | 630 | ||
| 631 | static struct dvb_usb_rc_key pinnacle310e_rc_keys[] = { | 631 | static struct dvb_usb_rc_key ir_codes_pinnacle310e_table[] = { |
| 632 | { 0x16, KEY_POWER }, | 632 | { 0x16, KEY_POWER }, |
| 633 | { 0x17, KEY_FAVORITES }, | 633 | { 0x17, KEY_FAVORITES }, |
| 634 | { 0x0f, KEY_TEXT }, | 634 | { 0x0f, KEY_TEXT }, |
| @@ -785,8 +785,8 @@ static struct dvb_usb_device_properties megasky_properties = { | |||
| 785 | .download_firmware = m920x_firmware_download, | 785 | .download_firmware = m920x_firmware_download, |
| 786 | 786 | ||
| 787 | .rc_interval = 100, | 787 | .rc_interval = 100, |
| 788 | .rc_key_map = megasky_rc_keys, | 788 | .rc_key_map = ir_codes_megasky_table, |
| 789 | .rc_key_map_size = ARRAY_SIZE(megasky_rc_keys), | 789 | .rc_key_map_size = ARRAY_SIZE(ir_codes_megasky_table), |
| 790 | .rc_query = m920x_rc_query, | 790 | .rc_query = m920x_rc_query, |
| 791 | 791 | ||
| 792 | .size_of_priv = sizeof(struct m920x_state), | 792 | .size_of_priv = sizeof(struct m920x_state), |
| @@ -886,8 +886,8 @@ static struct dvb_usb_device_properties tvwalkertwin_properties = { | |||
| 886 | .download_firmware = m920x_firmware_download, | 886 | .download_firmware = m920x_firmware_download, |
| 887 | 887 | ||
| 888 | .rc_interval = 100, | 888 | .rc_interval = 100, |
| 889 | .rc_key_map = tvwalkertwin_rc_keys, | 889 | .rc_key_map = ir_codes_tvwalkertwin_table, |
| 890 | .rc_key_map_size = ARRAY_SIZE(tvwalkertwin_rc_keys), | 890 | .rc_key_map_size = ARRAY_SIZE(ir_codes_tvwalkertwin_table), |
| 891 | .rc_query = m920x_rc_query, | 891 | .rc_query = m920x_rc_query, |
| 892 | 892 | ||
| 893 | .size_of_priv = sizeof(struct m920x_state), | 893 | .size_of_priv = sizeof(struct m920x_state), |
| @@ -993,8 +993,8 @@ static struct dvb_usb_device_properties pinnacle_pctv310e_properties = { | |||
| 993 | .download_firmware = NULL, | 993 | .download_firmware = NULL, |
| 994 | 994 | ||
| 995 | .rc_interval = 100, | 995 | .rc_interval = 100, |
| 996 | .rc_key_map = pinnacle310e_rc_keys, | 996 | .rc_key_map = ir_codes_pinnacle310e_table, |
| 997 | .rc_key_map_size = ARRAY_SIZE(pinnacle310e_rc_keys), | 997 | .rc_key_map_size = ARRAY_SIZE(ir_codes_pinnacle310e_table), |
| 998 | .rc_query = m920x_rc_query, | 998 | .rc_query = m920x_rc_query, |
| 999 | 999 | ||
| 1000 | .size_of_priv = sizeof(struct m920x_state), | 1000 | .size_of_priv = sizeof(struct m920x_state), |
diff --git a/drivers/media/dvb/dvb-usb/nova-t-usb2.c b/drivers/media/dvb/dvb-usb/nova-t-usb2.c index b41d66ef8325..d195a587cc65 100644 --- a/drivers/media/dvb/dvb-usb/nova-t-usb2.c +++ b/drivers/media/dvb/dvb-usb/nova-t-usb2.c | |||
| @@ -21,7 +21,7 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); | |||
| 21 | #define deb_ee(args...) dprintk(debug,0x02,args) | 21 | #define deb_ee(args...) dprintk(debug,0x02,args) |
| 22 | 22 | ||
| 23 | /* Hauppauge NOVA-T USB2 keys */ | 23 | /* Hauppauge NOVA-T USB2 keys */ |
| 24 | static struct dvb_usb_rc_key haupp_rc_keys [] = { | 24 | static struct dvb_usb_rc_key ir_codes_haupp_table [] = { |
| 25 | { 0x1e00, KEY_0 }, | 25 | { 0x1e00, KEY_0 }, |
| 26 | { 0x1e01, KEY_1 }, | 26 | { 0x1e01, KEY_1 }, |
| 27 | { 0x1e02, KEY_2 }, | 27 | { 0x1e02, KEY_2 }, |
| @@ -91,14 +91,14 @@ static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | |||
| 91 | 91 | ||
| 92 | deb_rc("raw key code 0x%02x, 0x%02x, 0x%02x to c: %02x d: %02x toggle: %d\n",key[1],key[2],key[3],custom,data,toggle); | 92 | deb_rc("raw key code 0x%02x, 0x%02x, 0x%02x to c: %02x d: %02x toggle: %d\n",key[1],key[2],key[3],custom,data,toggle); |
| 93 | 93 | ||
| 94 | for (i = 0; i < ARRAY_SIZE(haupp_rc_keys); i++) { | 94 | for (i = 0; i < ARRAY_SIZE(ir_codes_haupp_table); i++) { |
| 95 | if (rc5_data(&haupp_rc_keys[i]) == data && | 95 | if (rc5_data(&ir_codes_haupp_table[i]) == data && |
| 96 | rc5_custom(&haupp_rc_keys[i]) == custom) { | 96 | rc5_custom(&ir_codes_haupp_table[i]) == custom) { |
| 97 | 97 | ||
| 98 | deb_rc("c: %x, d: %x\n", rc5_data(&haupp_rc_keys[i]), | 98 | deb_rc("c: %x, d: %x\n", rc5_data(&ir_codes_haupp_table[i]), |
| 99 | rc5_custom(&haupp_rc_keys[i])); | 99 | rc5_custom(&ir_codes_haupp_table[i])); |
| 100 | 100 | ||
| 101 | *event = haupp_rc_keys[i].event; | 101 | *event = ir_codes_haupp_table[i].event; |
| 102 | *state = REMOTE_KEY_PRESSED; | 102 | *state = REMOTE_KEY_PRESSED; |
| 103 | if (st->old_toggle == toggle) { | 103 | if (st->old_toggle == toggle) { |
| 104 | if (st->last_repeat_count++ < 2) | 104 | if (st->last_repeat_count++ < 2) |
| @@ -196,8 +196,8 @@ static struct dvb_usb_device_properties nova_t_properties = { | |||
| 196 | .read_mac_address = nova_t_read_mac_address, | 196 | .read_mac_address = nova_t_read_mac_address, |
| 197 | 197 | ||
| 198 | .rc_interval = 100, | 198 | .rc_interval = 100, |
| 199 | .rc_key_map = haupp_rc_keys, | 199 | .rc_key_map = ir_codes_haupp_table, |
| 200 | .rc_key_map_size = ARRAY_SIZE(haupp_rc_keys), | 200 | .rc_key_map_size = ARRAY_SIZE(ir_codes_haupp_table), |
| 201 | .rc_query = nova_t_rc_query, | 201 | .rc_query = nova_t_rc_query, |
| 202 | 202 | ||
| 203 | .i2c_algo = &dibusb_i2c_algo, | 203 | .i2c_algo = &dibusb_i2c_algo, |
diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c index 830557696ae6..dfb81ff1d9a7 100644 --- a/drivers/media/dvb/dvb-usb/opera1.c +++ b/drivers/media/dvb/dvb-usb/opera1.c | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | struct opera1_state { | 35 | struct opera1_state { |
| 36 | u32 last_key_pressed; | 36 | u32 last_key_pressed; |
| 37 | }; | 37 | }; |
| 38 | struct opera_rc_keys { | 38 | struct ir_codes_opera_table { |
| 39 | u32 keycode; | 39 | u32 keycode; |
| 40 | u32 event; | 40 | u32 event; |
| 41 | }; | 41 | }; |
| @@ -331,7 +331,7 @@ static int opera1_pid_filter_control(struct dvb_usb_adapter *adap, int onoff) | |||
| 331 | return 0; | 331 | return 0; |
| 332 | } | 332 | } |
| 333 | 333 | ||
| 334 | static struct dvb_usb_rc_key opera1_rc_keys[] = { | 334 | static struct dvb_usb_rc_key ir_codes_opera1_table[] = { |
| 335 | {0x5fa0, KEY_1}, | 335 | {0x5fa0, KEY_1}, |
| 336 | {0x51af, KEY_2}, | 336 | {0x51af, KEY_2}, |
| 337 | {0x5da2, KEY_3}, | 337 | {0x5da2, KEY_3}, |
| @@ -404,12 +404,12 @@ static int opera1_rc_query(struct dvb_usb_device *dev, u32 * event, int *state) | |||
| 404 | 404 | ||
| 405 | send_key = (send_key & 0xffff) | 0x0100; | 405 | send_key = (send_key & 0xffff) | 0x0100; |
| 406 | 406 | ||
| 407 | for (i = 0; i < ARRAY_SIZE(opera1_rc_keys); i++) { | 407 | for (i = 0; i < ARRAY_SIZE(ir_codes_opera1_table); i++) { |
| 408 | if (rc5_scan(&opera1_rc_keys[i]) == (send_key & 0xffff)) { | 408 | if (rc5_scan(&ir_codes_opera1_table[i]) == (send_key & 0xffff)) { |
| 409 | *state = REMOTE_KEY_PRESSED; | 409 | *state = REMOTE_KEY_PRESSED; |
| 410 | *event = opera1_rc_keys[i].event; | 410 | *event = ir_codes_opera1_table[i].event; |
| 411 | opst->last_key_pressed = | 411 | opst->last_key_pressed = |
| 412 | opera1_rc_keys[i].event; | 412 | ir_codes_opera1_table[i].event; |
| 413 | break; | 413 | break; |
| 414 | } | 414 | } |
| 415 | opst->last_key_pressed = 0; | 415 | opst->last_key_pressed = 0; |
| @@ -498,8 +498,8 @@ static struct dvb_usb_device_properties opera1_properties = { | |||
| 498 | .power_ctrl = opera1_power_ctrl, | 498 | .power_ctrl = opera1_power_ctrl, |
| 499 | .i2c_algo = &opera1_i2c_algo, | 499 | .i2c_algo = &opera1_i2c_algo, |
| 500 | 500 | ||
| 501 | .rc_key_map = opera1_rc_keys, | 501 | .rc_key_map = ir_codes_opera1_table, |
| 502 | .rc_key_map_size = ARRAY_SIZE(opera1_rc_keys), | 502 | .rc_key_map_size = ARRAY_SIZE(ir_codes_opera1_table), |
| 503 | .rc_interval = 200, | 503 | .rc_interval = 200, |
| 504 | .rc_query = opera1_rc_query, | 504 | .rc_query = opera1_rc_query, |
| 505 | .read_mac_address = opera1_read_mac_address, | 505 | .read_mac_address = opera1_read_mac_address, |
diff --git a/drivers/media/dvb/dvb-usb/vp702x.c b/drivers/media/dvb/dvb-usb/vp702x.c index ef4e37d9c5ff..4d332451653b 100644 --- a/drivers/media/dvb/dvb-usb/vp702x.c +++ b/drivers/media/dvb/dvb-usb/vp702x.c | |||
| @@ -174,7 +174,7 @@ static int vp702x_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) | |||
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | /* keys for the enclosed remote control */ | 176 | /* keys for the enclosed remote control */ |
| 177 | static struct dvb_usb_rc_key vp702x_rc_keys[] = { | 177 | static struct dvb_usb_rc_key ir_codes_vp702x_table[] = { |
| 178 | { 0x0001, KEY_1 }, | 178 | { 0x0001, KEY_1 }, |
| 179 | { 0x0002, KEY_2 }, | 179 | { 0x0002, KEY_2 }, |
| 180 | }; | 180 | }; |
| @@ -197,10 +197,10 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | |||
| 197 | return 0; | 197 | return 0; |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | for (i = 0; i < ARRAY_SIZE(vp702x_rc_keys); i++) | 200 | for (i = 0; i < ARRAY_SIZE(ir_codes_vp702x_table); i++) |
| 201 | if (rc5_custom(&vp702x_rc_keys[i]) == key[1]) { | 201 | if (rc5_custom(&ir_codes_vp702x_table[i]) == key[1]) { |
| 202 | *state = REMOTE_KEY_PRESSED; | 202 | *state = REMOTE_KEY_PRESSED; |
| 203 | *event = vp702x_rc_keys[i].event; | 203 | *event = ir_codes_vp702x_table[i].event; |
| 204 | break; | 204 | break; |
| 205 | } | 205 | } |
| 206 | return 0; | 206 | return 0; |
| @@ -283,8 +283,8 @@ static struct dvb_usb_device_properties vp702x_properties = { | |||
| 283 | }, | 283 | }, |
| 284 | .read_mac_address = vp702x_read_mac_addr, | 284 | .read_mac_address = vp702x_read_mac_addr, |
| 285 | 285 | ||
| 286 | .rc_key_map = vp702x_rc_keys, | 286 | .rc_key_map = ir_codes_vp702x_table, |
| 287 | .rc_key_map_size = ARRAY_SIZE(vp702x_rc_keys), | 287 | .rc_key_map_size = ARRAY_SIZE(ir_codes_vp702x_table), |
| 288 | .rc_interval = 400, | 288 | .rc_interval = 400, |
| 289 | .rc_query = vp702x_rc_query, | 289 | .rc_query = vp702x_rc_query, |
| 290 | 290 | ||
diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c index a59faa27912a..036893fa4480 100644 --- a/drivers/media/dvb/dvb-usb/vp7045.c +++ b/drivers/media/dvb/dvb-usb/vp7045.c | |||
| @@ -99,7 +99,7 @@ static int vp7045_power_ctrl(struct dvb_usb_device *d, int onoff) | |||
| 99 | 99 | ||
| 100 | /* The keymapping struct. Somehow this should be loaded to the driver, but | 100 | /* The keymapping struct. Somehow this should be loaded to the driver, but |
| 101 | * currently it is hardcoded. */ | 101 | * currently it is hardcoded. */ |
| 102 | static struct dvb_usb_rc_key vp7045_rc_keys[] = { | 102 | static struct dvb_usb_rc_key ir_codes_vp7045_table[] = { |
| 103 | { 0x0016, KEY_POWER }, | 103 | { 0x0016, KEY_POWER }, |
| 104 | { 0x0010, KEY_MUTE }, | 104 | { 0x0010, KEY_MUTE }, |
| 105 | { 0x0003, KEY_1 }, | 105 | { 0x0003, KEY_1 }, |
| @@ -165,10 +165,10 @@ static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | |||
| 165 | return 0; | 165 | return 0; |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | for (i = 0; i < ARRAY_SIZE(vp7045_rc_keys); i++) | 168 | for (i = 0; i < ARRAY_SIZE(ir_codes_vp7045_table); i++) |
| 169 | if (rc5_data(&vp7045_rc_keys[i]) == key) { | 169 | if (rc5_data(&ir_codes_vp7045_table[i]) == key) { |
| 170 | *state = REMOTE_KEY_PRESSED; | 170 | *state = REMOTE_KEY_PRESSED; |
| 171 | *event = vp7045_rc_keys[i].event; | 171 | *event = ir_codes_vp7045_table[i].event; |
| 172 | break; | 172 | break; |
| 173 | } | 173 | } |
| 174 | return 0; | 174 | return 0; |
| @@ -260,8 +260,8 @@ static struct dvb_usb_device_properties vp7045_properties = { | |||
| 260 | .read_mac_address = vp7045_read_mac_addr, | 260 | .read_mac_address = vp7045_read_mac_addr, |
| 261 | 261 | ||
| 262 | .rc_interval = 400, | 262 | .rc_interval = 400, |
| 263 | .rc_key_map = vp7045_rc_keys, | 263 | .rc_key_map = ir_codes_vp7045_table, |
| 264 | .rc_key_map_size = ARRAY_SIZE(vp7045_rc_keys), | 264 | .rc_key_map_size = ARRAY_SIZE(ir_codes_vp7045_table), |
| 265 | .rc_query = vp7045_rc_query, | 265 | .rc_query = vp7045_rc_query, |
| 266 | 266 | ||
| 267 | .num_device_descs = 2, | 267 | .num_device_descs = 2, |
