aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-08-29 14:19:31 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:19:48 -0400
commit2e3658836efad06662968bd6373c72df06c4b2f1 (patch)
tree50748b6a7a9cbcb2e0a7d44a59c65783a8fe6fa7
parent715a223323c8c8bcbe7739e20f6c619f7343b595 (diff)
V4L/DVB (12598): dvb-usb: store rc5 custom and data at the same field
In order to be closer to V4L IR implementation, it is needed to replace u8 custom, data to: u16 scan This allows using non-rc5 mappings, like the 8 bit keycodes used on older protocols. It will also allow future implementations of rc6 keystrokes when needed. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/dvb-usb/a800.c70
-rw-r--r--drivers/media/dvb/dvb-usb/af9005-remote.c76
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c4
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.h460
-rw-r--r--drivers/media/dvb/dvb-usb/anysee.c92
-rw-r--r--drivers/media/dvb/dvb-usb/cinergyT2-core.c74
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c244
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c370
-rw-r--r--drivers/media/dvb/dvb-usb/dibusb-common.c244
-rw-r--r--drivers/media/dvb/dvb-usb/digitv.c114
-rw-r--r--drivers/media/dvb/dvb-usb/dtt200u.c36
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-remote.c4
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb.h17
-rw-r--r--drivers/media/dvb/dvb-usb/dw2102.c222
-rw-r--r--drivers/media/dvb/dvb-usb/m920x.c68
-rw-r--r--drivers/media/dvb/dvb-usb/nova-t-usb2.c97
-rw-r--r--drivers/media/dvb/dvb-usb/opera1.c55
-rw-r--r--drivers/media/dvb/dvb-usb/vp702x.c6
-rw-r--r--drivers/media/dvb/dvb-usb/vp7045.c102
19 files changed, 1186 insertions, 1169 deletions
diff --git a/drivers/media/dvb/dvb-usb/a800.c b/drivers/media/dvb/dvb-usb/a800.c
index dc8c8784caa8..6247239982e9 100644
--- a/drivers/media/dvb/dvb-usb/a800.c
+++ b/drivers/media/dvb/dvb-usb/a800.c
@@ -38,41 +38,41 @@ static int a800_identify_state(struct usb_device *udev, struct dvb_usb_device_pr
38} 38}
39 39
40static struct dvb_usb_rc_key a800_rc_keys[] = { 40static struct dvb_usb_rc_key a800_rc_keys[] = {
41 { 0x02, 0x01, KEY_PROG1 }, /* SOURCE */ 41 { 0x0201, KEY_PROG1 }, /* SOURCE */
42 { 0x02, 0x00, KEY_POWER }, /* POWER */ 42 { 0x0200, KEY_POWER }, /* POWER */
43 { 0x02, 0x05, KEY_1 }, /* 1 */ 43 { 0x0205, KEY_1 }, /* 1 */
44 { 0x02, 0x06, KEY_2 }, /* 2 */ 44 { 0x0206, KEY_2 }, /* 2 */
45 { 0x02, 0x07, KEY_3 }, /* 3 */ 45 { 0x0207, KEY_3 }, /* 3 */
46 { 0x02, 0x09, KEY_4 }, /* 4 */ 46 { 0x0209, KEY_4 }, /* 4 */
47 { 0x02, 0x0a, KEY_5 }, /* 5 */ 47 { 0x020a, KEY_5 }, /* 5 */
48 { 0x02, 0x0b, KEY_6 }, /* 6 */ 48 { 0x020b, KEY_6 }, /* 6 */
49 { 0x02, 0x0d, KEY_7 }, /* 7 */ 49 { 0x020d, KEY_7 }, /* 7 */
50 { 0x02, 0x0e, KEY_8 }, /* 8 */ 50 { 0x020e, KEY_8 }, /* 8 */
51 { 0x02, 0x0f, KEY_9 }, /* 9 */ 51 { 0x020f, KEY_9 }, /* 9 */
52 { 0x02, 0x12, KEY_LEFT }, /* L / DISPLAY */ 52 { 0x0212, KEY_LEFT }, /* L / DISPLAY */
53 { 0x02, 0x11, KEY_0 }, /* 0 */ 53 { 0x0211, KEY_0 }, /* 0 */
54 { 0x02, 0x13, KEY_RIGHT }, /* R / CH RTN */ 54 { 0x0213, KEY_RIGHT }, /* R / CH RTN */
55 { 0x02, 0x17, KEY_PROG2 }, /* SNAP SHOT */ 55 { 0x0217, KEY_PROG2 }, /* SNAP SHOT */
56 { 0x02, 0x10, KEY_PROG3 }, /* 16-CH PREV */ 56 { 0x0210, KEY_PROG3 }, /* 16-CH PREV */
57 { 0x02, 0x1e, KEY_VOLUMEDOWN }, /* VOL DOWN */ 57 { 0x021e, KEY_VOLUMEDOWN }, /* VOL DOWN */
58 { 0x02, 0x0c, KEY_ZOOM }, /* FULL SCREEN */ 58 { 0x020c, KEY_ZOOM }, /* FULL SCREEN */
59 { 0x02, 0x1f, KEY_VOLUMEUP }, /* VOL UP */ 59 { 0x021f, KEY_VOLUMEUP }, /* VOL UP */
60 { 0x02, 0x14, KEY_MUTE }, /* MUTE */ 60 { 0x0214, KEY_MUTE }, /* MUTE */
61 { 0x02, 0x08, KEY_AUDIO }, /* AUDIO */ 61 { 0x0208, KEY_AUDIO }, /* AUDIO */
62 { 0x02, 0x19, KEY_RECORD }, /* RECORD */ 62 { 0x0219, KEY_RECORD }, /* RECORD */
63 { 0x02, 0x18, KEY_PLAY }, /* PLAY */ 63 { 0x0218, KEY_PLAY }, /* PLAY */
64 { 0x02, 0x1b, KEY_STOP }, /* STOP */ 64 { 0x021b, KEY_STOP }, /* STOP */
65 { 0x02, 0x1a, KEY_PLAYPAUSE }, /* TIMESHIFT / PAUSE */ 65 { 0x021a, KEY_PLAYPAUSE }, /* TIMESHIFT / PAUSE */
66 { 0x02, 0x1d, KEY_BACK }, /* << / RED */ 66 { 0x021d, KEY_BACK }, /* << / RED */
67 { 0x02, 0x1c, KEY_FORWARD }, /* >> / YELLOW */ 67 { 0x021c, KEY_FORWARD }, /* >> / YELLOW */
68 { 0x02, 0x03, KEY_TEXT }, /* TELETEXT */ 68 { 0x0203, KEY_TEXT }, /* TELETEXT */
69 { 0x02, 0x04, KEY_EPG }, /* EPG */ 69 { 0x0204, KEY_EPG }, /* EPG */
70 { 0x02, 0x15, KEY_MENU }, /* MENU */ 70 { 0x0215, KEY_MENU }, /* MENU */
71 71
72 { 0x03, 0x03, KEY_CHANNELUP }, /* CH UP */ 72 { 0x0303, KEY_CHANNELUP }, /* CH UP */
73 { 0x03, 0x02, KEY_CHANNELDOWN }, /* CH DOWN */ 73 { 0x0302, KEY_CHANNELDOWN }, /* CH DOWN */
74 { 0x03, 0x01, KEY_FIRST }, /* |<< / GREEN */ 74 { 0x0301, KEY_FIRST }, /* |<< / GREEN */
75 { 0x03, 0x00, KEY_LAST }, /* >>| / BLUE */ 75 { 0x0300, KEY_LAST }, /* >>| / BLUE */
76 76
77}; 77};
78 78
diff --git a/drivers/media/dvb/dvb-usb/af9005-remote.c b/drivers/media/dvb/dvb-usb/af9005-remote.c
index 7c596f926764..f4379c650a19 100644
--- a/drivers/media/dvb/dvb-usb/af9005-remote.c
+++ b/drivers/media/dvb/dvb-usb/af9005-remote.c
@@ -35,43 +35,43 @@ MODULE_PARM_DESC(debug,
35 35
36struct dvb_usb_rc_key af9005_rc_keys[] = { 36struct dvb_usb_rc_key af9005_rc_keys[] = {
37 37
38 {0x01, 0xb7, KEY_POWER}, 38 {0x01b7, KEY_POWER},
39 {0x01, 0xa7, KEY_VOLUMEUP}, 39 {0x01a7, KEY_VOLUMEUP},
40 {0x01, 0x87, KEY_CHANNELUP}, 40 {0x0187, KEY_CHANNELUP},
41 {0x01, 0x7f, KEY_MUTE}, 41 {0x017f, KEY_MUTE},
42 {0x01, 0xbf, KEY_VOLUMEDOWN}, 42 {0x01bf, KEY_VOLUMEDOWN},
43 {0x01, 0x3f, KEY_CHANNELDOWN}, 43 {0x013f, KEY_CHANNELDOWN},
44 {0x01, 0xdf, KEY_1}, 44 {0x01df, KEY_1},
45 {0x01, 0x5f, KEY_2}, 45 {0x015f, KEY_2},
46 {0x01, 0x9f, KEY_3}, 46 {0x019f, KEY_3},
47 {0x01, 0x1f, KEY_4}, 47 {0x011f, KEY_4},
48 {0x01, 0xef, KEY_5}, 48 {0x01ef, KEY_5},
49 {0x01, 0x6f, KEY_6}, 49 {0x016f, KEY_6},
50 {0x01, 0xaf, KEY_7}, 50 {0x01af, KEY_7},
51 {0x01, 0x27, KEY_8}, 51 {0x0127, KEY_8},
52 {0x01, 0x07, KEY_9}, 52 {0x0107, KEY_9},
53 {0x01, 0xcf, KEY_ZOOM}, 53 {0x01cf, KEY_ZOOM},
54 {0x01, 0x4f, KEY_0}, 54 {0x014f, KEY_0},
55 {0x01, 0x8f, KEY_GOTO}, /* marked jump on the remote */ 55 {0x018f, KEY_GOTO}, /* marked jump on the remote */
56 56
57 {0x00, 0xbd, KEY_POWER}, 57 {0x00bd, KEY_POWER},
58 {0x00, 0x7d, KEY_VOLUMEUP}, 58 {0x007d, KEY_VOLUMEUP},
59 {0x00, 0xfd, KEY_CHANNELUP}, 59 {0x00fd, KEY_CHANNELUP},
60 {0x00, 0x9d, KEY_MUTE}, 60 {0x009d, KEY_MUTE},
61 {0x00, 0x5d, KEY_VOLUMEDOWN}, 61 {0x005d, KEY_VOLUMEDOWN},
62 {0x00, 0xdd, KEY_CHANNELDOWN}, 62 {0x00dd, KEY_CHANNELDOWN},
63 {0x00, 0xad, KEY_1}, 63 {0x00ad, KEY_1},
64 {0x00, 0x6d, KEY_2}, 64 {0x006d, KEY_2},
65 {0x00, 0xed, KEY_3}, 65 {0x00ed, KEY_3},
66 {0x00, 0x8d, KEY_4}, 66 {0x008d, KEY_4},
67 {0x00, 0x4d, KEY_5}, 67 {0x004d, KEY_5},
68 {0x00, 0xcd, KEY_6}, 68 {0x00cd, KEY_6},
69 {0x00, 0xb5, KEY_7}, 69 {0x00b5, KEY_7},
70 {0x00, 0x75, KEY_8}, 70 {0x0075, KEY_8},
71 {0x00, 0xf5, KEY_9}, 71 {0x00f5, KEY_9},
72 {0x00, 0x95, KEY_ZOOM}, 72 {0x0095, KEY_ZOOM},
73 {0x00, 0x55, KEY_0}, 73 {0x0055, KEY_0},
74 {0x00, 0xd5, KEY_GOTO}, /* marked jump on the remote */ 74 {0x00d5, KEY_GOTO}, /* marked jump on the remote */
75}; 75};
76 76
77int af9005_rc_keys_size = ARRAY_SIZE(af9005_rc_keys); 77int af9005_rc_keys_size = ARRAY_SIZE(af9005_rc_keys);
@@ -131,8 +131,8 @@ int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, u32 * event,
131 return 0; 131 return 0;
132 } 132 }
133 for (i = 0; i < af9005_rc_keys_size; i++) { 133 for (i = 0; i < af9005_rc_keys_size; i++) {
134 if (af9005_rc_keys[i].custom == cust 134 if (rc5_custom(&af9005_rc_keys[i]) == cust
135 && af9005_rc_keys[i].data == dat) { 135 && rc5_data(&af9005_rc_keys[i]) == dat) {
136 *event = af9005_rc_keys[i].event; 136 *event = af9005_rc_keys[i].event;
137 *state = REMOTE_KEY_PRESSED; 137 *state = REMOTE_KEY_PRESSED;
138 deb_decode 138 deb_decode
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index 7e571adae458..99cdd0d101ca 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -1043,8 +1043,8 @@ static int af9015_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
1043 *state = REMOTE_NO_KEY_PRESSED; 1043 *state = REMOTE_NO_KEY_PRESSED;
1044 1044
1045 for (i = 0; i < d->props.rc_key_map_size; i++) { 1045 for (i = 0; i < d->props.rc_key_map_size; i++) {
1046 if (!buf[1] && keymap[i].custom == buf[0] && 1046 if (!buf[1] && rc5_custom(&keymap[i]) == buf[0] &&
1047 keymap[i].data == buf[2]) { 1047 rc5_data(&keymap[i]) == buf[2]) {
1048 *event = keymap[i].event; 1048 *event = keymap[i].event;
1049 *state = REMOTE_KEY_PRESSED; 1049 *state = REMOTE_KEY_PRESSED;
1050 break; 1050 break;
diff --git a/drivers/media/dvb/dvb-usb/af9015.h b/drivers/media/dvb/dvb-usb/af9015.h
index 8d81a17c116d..c41f30e4a1b8 100644
--- a/drivers/media/dvb/dvb-usb/af9015.h
+++ b/drivers/media/dvb/dvb-usb/af9015.h
@@ -121,21 +121,21 @@ enum af9015_remote {
121 121
122/* Leadtek WinFast DTV Dongle Gold */ 122/* Leadtek WinFast DTV Dongle Gold */
123static struct dvb_usb_rc_key af9015_rc_keys_leadtek[] = { 123static struct dvb_usb_rc_key af9015_rc_keys_leadtek[] = {
124 { 0x00, 0x1e, KEY_1 }, 124 { 0x001e, KEY_1 },
125 { 0x00, 0x1f, KEY_2 }, 125 { 0x001f, KEY_2 },
126 { 0x00, 0x20, KEY_3 }, 126 { 0x0020, KEY_3 },
127 { 0x00, 0x21, KEY_4 }, 127 { 0x0021, KEY_4 },
128 { 0x00, 0x22, KEY_5 }, 128 { 0x0022, KEY_5 },
129 { 0x00, 0x23, KEY_6 }, 129 { 0x0023, KEY_6 },
130 { 0x00, 0x24, KEY_7 }, 130 { 0x0024, KEY_7 },
131 { 0x00, 0x25, KEY_8 }, 131 { 0x0025, KEY_8 },
132 { 0x00, 0x26, KEY_9 }, 132 { 0x0026, KEY_9 },
133 { 0x00, 0x27, KEY_0 }, 133 { 0x0027, KEY_0 },
134 { 0x00, 0x28, KEY_ENTER }, 134 { 0x0028, KEY_ENTER },
135 { 0x00, 0x4f, KEY_VOLUMEUP }, 135 { 0x004f, KEY_VOLUMEUP },
136 { 0x00, 0x50, KEY_VOLUMEDOWN }, 136 { 0x0050, KEY_VOLUMEDOWN },
137 { 0x00, 0x51, KEY_CHANNELDOWN }, 137 { 0x0051, KEY_CHANNELDOWN },
138 { 0x00, 0x52, KEY_CHANNELUP }, 138 { 0x0052, KEY_CHANNELUP },
139}; 139};
140 140
141static u8 af9015_ir_table_leadtek[] = { 141static u8 af9015_ir_table_leadtek[] = {
@@ -193,60 +193,60 @@ static u8 af9015_ir_table_leadtek[] = {
193 193
194/* TwinHan AzureWave AD-TU700(704J) */ 194/* TwinHan AzureWave AD-TU700(704J) */
195static struct dvb_usb_rc_key af9015_rc_keys_twinhan[] = { 195static struct dvb_usb_rc_key af9015_rc_keys_twinhan[] = {
196 { 0x05, 0x3f, KEY_POWER }, 196 { 0x053f, KEY_POWER },
197 { 0x00, 0x19, KEY_FAVORITES }, /* Favorite List */ 197 { 0x0019, KEY_FAVORITES }, /* Favorite List */
198 { 0x00, 0x04, KEY_TEXT }, /* Teletext */ 198 { 0x0004, KEY_TEXT }, /* Teletext */
199 { 0x00, 0x0e, KEY_POWER }, 199 { 0x000e, KEY_POWER },
200 { 0x00, 0x0e, KEY_INFO }, /* Preview */ 200 { 0x000e, KEY_INFO }, /* Preview */
201 { 0x00, 0x08, KEY_EPG }, /* Info/EPG */ 201 { 0x0008, KEY_EPG }, /* Info/EPG */
202 { 0x00, 0x0f, KEY_LIST }, /* Record List */ 202 { 0x000f, KEY_LIST }, /* Record List */
203 { 0x00, 0x1e, KEY_1 }, 203 { 0x001e, KEY_1 },
204 { 0x00, 0x1f, KEY_2 }, 204 { 0x001f, KEY_2 },
205 { 0x00, 0x20, KEY_3 }, 205 { 0x0020, KEY_3 },
206 { 0x00, 0x21, KEY_4 }, 206 { 0x0021, KEY_4 },
207 { 0x00, 0x22, KEY_5 }, 207 { 0x0022, KEY_5 },
208 { 0x00, 0x23, KEY_6 }, 208 { 0x0023, KEY_6 },
209 { 0x00, 0x24, KEY_7 }, 209 { 0x0024, KEY_7 },
210 { 0x00, 0x25, KEY_8 }, 210 { 0x0025, KEY_8 },
211 { 0x00, 0x26, KEY_9 }, 211 { 0x0026, KEY_9 },
212 { 0x00, 0x27, KEY_0 }, 212 { 0x0027, KEY_0 },
213 { 0x00, 0x29, KEY_CANCEL }, /* Cancel */ 213 { 0x0029, KEY_CANCEL }, /* Cancel */
214 { 0x00, 0x4c, KEY_CLEAR }, /* Clear */ 214 { 0x004c, KEY_CLEAR }, /* Clear */
215 { 0x00, 0x2a, KEY_BACK }, /* Back */ 215 { 0x002a, KEY_BACK }, /* Back */
216 { 0x00, 0x2b, KEY_TAB }, /* Tab */ 216 { 0x002b, KEY_TAB }, /* Tab */
217 { 0x00, 0x52, KEY_UP }, /* up arrow */ 217 { 0x0052, KEY_UP }, /* up arrow */
218 { 0x00, 0x51, KEY_DOWN }, /* down arrow */ 218 { 0x0051, KEY_DOWN }, /* down arrow */
219 { 0x00, 0x4f, KEY_RIGHT }, /* right arrow */ 219 { 0x004f, KEY_RIGHT }, /* right arrow */
220 { 0x00, 0x50, KEY_LEFT }, /* left arrow */ 220 { 0x0050, KEY_LEFT }, /* left arrow */
221 { 0x00, 0x28, KEY_ENTER }, /* Enter / ok */ 221 { 0x0028, KEY_ENTER }, /* Enter / ok */
222 { 0x02, 0x52, KEY_VOLUMEUP }, 222 { 0x0252, KEY_VOLUMEUP },
223 { 0x02, 0x51, KEY_VOLUMEDOWN }, 223 { 0x0251, KEY_VOLUMEDOWN },
224 { 0x00, 0x4e, KEY_CHANNELDOWN }, 224 { 0x004e, KEY_CHANNELDOWN },
225 { 0x00, 0x4b, KEY_CHANNELUP }, 225 { 0x004b, KEY_CHANNELUP },
226 { 0x00, 0x4a, KEY_RECORD }, 226 { 0x004a, KEY_RECORD },
227 { 0x01, 0x11, KEY_PLAY }, 227 { 0x0111, KEY_PLAY },
228 { 0x00, 0x17, KEY_PAUSE }, 228 { 0x0017, KEY_PAUSE },
229 { 0x00, 0x0c, KEY_REWIND }, /* FR << */ 229 { 0x000c, KEY_REWIND }, /* FR << */
230 { 0x00, 0x11, KEY_FASTFORWARD }, /* FF >> */ 230 { 0x0011, KEY_FASTFORWARD }, /* FF >> */
231 { 0x01, 0x15, KEY_PREVIOUS }, /* Replay */ 231 { 0x0115, KEY_PREVIOUS }, /* Replay */
232 { 0x01, 0x0e, KEY_NEXT }, /* Skip */ 232 { 0x010e, KEY_NEXT }, /* Skip */
233 { 0x00, 0x13, KEY_CAMERA }, /* Capture */ 233 { 0x0013, KEY_CAMERA }, /* Capture */
234 { 0x01, 0x0f, KEY_LANGUAGE }, /* SAP */ 234 { 0x010f, KEY_LANGUAGE }, /* SAP */
235 { 0x01, 0x13, KEY_TV2 }, /* PIP */ 235 { 0x0113, KEY_TV2 }, /* PIP */
236 { 0x00, 0x1d, KEY_ZOOM }, /* Full Screen */ 236 { 0x001d, KEY_ZOOM }, /* Full Screen */
237 { 0x01, 0x17, KEY_SUBTITLE }, /* Subtitle / CC */ 237 { 0x0117, KEY_SUBTITLE }, /* Subtitle / CC */
238 { 0x00, 0x10, KEY_MUTE }, 238 { 0x0010, KEY_MUTE },
239 { 0x01, 0x19, KEY_AUDIO }, /* L/R */ /* TODO better event */ 239 { 0x0119, KEY_AUDIO }, /* L/R */ /* TODO better event */
240 { 0x01, 0x16, KEY_SLEEP }, /* Hibernate */ 240 { 0x0116, KEY_SLEEP }, /* Hibernate */
241 { 0x01, 0x16, KEY_SWITCHVIDEOMODE }, 241 { 0x0116, KEY_SWITCHVIDEOMODE },
242 /* A/V */ /* TODO does not work */ 242 /* A/V */ /* TODO does not work */
243 { 0x00, 0x06, KEY_AGAIN }, /* Recall */ 243 { 0x0006, KEY_AGAIN }, /* Recall */
244 { 0x01, 0x16, KEY_KPPLUS }, /* Zoom+ */ /* TODO does not work */ 244 { 0x0116, KEY_KPPLUS }, /* Zoom+ */ /* TODO does not work */
245 { 0x01, 0x16, KEY_KPMINUS }, /* Zoom- */ /* TODO does not work */ 245 { 0x0116, KEY_KPMINUS }, /* Zoom- */ /* TODO does not work */
246 { 0x02, 0x15, KEY_RED }, 246 { 0x0215, KEY_RED },
247 { 0x02, 0x0a, KEY_GREEN }, 247 { 0x020a, KEY_GREEN },
248 { 0x02, 0x1c, KEY_YELLOW }, 248 { 0x021c, KEY_YELLOW },
249 { 0x02, 0x05, KEY_BLUE }, 249 { 0x0205, KEY_BLUE },
250}; 250};
251 251
252static u8 af9015_ir_table_twinhan[] = { 252static u8 af9015_ir_table_twinhan[] = {
@@ -304,24 +304,24 @@ static u8 af9015_ir_table_twinhan[] = {
304 304
305/* A-Link DTU(m) */ 305/* A-Link DTU(m) */
306static struct dvb_usb_rc_key af9015_rc_keys_a_link[] = { 306static struct dvb_usb_rc_key af9015_rc_keys_a_link[] = {
307 { 0x00, 0x1e, KEY_1 }, 307 { 0x001e, KEY_1 },
308 { 0x00, 0x1f, KEY_2 }, 308 { 0x001f, KEY_2 },
309 { 0x00, 0x20, KEY_3 }, 309 { 0x0020, KEY_3 },
310 { 0x00, 0x21, KEY_4 }, 310 { 0x0021, KEY_4 },
311 { 0x00, 0x22, KEY_5 }, 311 { 0x0022, KEY_5 },
312 { 0x00, 0x23, KEY_6 }, 312 { 0x0023, KEY_6 },
313 { 0x00, 0x24, KEY_7 }, 313 { 0x0024, KEY_7 },
314 { 0x00, 0x25, KEY_8 }, 314 { 0x0025, KEY_8 },
315 { 0x00, 0x26, KEY_9 }, 315 { 0x0026, KEY_9 },
316 { 0x00, 0x27, KEY_0 }, 316 { 0x0027, KEY_0 },
317 { 0x00, 0x2e, KEY_CHANNELUP }, 317 { 0x002e, KEY_CHANNELUP },
318 { 0x00, 0x2d, KEY_CHANNELDOWN }, 318 { 0x002d, KEY_CHANNELDOWN },
319 { 0x04, 0x28, KEY_ZOOM }, 319 { 0x0428, KEY_ZOOM },
320 { 0x00, 0x41, KEY_MUTE }, 320 { 0x0041, KEY_MUTE },
321 { 0x00, 0x42, KEY_VOLUMEDOWN }, 321 { 0x0042, KEY_VOLUMEDOWN },
322 { 0x00, 0x43, KEY_VOLUMEUP }, 322 { 0x0043, KEY_VOLUMEUP },
323 { 0x00, 0x44, KEY_GOTO }, /* jump */ 323 { 0x0044, KEY_GOTO }, /* jump */
324 { 0x05, 0x45, KEY_POWER }, 324 { 0x0545, KEY_POWER },
325}; 325};
326 326
327static u8 af9015_ir_table_a_link[] = { 327static u8 af9015_ir_table_a_link[] = {
@@ -347,24 +347,24 @@ static u8 af9015_ir_table_a_link[] = {
347 347
348/* MSI DIGIVOX mini II V3.0 */ 348/* MSI DIGIVOX mini II V3.0 */
349static struct dvb_usb_rc_key af9015_rc_keys_msi[] = { 349static struct dvb_usb_rc_key af9015_rc_keys_msi[] = {
350 { 0x00, 0x1e, KEY_1 }, 350 { 0x001e, KEY_1 },
351 { 0x00, 0x1f, KEY_2 }, 351 { 0x001f, KEY_2 },
352 { 0x00, 0x20, KEY_3 }, 352 { 0x0020, KEY_3 },
353 { 0x00, 0x21, KEY_4 }, 353 { 0x0021, KEY_4 },
354 { 0x00, 0x22, KEY_5 }, 354 { 0x0022, KEY_5 },
355 { 0x00, 0x23, KEY_6 }, 355 { 0x0023, KEY_6 },
356 { 0x00, 0x24, KEY_7 }, 356 { 0x0024, KEY_7 },
357 { 0x00, 0x25, KEY_8 }, 357 { 0x0025, KEY_8 },
358 { 0x00, 0x26, KEY_9 }, 358 { 0x0026, KEY_9 },
359 { 0x00, 0x27, KEY_0 }, 359 { 0x0027, KEY_0 },
360 { 0x03, 0x0f, KEY_CHANNELUP }, 360 { 0x030f, KEY_CHANNELUP },
361 { 0x03, 0x0e, KEY_CHANNELDOWN }, 361 { 0x030e, KEY_CHANNELDOWN },
362 { 0x00, 0x42, KEY_VOLUMEDOWN }, 362 { 0x0042, KEY_VOLUMEDOWN },
363 { 0x00, 0x43, KEY_VOLUMEUP }, 363 { 0x0043, KEY_VOLUMEUP },
364 { 0x05, 0x45, KEY_POWER }, 364 { 0x0545, KEY_POWER },
365 { 0x00, 0x52, KEY_UP }, /* up */ 365 { 0x0052, KEY_UP }, /* up */
366 { 0x00, 0x51, KEY_DOWN }, /* down */ 366 { 0x0051, KEY_DOWN }, /* down */
367 { 0x00, 0x28, KEY_ENTER }, 367 { 0x0028, KEY_ENTER },
368}; 368};
369 369
370static u8 af9015_ir_table_msi[] = { 370static u8 af9015_ir_table_msi[] = {
@@ -390,42 +390,42 @@ static u8 af9015_ir_table_msi[] = {
390 390
391/* MYGICTV U718 */ 391/* MYGICTV U718 */
392static struct dvb_usb_rc_key af9015_rc_keys_mygictv[] = { 392static struct dvb_usb_rc_key af9015_rc_keys_mygictv[] = {
393 { 0x00, 0x3d, KEY_SWITCHVIDEOMODE }, 393 { 0x003d, KEY_SWITCHVIDEOMODE },
394 /* TV / AV */ 394 /* TV / AV */
395 { 0x05, 0x45, KEY_POWER }, 395 { 0x0545, KEY_POWER },
396 { 0x00, 0x1e, KEY_1 }, 396 { 0x001e, KEY_1 },
397 { 0x00, 0x1f, KEY_2 }, 397 { 0x001f, KEY_2 },
398 { 0x00, 0x20, KEY_3 }, 398 { 0x0020, KEY_3 },
399 { 0x00, 0x21, KEY_4 }, 399 { 0x0021, KEY_4 },
400 { 0x00, 0x22, KEY_5 }, 400 { 0x0022, KEY_5 },
401 { 0x00, 0x23, KEY_6 }, 401 { 0x0023, KEY_6 },
402 { 0x00, 0x24, KEY_7 }, 402 { 0x0024, KEY_7 },
403 { 0x00, 0x25, KEY_8 }, 403 { 0x0025, KEY_8 },
404 { 0x00, 0x26, KEY_9 }, 404 { 0x0026, KEY_9 },
405 { 0x00, 0x27, KEY_0 }, 405 { 0x0027, KEY_0 },
406 { 0x00, 0x41, KEY_MUTE }, 406 { 0x0041, KEY_MUTE },
407 { 0x00, 0x2a, KEY_ESC }, /* Esc */ 407 { 0x002a, KEY_ESC }, /* Esc */
408 { 0x00, 0x2e, KEY_CHANNELUP }, 408 { 0x002e, KEY_CHANNELUP },
409 { 0x00, 0x2d, KEY_CHANNELDOWN }, 409 { 0x002d, KEY_CHANNELDOWN },
410 { 0x00, 0x42, KEY_VOLUMEDOWN }, 410 { 0x0042, KEY_VOLUMEDOWN },
411 { 0x00, 0x43, KEY_VOLUMEUP }, 411 { 0x0043, KEY_VOLUMEUP },
412 { 0x00, 0x52, KEY_UP }, /* up arrow */ 412 { 0x0052, KEY_UP }, /* up arrow */
413 { 0x00, 0x51, KEY_DOWN }, /* down arrow */ 413 { 0x0051, KEY_DOWN }, /* down arrow */
414 { 0x00, 0x4f, KEY_RIGHT }, /* right arrow */ 414 { 0x004f, KEY_RIGHT }, /* right arrow */
415 { 0x00, 0x50, KEY_LEFT }, /* left arrow */ 415 { 0x0050, KEY_LEFT }, /* left arrow */
416 { 0x00, 0x28, KEY_ENTER }, /* ok */ 416 { 0x0028, KEY_ENTER }, /* ok */
417 { 0x01, 0x15, KEY_RECORD }, 417 { 0x0115, KEY_RECORD },
418 { 0x03, 0x13, KEY_PLAY }, 418 { 0x0313, KEY_PLAY },
419 { 0x01, 0x13, KEY_PAUSE }, 419 { 0x0113, KEY_PAUSE },
420 { 0x01, 0x16, KEY_STOP }, 420 { 0x0116, KEY_STOP },
421 { 0x03, 0x07, KEY_REWIND }, /* FR << */ 421 { 0x0307, KEY_REWIND }, /* FR << */
422 { 0x03, 0x09, KEY_FASTFORWARD }, /* FF >> */ 422 { 0x0309, KEY_FASTFORWARD }, /* FF >> */
423 { 0x00, 0x3b, KEY_TIME }, /* TimeShift */ 423 { 0x003b, KEY_TIME }, /* TimeShift */
424 { 0x00, 0x3e, KEY_CAMERA }, /* Snapshot */ 424 { 0x003e, KEY_CAMERA }, /* Snapshot */
425 { 0x03, 0x16, KEY_CYCLEWINDOWS }, /* yellow, min / max */ 425 { 0x0316, KEY_CYCLEWINDOWS }, /* yellow, min / max */
426 { 0x00, 0x00, KEY_ZOOM }, /* 'select' (?) */ 426 { 0x0000, KEY_ZOOM }, /* 'select' (?) */
427 { 0x03, 0x16, KEY_SHUFFLE }, /* Shuffle */ 427 { 0x0316, KEY_SHUFFLE }, /* Shuffle */
428 { 0x03, 0x45, KEY_POWER }, 428 { 0x0345, KEY_POWER },
429}; 429};
430 430
431static u8 af9015_ir_table_mygictv[] = { 431static u8 af9015_ir_table_mygictv[] = {
@@ -516,41 +516,41 @@ static u8 af9015_ir_table_kworld[] = {
516 516
517/* AverMedia Volar X */ 517/* AverMedia Volar X */
518static struct dvb_usb_rc_key af9015_rc_keys_avermedia[] = { 518static struct dvb_usb_rc_key af9015_rc_keys_avermedia[] = {
519 { 0x05, 0x3d, KEY_PROG1 }, /* SOURCE */ 519 { 0x053d, KEY_PROG1 }, /* SOURCE */
520 { 0x05, 0x12, KEY_POWER }, /* POWER */ 520 { 0x0512, KEY_POWER }, /* POWER */
521 { 0x05, 0x1e, KEY_1 }, /* 1 */ 521 { 0x051e, KEY_1 }, /* 1 */
522 { 0x05, 0x1f, KEY_2 }, /* 2 */ 522 { 0x051f, KEY_2 }, /* 2 */
523 { 0x05, 0x20, KEY_3 }, /* 3 */ 523 { 0x0520, KEY_3 }, /* 3 */
524 { 0x05, 0x21, KEY_4 }, /* 4 */ 524 { 0x0521, KEY_4 }, /* 4 */
525 { 0x05, 0x22, KEY_5 }, /* 5 */ 525 { 0x0522, KEY_5 }, /* 5 */
526 { 0x05, 0x23, KEY_6 }, /* 6 */ 526 { 0x0523, KEY_6 }, /* 6 */
527 { 0x05, 0x24, KEY_7 }, /* 7 */ 527 { 0x0524, KEY_7 }, /* 7 */
528 { 0x05, 0x25, KEY_8 }, /* 8 */ 528 { 0x0525, KEY_8 }, /* 8 */
529 { 0x05, 0x26, KEY_9 }, /* 9 */ 529 { 0x0526, KEY_9 }, /* 9 */
530 { 0x05, 0x3f, KEY_LEFT }, /* L / DISPLAY */ 530 { 0x053f, KEY_LEFT }, /* L / DISPLAY */
531 { 0x05, 0x27, KEY_0 }, /* 0 */ 531 { 0x0527, KEY_0 }, /* 0 */
532 { 0x05, 0x0f, KEY_RIGHT }, /* R / CH RTN */ 532 { 0x050f, KEY_RIGHT }, /* R / CH RTN */
533 { 0x05, 0x18, KEY_PROG2 }, /* SNAP SHOT */ 533 { 0x0518, KEY_PROG2 }, /* SNAP SHOT */
534 { 0x05, 0x1c, KEY_PROG3 }, /* 16-CH PREV */ 534 { 0x051c, KEY_PROG3 }, /* 16-CH PREV */
535 { 0x05, 0x2d, KEY_VOLUMEDOWN }, /* VOL DOWN */ 535 { 0x052d, KEY_VOLUMEDOWN }, /* VOL DOWN */
536 { 0x05, 0x3e, KEY_ZOOM }, /* FULL SCREEN */ 536 { 0x053e, KEY_ZOOM }, /* FULL SCREEN */
537 { 0x05, 0x2e, KEY_VOLUMEUP }, /* VOL UP */ 537 { 0x052e, KEY_VOLUMEUP }, /* VOL UP */
538 { 0x05, 0x10, KEY_MUTE }, /* MUTE */ 538 { 0x0510, KEY_MUTE }, /* MUTE */
539 { 0x05, 0x04, KEY_AUDIO }, /* AUDIO */ 539 { 0x0504, KEY_AUDIO }, /* AUDIO */
540 { 0x05, 0x15, KEY_RECORD }, /* RECORD */ 540 { 0x0515, KEY_RECORD }, /* RECORD */
541 { 0x05, 0x11, KEY_PLAY }, /* PLAY */ 541 { 0x0511, KEY_PLAY }, /* PLAY */
542 { 0x05, 0x16, KEY_STOP }, /* STOP */ 542 { 0x0516, KEY_STOP }, /* STOP */
543 { 0x05, 0x0c, KEY_PLAYPAUSE }, /* TIMESHIFT / PAUSE */ 543 { 0x050c, KEY_PLAYPAUSE }, /* TIMESHIFT / PAUSE */
544 { 0x05, 0x05, KEY_BACK }, /* << / RED */ 544 { 0x0505, KEY_BACK }, /* << / RED */
545 { 0x05, 0x09, KEY_FORWARD }, /* >> / YELLOW */ 545 { 0x0509, KEY_FORWARD }, /* >> / YELLOW */
546 { 0x05, 0x17, KEY_TEXT }, /* TELETEXT */ 546 { 0x0517, KEY_TEXT }, /* TELETEXT */
547 { 0x05, 0x0a, KEY_EPG }, /* EPG */ 547 { 0x050a, KEY_EPG }, /* EPG */
548 { 0x05, 0x13, KEY_MENU }, /* MENU */ 548 { 0x0513, KEY_MENU }, /* MENU */
549 549
550 { 0x05, 0x0e, KEY_CHANNELUP }, /* CH UP */ 550 { 0x050e, KEY_CHANNELUP }, /* CH UP */
551 { 0x05, 0x0d, KEY_CHANNELDOWN }, /* CH DOWN */ 551 { 0x050d, KEY_CHANNELDOWN }, /* CH DOWN */
552 { 0x05, 0x19, KEY_FIRST }, /* |<< / GREEN */ 552 { 0x0519, KEY_FIRST }, /* |<< / GREEN */
553 { 0x05, 0x08, KEY_LAST }, /* >>| / BLUE */ 553 { 0x0508, KEY_LAST }, /* >>| / BLUE */
554}; 554};
555 555
556static u8 af9015_ir_table_avermedia[] = { 556static u8 af9015_ir_table_avermedia[] = {
@@ -622,34 +622,34 @@ static u8 af9015_ir_table_avermedia_ks[] = {
622 622
623/* Digittrade DVB-T USB Stick */ 623/* Digittrade DVB-T USB Stick */
624static struct dvb_usb_rc_key af9015_rc_keys_digittrade[] = { 624static struct dvb_usb_rc_key af9015_rc_keys_digittrade[] = {
625 { 0x01, 0x0f, KEY_LAST }, /* RETURN */ 625 { 0x010f, KEY_LAST }, /* RETURN */
626 { 0x05, 0x17, KEY_TEXT }, /* TELETEXT */ 626 { 0x0517, KEY_TEXT }, /* TELETEXT */
627 { 0x01, 0x08, KEY_EPG }, /* EPG */ 627 { 0x0108, KEY_EPG }, /* EPG */
628 { 0x05, 0x13, KEY_POWER }, /* POWER */ 628 { 0x0513, KEY_POWER }, /* POWER */
629 { 0x01, 0x09, KEY_ZOOM }, /* FULLSCREEN */ 629 { 0x0109, KEY_ZOOM }, /* FULLSCREEN */
630 { 0x00, 0x40, KEY_AUDIO }, /* DUAL SOUND */ 630 { 0x0040, KEY_AUDIO }, /* DUAL SOUND */
631 { 0x00, 0x2c, KEY_PRINT }, /* SNAPSHOT */ 631 { 0x002c, KEY_PRINT }, /* SNAPSHOT */
632 { 0x05, 0x16, KEY_SUBTITLE }, /* SUBTITLE */ 632 { 0x0516, KEY_SUBTITLE }, /* SUBTITLE */
633 { 0x00, 0x52, KEY_CHANNELUP }, /* CH Up */ 633 { 0x0052, KEY_CHANNELUP }, /* CH Up */
634 { 0x00, 0x51, KEY_CHANNELDOWN },/* Ch Dn */ 634 { 0x0051, KEY_CHANNELDOWN },/* Ch Dn */
635 { 0x00, 0x57, KEY_VOLUMEUP }, /* Vol Up */ 635 { 0x0057, KEY_VOLUMEUP }, /* Vol Up */
636 { 0x00, 0x56, KEY_VOLUMEDOWN }, /* Vol Dn */ 636 { 0x0056, KEY_VOLUMEDOWN }, /* Vol Dn */
637 { 0x01, 0x10, KEY_MUTE }, /* MUTE */ 637 { 0x0110, KEY_MUTE }, /* MUTE */
638 { 0x00, 0x27, KEY_0 }, 638 { 0x0027, KEY_0 },
639 { 0x00, 0x1e, KEY_1 }, 639 { 0x001e, KEY_1 },
640 { 0x00, 0x1f, KEY_2 }, 640 { 0x001f, KEY_2 },
641 { 0x00, 0x20, KEY_3 }, 641 { 0x0020, KEY_3 },
642 { 0x00, 0x21, KEY_4 }, 642 { 0x0021, KEY_4 },
643 { 0x00, 0x22, KEY_5 }, 643 { 0x0022, KEY_5 },
644 { 0x00, 0x23, KEY_6 }, 644 { 0x0023, KEY_6 },
645 { 0x00, 0x24, KEY_7 }, 645 { 0x0024, KEY_7 },
646 { 0x00, 0x25, KEY_8 }, 646 { 0x0025, KEY_8 },
647 { 0x00, 0x26, KEY_9 }, 647 { 0x0026, KEY_9 },
648 { 0x01, 0x17, KEY_PLAYPAUSE }, /* TIMESHIFT */ 648 { 0x0117, KEY_PLAYPAUSE }, /* TIMESHIFT */
649 { 0x01, 0x15, KEY_RECORD }, /* RECORD */ 649 { 0x0115, KEY_RECORD }, /* RECORD */
650 { 0x03, 0x13, KEY_PLAY }, /* PLAY */ 650 { 0x0313, KEY_PLAY }, /* PLAY */
651 { 0x01, 0x16, KEY_STOP }, /* STOP */ 651 { 0x0116, KEY_STOP }, /* STOP */
652 { 0x01, 0x13, KEY_PAUSE }, /* PAUSE */ 652 { 0x0113, KEY_PAUSE }, /* PAUSE */
653}; 653};
654 654
655static u8 af9015_ir_table_digittrade[] = { 655static u8 af9015_ir_table_digittrade[] = {
@@ -685,34 +685,34 @@ static u8 af9015_ir_table_digittrade[] = {
685 685
686/* TREKSTOR DVB-T USB Stick */ 686/* TREKSTOR DVB-T USB Stick */
687static struct dvb_usb_rc_key af9015_rc_keys_trekstor[] = { 687static struct dvb_usb_rc_key af9015_rc_keys_trekstor[] = {
688 { 0x07, 0x04, KEY_AGAIN }, /* Home */ 688 { 0x0704, KEY_AGAIN }, /* Home */
689 { 0x07, 0x05, KEY_MUTE }, /* Mute */ 689 { 0x0705, KEY_MUTE }, /* Mute */
690 { 0x07, 0x06, KEY_UP }, /* Up */ 690 { 0x0706, KEY_UP }, /* Up */
691 { 0x07, 0x07, KEY_DOWN }, /* Down */ 691 { 0x0707, KEY_DOWN }, /* Down */
692 { 0x07, 0x09, KEY_RIGHT }, /* Right */ 692 { 0x0709, KEY_RIGHT }, /* Right */
693 { 0x07, 0x0a, KEY_ENTER }, /* OK */ 693 { 0x070a, KEY_ENTER }, /* OK */
694 { 0x07, 0x0b, KEY_FASTFORWARD }, /* Fast forward */ 694 { 0x070b, KEY_FASTFORWARD }, /* Fast forward */
695 { 0x07, 0x0c, KEY_REWIND }, /* Rewind */ 695 { 0x070c, KEY_REWIND }, /* Rewind */
696 { 0x07, 0x0d, KEY_PLAY }, /* Play/Pause */ 696 { 0x070d, KEY_PLAY }, /* Play/Pause */
697 { 0x07, 0x0e, KEY_VOLUMEUP }, /* Volume + */ 697 { 0x070e, KEY_VOLUMEUP }, /* Volume + */
698 { 0x07, 0x0f, KEY_VOLUMEDOWN }, /* Volume - */ 698 { 0x070f, KEY_VOLUMEDOWN }, /* Volume - */
699 { 0x07, 0x10, KEY_RECORD }, /* Record */ 699 { 0x0710, KEY_RECORD }, /* Record */
700 { 0x07, 0x11, KEY_STOP }, /* Stop */ 700 { 0x0711, KEY_STOP }, /* Stop */
701 { 0x07, 0x12, KEY_ZOOM }, /* TV */ 701 { 0x0712, KEY_ZOOM }, /* TV */
702 { 0x07, 0x13, KEY_EPG }, /* Info/EPG */ 702 { 0x0713, KEY_EPG }, /* Info/EPG */
703 { 0x07, 0x14, KEY_CHANNELDOWN }, /* Channel - */ 703 { 0x0714, KEY_CHANNELDOWN }, /* Channel - */
704 { 0x07, 0x15, KEY_CHANNELUP }, /* Channel + */ 704 { 0x0715, KEY_CHANNELUP }, /* Channel + */
705 { 0x07, 0x1e, KEY_1 }, 705 { 0x071e, KEY_1 },
706 { 0x07, 0x1f, KEY_2 }, 706 { 0x071f, KEY_2 },
707 { 0x07, 0x20, KEY_3 }, 707 { 0x0720, KEY_3 },
708 { 0x07, 0x21, KEY_4 }, 708 { 0x0721, KEY_4 },
709 { 0x07, 0x22, KEY_5 }, 709 { 0x0722, KEY_5 },
710 { 0x07, 0x23, KEY_6 }, 710 { 0x0723, KEY_6 },
711 { 0x07, 0x24, KEY_7 }, 711 { 0x0724, KEY_7 },
712 { 0x07, 0x25, KEY_8 }, 712 { 0x0725, KEY_8 },
713 { 0x07, 0x26, KEY_9 }, 713 { 0x0726, KEY_9 },
714 { 0x07, 0x08, KEY_LEFT }, /* LEFT */ 714 { 0x0708, KEY_LEFT }, /* LEFT */
715 { 0x07, 0x27, KEY_0 }, 715 { 0x0727, KEY_0 },
716}; 716};
717 717
718static u8 af9015_ir_table_trekstor[] = { 718static u8 af9015_ir_table_trekstor[] = {
diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c
index c6e7b4215d6b..7381aff4dcf6 100644
--- a/drivers/media/dvb/dvb-usb/anysee.c
+++ b/drivers/media/dvb/dvb-usb/anysee.c
@@ -389,8 +389,8 @@ static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
389 *state = REMOTE_NO_KEY_PRESSED; 389 *state = REMOTE_NO_KEY_PRESSED;
390 390
391 for (i = 0; i < d->props.rc_key_map_size; i++) { 391 for (i = 0; i < d->props.rc_key_map_size; i++) {
392 if (keymap[i].custom == ircode[0] && 392 if (rc5_custom(&keymap[i]) == ircode[0] &&
393 keymap[i].data == ircode[1]) { 393 rc5_data(&keymap[i]) == ircode[1]) {
394 *event = keymap[i].event; 394 *event = keymap[i].event;
395 *state = REMOTE_KEY_PRESSED; 395 *state = REMOTE_KEY_PRESSED;
396 return 0; 396 return 0;
@@ -400,50 +400,50 @@ static int anysee_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
400} 400}
401 401
402static struct dvb_usb_rc_key anysee_rc_keys[] = { 402static struct dvb_usb_rc_key anysee_rc_keys[] = {
403 { 0x01, 0x00, KEY_0 }, 403 { 0x0100, KEY_0 },
404 { 0x01, 0x01, KEY_1 }, 404 { 0x0101, KEY_1 },
405 { 0x01, 0x02, KEY_2 }, 405 { 0x0102, KEY_2 },
406 { 0x01, 0x03, KEY_3 }, 406 { 0x0103, KEY_3 },
407 { 0x01, 0x04, KEY_4 }, 407 { 0x0104, KEY_4 },
408 { 0x01, 0x05, KEY_5 }, 408 { 0x0105, KEY_5 },
409 { 0x01, 0x06, KEY_6 }, 409 { 0x0106, KEY_6 },
410 { 0x01, 0x07, KEY_7 }, 410 { 0x0107, KEY_7 },
411 { 0x01, 0x08, KEY_8 }, 411 { 0x0108, KEY_8 },
412 { 0x01, 0x09, KEY_9 }, 412 { 0x0109, KEY_9 },
413 { 0x01, 0x0a, KEY_POWER }, 413 { 0x010a, KEY_POWER },
414 { 0x01, 0x0b, KEY_DOCUMENTS }, /* * */ 414 { 0x010b, KEY_DOCUMENTS }, /* * */
415 { 0x01, 0x19, KEY_FAVORITES }, 415 { 0x0119, KEY_FAVORITES },
416 { 0x01, 0x20, KEY_SLEEP }, 416 { 0x0120, KEY_SLEEP },
417 { 0x01, 0x21, KEY_MODE }, /* 4:3 / 16:9 select */ 417 { 0x0121, KEY_MODE }, /* 4:3 / 16:9 select */
418 { 0x01, 0x22, KEY_ZOOM }, 418 { 0x0122, KEY_ZOOM },
419 { 0x01, 0x47, KEY_TEXT }, 419 { 0x0147, KEY_TEXT },
420 { 0x01, 0x16, KEY_TV }, /* TV / radio select */ 420 { 0x0116, KEY_TV }, /* TV / radio select */
421 { 0x01, 0x1e, KEY_LANGUAGE }, /* Second Audio Program */ 421 { 0x011e, KEY_LANGUAGE }, /* Second Audio Program */
422 { 0x01, 0x1a, KEY_SUBTITLE }, 422 { 0x011a, KEY_SUBTITLE },
423 { 0x01, 0x1b, KEY_CAMERA }, /* screenshot */ 423 { 0x011b, KEY_CAMERA }, /* screenshot */
424 { 0x01, 0x42, KEY_MUTE }, 424 { 0x0142, KEY_MUTE },
425 { 0x01, 0x0e, KEY_MENU }, 425 { 0x010e, KEY_MENU },
426 { 0x01, 0x0f, KEY_EPG }, 426 { 0x010f, KEY_EPG },
427 { 0x01, 0x17, KEY_INFO }, 427 { 0x0117, KEY_INFO },
428 { 0x01, 0x10, KEY_EXIT }, 428 { 0x0110, KEY_EXIT },
429 { 0x01, 0x13, KEY_VOLUMEUP }, 429 { 0x0113, KEY_VOLUMEUP },
430 { 0x01, 0x12, KEY_VOLUMEDOWN }, 430 { 0x0112, KEY_VOLUMEDOWN },
431 { 0x01, 0x11, KEY_CHANNELUP }, 431 { 0x0111, KEY_CHANNELUP },
432 { 0x01, 0x14, KEY_CHANNELDOWN }, 432 { 0x0114, KEY_CHANNELDOWN },
433 { 0x01, 0x15, KEY_OK }, 433 { 0x0115, KEY_OK },
434 { 0x01, 0x1d, KEY_RED }, 434 { 0x011d, KEY_RED },
435 { 0x01, 0x1f, KEY_GREEN }, 435 { 0x011f, KEY_GREEN },
436 { 0x01, 0x1c, KEY_YELLOW }, 436 { 0x011c, KEY_YELLOW },
437 { 0x01, 0x44, KEY_BLUE }, 437 { 0x0144, KEY_BLUE },
438 { 0x01, 0x0c, KEY_SHUFFLE }, /* snapshot */ 438 { 0x010c, KEY_SHUFFLE }, /* snapshot */
439 { 0x01, 0x48, KEY_STOP }, 439 { 0x0148, KEY_STOP },
440 { 0x01, 0x50, KEY_PLAY }, 440 { 0x0150, KEY_PLAY },
441 { 0x01, 0x51, KEY_PAUSE }, 441 { 0x0151, KEY_PAUSE },
442 { 0x01, 0x49, KEY_RECORD }, 442 { 0x0149, KEY_RECORD },
443 { 0x01, 0x18, KEY_PREVIOUS }, /* |<< */ 443 { 0x0118, KEY_PREVIOUS }, /* |<< */
444 { 0x01, 0x0d, KEY_NEXT }, /* >>| */ 444 { 0x010d, KEY_NEXT }, /* >>| */
445 { 0x01, 0x24, KEY_PROG1 }, /* F1 */ 445 { 0x0124, KEY_PROG1 }, /* F1 */
446 { 0x01, 0x25, KEY_PROG2 }, /* F2 */ 446 { 0x0125, KEY_PROG2 }, /* F2 */
447}; 447};
448 448
449/* DVB USB Driver stuff */ 449/* DVB USB Driver stuff */
diff --git a/drivers/media/dvb/dvb-usb/cinergyT2-core.c b/drivers/media/dvb/dvb-usb/cinergyT2-core.c
index 80e37a0d0892..e37ac4d48602 100644
--- a/drivers/media/dvb/dvb-usb/cinergyT2-core.c
+++ b/drivers/media/dvb/dvb-usb/cinergyT2-core.c
@@ -85,43 +85,43 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
85} 85}
86 86
87static struct dvb_usb_rc_key cinergyt2_rc_keys[] = { 87static struct dvb_usb_rc_key cinergyt2_rc_keys[] = {
88 { 0x04, 0x01, KEY_POWER }, 88 { 0x0401, KEY_POWER },
89 { 0x04, 0x02, KEY_1 }, 89 { 0x0402, KEY_1 },
90 { 0x04, 0x03, KEY_2 }, 90 { 0x0403, KEY_2 },
91 { 0x04, 0x04, KEY_3 }, 91 { 0x0404, KEY_3 },
92 { 0x04, 0x05, KEY_4 }, 92 { 0x0405, KEY_4 },
93 { 0x04, 0x06, KEY_5 }, 93 { 0x0406, KEY_5 },
94 { 0x04, 0x07, KEY_6 }, 94 { 0x0407, KEY_6 },
95 { 0x04, 0x08, KEY_7 }, 95 { 0x0408, KEY_7 },
96 { 0x04, 0x09, KEY_8 }, 96 { 0x0409, KEY_8 },
97 { 0x04, 0x0a, KEY_9 }, 97 { 0x040a, KEY_9 },
98 { 0x04, 0x0c, KEY_0 }, 98 { 0x040c, KEY_0 },
99 { 0x04, 0x0b, KEY_VIDEO }, 99 { 0x040b, KEY_VIDEO },
100 { 0x04, 0x0d, KEY_REFRESH }, 100 { 0x040d, KEY_REFRESH },
101 { 0x04, 0x0e, KEY_SELECT }, 101 { 0x040e, KEY_SELECT },
102 { 0x04, 0x0f, KEY_EPG }, 102 { 0x040f, KEY_EPG },
103 { 0x04, 0x10, KEY_UP }, 103 { 0x0410, KEY_UP },
104 { 0x04, 0x14, KEY_DOWN }, 104 { 0x0414, KEY_DOWN },
105 { 0x04, 0x11, KEY_LEFT }, 105 { 0x0411, KEY_LEFT },
106 { 0x04, 0x13, KEY_RIGHT }, 106 { 0x0413, KEY_RIGHT },
107 { 0x04, 0x12, KEY_OK }, 107 { 0x0412, KEY_OK },
108 { 0x04, 0x15, KEY_TEXT }, 108 { 0x0415, KEY_TEXT },
109 { 0x04, 0x16, KEY_INFO }, 109 { 0x0416, KEY_INFO },
110 { 0x04, 0x17, KEY_RED }, 110 { 0x0417, KEY_RED },
111 { 0x04, 0x18, KEY_GREEN }, 111 { 0x0418, KEY_GREEN },
112 { 0x04, 0x19, KEY_YELLOW }, 112 { 0x0419, KEY_YELLOW },
113 { 0x04, 0x1a, KEY_BLUE }, 113 { 0x041a, KEY_BLUE },
114 { 0x04, 0x1c, KEY_VOLUMEUP }, 114 { 0x041c, KEY_VOLUMEUP },
115 { 0x04, 0x1e, KEY_VOLUMEDOWN }, 115 { 0x041e, KEY_VOLUMEDOWN },
116 { 0x04, 0x1d, KEY_MUTE }, 116 { 0x041d, KEY_MUTE },
117 { 0x04, 0x1b, KEY_CHANNELUP }, 117 { 0x041b, KEY_CHANNELUP },
118 { 0x04, 0x1f, KEY_CHANNELDOWN }, 118 { 0x041f, KEY_CHANNELDOWN },
119 { 0x04, 0x40, KEY_PAUSE }, 119 { 0x0440, KEY_PAUSE },
120 { 0x04, 0x4c, KEY_PLAY }, 120 { 0x044c, KEY_PLAY },
121 { 0x04, 0x58, KEY_RECORD }, 121 { 0x0458, KEY_RECORD },
122 { 0x04, 0x54, KEY_PREVIOUS }, 122 { 0x0454, KEY_PREVIOUS },
123 { 0x04, 0x48, KEY_STOP }, 123 { 0x0448, KEY_STOP },
124 { 0x04, 0x5c, KEY_NEXT } 124 { 0x045c, KEY_NEXT }
125}; 125};
126 126
127/* Number of keypresses to ignore before detect repeating */ 127/* Number of keypresses to ignore before detect repeating */
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index 88205e734aaf..f65591fb7cec 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -392,8 +392,8 @@ static int cxusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
392 *state = REMOTE_NO_KEY_PRESSED; 392 *state = REMOTE_NO_KEY_PRESSED;
393 393
394 for (i = 0; i < d->props.rc_key_map_size; i++) { 394 for (i = 0; i < d->props.rc_key_map_size; i++) {
395 if (keymap[i].custom == ircode[2] && 395 if (rc5_custom(&keymap[i]) == ircode[2] &&
396 keymap[i].data == ircode[3]) { 396 rc5_data(&keymap[i]) == ircode[3]) {
397 *event = keymap[i].event; 397 *event = keymap[i].event;
398 *state = REMOTE_KEY_PRESSED; 398 *state = REMOTE_KEY_PRESSED;
399 399
@@ -420,8 +420,8 @@ static int cxusb_bluebird2_rc_query(struct dvb_usb_device *d, u32 *event,
420 return 0; 420 return 0;
421 421
422 for (i = 0; i < d->props.rc_key_map_size; i++) { 422 for (i = 0; i < d->props.rc_key_map_size; i++) {
423 if (keymap[i].custom == ircode[1] && 423 if (rc5_custom(&keymap[i]) == ircode[1] &&
424 keymap[i].data == ircode[2]) { 424 rc5_data(&keymap[i]) == ircode[2]) {
425 *event = keymap[i].event; 425 *event = keymap[i].event;
426 *state = REMOTE_KEY_PRESSED; 426 *state = REMOTE_KEY_PRESSED;
427 427
@@ -446,8 +446,8 @@ static int cxusb_d680_dmb_rc_query(struct dvb_usb_device *d, u32 *event,
446 return 0; 446 return 0;
447 447
448 for (i = 0; i < d->props.rc_key_map_size; i++) { 448 for (i = 0; i < d->props.rc_key_map_size; i++) {
449 if (keymap[i].custom == ircode[0] && 449 if (rc5_custom(&keymap[i]) == ircode[0] &&
450 keymap[i].data == ircode[1]) { 450 rc5_data(&keymap[i]) == ircode[1]) {
451 *event = keymap[i].event; 451 *event = keymap[i].event;
452 *state = REMOTE_KEY_PRESSED; 452 *state = REMOTE_KEY_PRESSED;
453 453
@@ -459,128 +459,128 @@ static int cxusb_d680_dmb_rc_query(struct dvb_usb_device *d, u32 *event,
459} 459}
460 460
461static struct dvb_usb_rc_key dvico_mce_rc_keys[] = { 461static struct dvb_usb_rc_key dvico_mce_rc_keys[] = {
462 { 0xfe, 0x02, KEY_TV }, 462 { 0xfe02, KEY_TV },
463 { 0xfe, 0x0e, KEY_MP3 }, 463 { 0xfe0e, KEY_MP3 },
464 { 0xfe, 0x1a, KEY_DVD }, 464 { 0xfe1a, KEY_DVD },
465 { 0xfe, 0x1e, KEY_FAVORITES }, 465 { 0xfe1e, KEY_FAVORITES },
466 { 0xfe, 0x16, KEY_SETUP }, 466 { 0xfe16, KEY_SETUP },
467 { 0xfe, 0x46, KEY_POWER2 }, 467 { 0xfe46, KEY_POWER2 },
468 { 0xfe, 0x0a, KEY_EPG }, 468 { 0xfe0a, KEY_EPG },
469 { 0xfe, 0x49, KEY_BACK }, 469 { 0xfe49, KEY_BACK },
470 { 0xfe, 0x4d, KEY_MENU }, 470 { 0xfe4d, KEY_MENU },
471 { 0xfe, 0x51, KEY_UP }, 471 { 0xfe51, KEY_UP },
472 { 0xfe, 0x5b, KEY_LEFT }, 472 { 0xfe5b, KEY_LEFT },
473 { 0xfe, 0x5f, KEY_RIGHT }, 473 { 0xfe5f, KEY_RIGHT },
474 { 0xfe, 0x53, KEY_DOWN }, 474 { 0xfe53, KEY_DOWN },
475 { 0xfe, 0x5e, KEY_OK }, 475 { 0xfe5e, KEY_OK },
476 { 0xfe, 0x59, KEY_INFO }, 476 { 0xfe59, KEY_INFO },
477 { 0xfe, 0x55, KEY_TAB }, 477 { 0xfe55, KEY_TAB },
478 { 0xfe, 0x0f, KEY_PREVIOUSSONG },/* Replay */ 478 { 0xfe0f, KEY_PREVIOUSSONG },/* Replay */
479 { 0xfe, 0x12, KEY_NEXTSONG }, /* Skip */ 479 { 0xfe12, KEY_NEXTSONG }, /* Skip */
480 { 0xfe, 0x42, KEY_ENTER }, /* Windows/Start */ 480 { 0xfe42, KEY_ENTER }, /* Windows/Start */
481 { 0xfe, 0x15, KEY_VOLUMEUP }, 481 { 0xfe15, KEY_VOLUMEUP },
482 { 0xfe, 0x05, KEY_VOLUMEDOWN }, 482 { 0xfe05, KEY_VOLUMEDOWN },
483 { 0xfe, 0x11, KEY_CHANNELUP }, 483 { 0xfe11, KEY_CHANNELUP },
484 { 0xfe, 0x09, KEY_CHANNELDOWN }, 484 { 0xfe09, KEY_CHANNELDOWN },
485 { 0xfe, 0x52, KEY_CAMERA }, 485 { 0xfe52, KEY_CAMERA },
486 { 0xfe, 0x5a, KEY_TUNER }, /* Live */ 486 { 0xfe5a, KEY_TUNER }, /* Live */
487 { 0xfe, 0x19, KEY_OPEN }, 487 { 0xfe19, KEY_OPEN },
488 { 0xfe, 0x0b, KEY_1 }, 488 { 0xfe0b, KEY_1 },
489 { 0xfe, 0x17, KEY_2 }, 489 { 0xfe17, KEY_2 },
490 { 0xfe, 0x1b, KEY_3 }, 490 { 0xfe1b, KEY_3 },
491 { 0xfe, 0x07, KEY_4 }, 491 { 0xfe07, KEY_4 },
492 { 0xfe, 0x50, KEY_5 }, 492 { 0xfe50, KEY_5 },
493 { 0xfe, 0x54, KEY_6 }, 493 { 0xfe54, KEY_6 },
494 { 0xfe, 0x48, KEY_7 }, 494 { 0xfe48, KEY_7 },
495 { 0xfe, 0x4c, KEY_8 }, 495 { 0xfe4c, KEY_8 },
496 { 0xfe, 0x58, KEY_9 }, 496 { 0xfe58, KEY_9 },
497 { 0xfe, 0x13, KEY_ANGLE }, /* Aspect */ 497 { 0xfe13, KEY_ANGLE }, /* Aspect */
498 { 0xfe, 0x03, KEY_0 }, 498 { 0xfe03, KEY_0 },
499 { 0xfe, 0x1f, KEY_ZOOM }, 499 { 0xfe1f, KEY_ZOOM },
500 { 0xfe, 0x43, KEY_REWIND }, 500 { 0xfe43, KEY_REWIND },
501 { 0xfe, 0x47, KEY_PLAYPAUSE }, 501 { 0xfe47, KEY_PLAYPAUSE },
502 { 0xfe, 0x4f, KEY_FASTFORWARD }, 502 { 0xfe4f, KEY_FASTFORWARD },
503 { 0xfe, 0x57, KEY_MUTE }, 503 { 0xfe57, KEY_MUTE },
504 { 0xfe, 0x0d, KEY_STOP }, 504 { 0xfe0d, KEY_STOP },
505 { 0xfe, 0x01, KEY_RECORD }, 505 { 0xfe01, KEY_RECORD },
506 { 0xfe, 0x4e, KEY_POWER }, 506 { 0xfe4e, KEY_POWER },
507}; 507};
508 508
509static struct dvb_usb_rc_key dvico_portable_rc_keys[] = { 509static struct dvb_usb_rc_key dvico_portable_rc_keys[] = {
510 { 0xfc, 0x02, KEY_SETUP }, /* Profile */ 510 { 0xfc02, KEY_SETUP }, /* Profile */
511 { 0xfc, 0x43, KEY_POWER2 }, 511 { 0xfc43, KEY_POWER2 },
512 { 0xfc, 0x06, KEY_EPG }, 512 { 0xfc06, KEY_EPG },
513 { 0xfc, 0x5a, KEY_BACK }, 513 { 0xfc5a, KEY_BACK },
514 { 0xfc, 0x05, KEY_MENU }, 514 { 0xfc05, KEY_MENU },
515 { 0xfc, 0x47, KEY_INFO }, 515 { 0xfc47, KEY_INFO },
516 { 0xfc, 0x01, KEY_TAB }, 516 { 0xfc01, KEY_TAB },
517 { 0xfc, 0x42, KEY_PREVIOUSSONG },/* Replay */ 517 { 0xfc42, KEY_PREVIOUSSONG },/* Replay */
518 { 0xfc, 0x49, KEY_VOLUMEUP }, 518 { 0xfc49, KEY_VOLUMEUP },
519 { 0xfc, 0x09, KEY_VOLUMEDOWN }, 519 { 0xfc09, KEY_VOLUMEDOWN },
520 { 0xfc, 0x54, KEY_CHANNELUP }, 520 { 0xfc54, KEY_CHANNELUP },
521 { 0xfc, 0x0b, KEY_CHANNELDOWN }, 521 { 0xfc0b, KEY_CHANNELDOWN },
522 { 0xfc, 0x16, KEY_CAMERA }, 522 { 0xfc16, KEY_CAMERA },
523 { 0xfc, 0x40, KEY_TUNER }, /* ATV/DTV */ 523 { 0xfc40, KEY_TUNER }, /* ATV/DTV */
524 { 0xfc, 0x45, KEY_OPEN }, 524 { 0xfc45, KEY_OPEN },
525 { 0xfc, 0x19, KEY_1 }, 525 { 0xfc19, KEY_1 },
526 { 0xfc, 0x18, KEY_2 }, 526 { 0xfc18, KEY_2 },
527 { 0xfc, 0x1b, KEY_3 }, 527 { 0xfc1b, KEY_3 },
528 { 0xfc, 0x1a, KEY_4 }, 528 { 0xfc1a, KEY_4 },
529 { 0xfc, 0x58, KEY_5 }, 529 { 0xfc58, KEY_5 },
530 { 0xfc, 0x59, KEY_6 }, 530 { 0xfc59, KEY_6 },
531 { 0xfc, 0x15, KEY_7 }, 531 { 0xfc15, KEY_7 },
532 { 0xfc, 0x14, KEY_8 }, 532 { 0xfc14, KEY_8 },
533 { 0xfc, 0x17, KEY_9 }, 533 { 0xfc17, KEY_9 },
534 { 0xfc, 0x44, KEY_ANGLE }, /* Aspect */ 534 { 0xfc44, KEY_ANGLE }, /* Aspect */
535 { 0xfc, 0x55, KEY_0 }, 535 { 0xfc55, KEY_0 },
536 { 0xfc, 0x07, KEY_ZOOM }, 536 { 0xfc07, KEY_ZOOM },
537 { 0xfc, 0x0a, KEY_REWIND }, 537 { 0xfc0a, KEY_REWIND },
538 { 0xfc, 0x08, KEY_PLAYPAUSE }, 538 { 0xfc08, KEY_PLAYPAUSE },
539 { 0xfc, 0x4b, KEY_FASTFORWARD }, 539 { 0xfc4b, KEY_FASTFORWARD },
540 { 0xfc, 0x5b, KEY_MUTE }, 540 { 0xfc5b, KEY_MUTE },
541 { 0xfc, 0x04, KEY_STOP }, 541 { 0xfc04, KEY_STOP },
542 { 0xfc, 0x56, KEY_RECORD }, 542 { 0xfc56, KEY_RECORD },
543 { 0xfc, 0x57, KEY_POWER }, 543 { 0xfc57, KEY_POWER },
544 { 0xfc, 0x41, KEY_UNKNOWN }, /* INPUT */ 544 { 0xfc41, KEY_UNKNOWN }, /* INPUT */
545 { 0xfc, 0x00, KEY_UNKNOWN }, /* HD */ 545 { 0xfc00, KEY_UNKNOWN }, /* HD */
546}; 546};
547 547
548static struct dvb_usb_rc_key d680_dmb_rc_keys[] = { 548static struct dvb_usb_rc_key d680_dmb_rc_keys[] = {
549 { 0x00, 0x38, KEY_UNKNOWN }, /* TV/AV */ 549 { 0x0038, KEY_UNKNOWN }, /* TV/AV */
550 { 0x08, 0x0c, KEY_ZOOM }, 550 { 0x080c, KEY_ZOOM },
551 { 0x08, 0x00, KEY_0 }, 551 { 0x0800, KEY_0 },
552 { 0x00, 0x01, KEY_1 }, 552 { 0x0001, KEY_1 },
553 { 0x08, 0x02, KEY_2 }, 553 { 0x0802, KEY_2 },
554 { 0x00, 0x03, KEY_3 }, 554 { 0x0003, KEY_3 },
555 { 0x08, 0x04, KEY_4 }, 555 { 0x0804, KEY_4 },
556 { 0x00, 0x05, KEY_5 }, 556 { 0x0005, KEY_5 },
557 { 0x08, 0x06, KEY_6 }, 557 { 0x0806, KEY_6 },
558 { 0x00, 0x07, KEY_7 }, 558 { 0x0007, KEY_7 },
559 { 0x08, 0x08, KEY_8 }, 559 { 0x0808, KEY_8 },
560 { 0x00, 0x09, KEY_9 }, 560 { 0x0009, KEY_9 },
561 { 0x00, 0x0a, KEY_MUTE }, 561 { 0x000a, KEY_MUTE },
562 { 0x08, 0x29, KEY_BACK }, 562 { 0x0829, KEY_BACK },
563 { 0x00, 0x12, KEY_CHANNELUP }, 563 { 0x0012, KEY_CHANNELUP },
564 { 0x08, 0x13, KEY_CHANNELDOWN }, 564 { 0x0813, KEY_CHANNELDOWN },
565 { 0x00, 0x2b, KEY_VOLUMEUP }, 565 { 0x002b, KEY_VOLUMEUP },
566 { 0x08, 0x2c, KEY_VOLUMEDOWN }, 566 { 0x082c, KEY_VOLUMEDOWN },
567 { 0x00, 0x20, KEY_UP }, 567 { 0x0020, KEY_UP },
568 { 0x08, 0x21, KEY_DOWN }, 568 { 0x0821, KEY_DOWN },
569 { 0x00, 0x11, KEY_LEFT }, 569 { 0x0011, KEY_LEFT },
570 { 0x08, 0x10, KEY_RIGHT }, 570 { 0x0810, KEY_RIGHT },
571 { 0x00, 0x0d, KEY_OK }, 571 { 0x000d, KEY_OK },
572 { 0x08, 0x1f, KEY_RECORD }, 572 { 0x081f, KEY_RECORD },
573 { 0x00, 0x17, KEY_PLAYPAUSE }, 573 { 0x0017, KEY_PLAYPAUSE },
574 { 0x08, 0x16, KEY_PLAYPAUSE }, 574 { 0x0816, KEY_PLAYPAUSE },
575 { 0x00, 0x0b, KEY_STOP }, 575 { 0x000b, KEY_STOP },
576 { 0x08, 0x27, KEY_FASTFORWARD }, 576 { 0x0827, KEY_FASTFORWARD },
577 { 0x00, 0x26, KEY_REWIND }, 577 { 0x0026, KEY_REWIND },
578 { 0x08, 0x1e, KEY_UNKNOWN }, /* Time Shift */ 578 { 0x081e, KEY_UNKNOWN }, /* Time Shift */
579 { 0x00, 0x0e, KEY_UNKNOWN }, /* Snapshot */ 579 { 0x000e, KEY_UNKNOWN }, /* Snapshot */
580 { 0x08, 0x2d, KEY_UNKNOWN }, /* Mouse Cursor */ 580 { 0x082d, KEY_UNKNOWN }, /* Mouse Cursor */
581 { 0x00, 0x0f, KEY_UNKNOWN }, /* Minimize/Maximize */ 581 { 0x000f, KEY_UNKNOWN }, /* Minimize/Maximize */
582 { 0x08, 0x14, KEY_UNKNOWN }, /* Shuffle */ 582 { 0x0814, KEY_UNKNOWN }, /* Shuffle */
583 { 0x00, 0x25, KEY_POWER }, 583 { 0x0025, KEY_POWER },
584}; 584};
585 585
586static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) 586static int cxusb_dee1601_demod_init(struct dvb_frontend* fe)
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 7b0263f89de7..d1d6f4491403 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -509,7 +509,8 @@ static int dib0700_rc_query_legacy(struct dvb_usb_device *d, u32 *event,
509 return 0; 509 return 0;
510 } 510 }
511 for (i=0;i<d->props.rc_key_map_size; i++) { 511 for (i=0;i<d->props.rc_key_map_size; i++) {
512 if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) { 512 if (rc5_custom(&keymap[i]) == key[3-2] &&
513 rc5_data(&keymap[i]) == key[3-3]) {
513 st->rc_counter = 0; 514 st->rc_counter = 0;
514 *event = keymap[i].event; 515 *event = keymap[i].event;
515 *state = REMOTE_KEY_PRESSED; 516 *state = REMOTE_KEY_PRESSED;
@@ -522,7 +523,8 @@ static int dib0700_rc_query_legacy(struct dvb_usb_device *d, u32 *event,
522 default: { 523 default: {
523 /* RC-5 protocol changes toggle bit on new keypress */ 524 /* RC-5 protocol changes toggle bit on new keypress */
524 for (i = 0; i < d->props.rc_key_map_size; i++) { 525 for (i = 0; i < d->props.rc_key_map_size; i++) {
525 if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) { 526 if (rc5_custom(&keymap[i]) == key[3-2] &&
527 rc5_data(&keymap[i]) == key[3-3]) {
526 if (d->last_event == keymap[i].event && 528 if (d->last_event == keymap[i].event &&
527 key[3-1] == st->rc_toggle) { 529 key[3-1] == st->rc_toggle) {
528 st->rc_counter++; 530 st->rc_counter++;
@@ -616,8 +618,8 @@ static int dib0700_rc_query_v1_20(struct dvb_usb_device *d, u32 *event,
616 618
617 /* Find the key in the map */ 619 /* Find the key in the map */
618 for (i = 0; i < d->props.rc_key_map_size; i++) { 620 for (i = 0; i < d->props.rc_key_map_size; i++) {
619 if (keymap[i].custom == poll_reply.system_lsb && 621 if (rc5_custom(&keymap[i]) == poll_reply.system_lsb &&
620 keymap[i].data == poll_reply.data) { 622 rc5_data(&keymap[i]) == poll_reply.data) {
621 *event = keymap[i].event; 623 *event = keymap[i].event;
622 found = 1; 624 found = 1;
623 break; 625 break;
@@ -684,193 +686,193 @@ static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
684 686
685static struct dvb_usb_rc_key dib0700_rc_keys[] = { 687static struct dvb_usb_rc_key dib0700_rc_keys[] = {
686 /* Key codes for the tiny Pinnacle remote*/ 688 /* Key codes for the tiny Pinnacle remote*/
687 { 0x07, 0x00, KEY_MUTE }, 689 { 0x0700, KEY_MUTE },
688 { 0x07, 0x01, KEY_MENU }, // Pinnacle logo 690 { 0x0701, KEY_MENU }, /* Pinnacle logo */
689 { 0x07, 0x39, KEY_POWER }, 691 { 0x0739, KEY_POWER },
690 { 0x07, 0x03, KEY_VOLUMEUP }, 692 { 0x0703, KEY_VOLUMEUP },
691 { 0x07, 0x09, KEY_VOLUMEDOWN }, 693 { 0x0709, KEY_VOLUMEDOWN },
692 { 0x07, 0x06, KEY_CHANNELUP }, 694 { 0x0706, KEY_CHANNELUP },
693 { 0x07, 0x0c, KEY_CHANNELDOWN }, 695 { 0x070c, KEY_CHANNELDOWN },
694 { 0x07, 0x0f, KEY_1 }, 696 { 0x070f, KEY_1 },
695 { 0x07, 0x15, KEY_2 }, 697 { 0x0715, KEY_2 },
696 { 0x07, 0x10, KEY_3 }, 698 { 0x0710, KEY_3 },
697 { 0x07, 0x18, KEY_4 }, 699 { 0x0718, KEY_4 },
698 { 0x07, 0x1b, KEY_5 }, 700 { 0x071b, KEY_5 },
699 { 0x07, 0x1e, KEY_6 }, 701 { 0x071e, KEY_6 },
700 { 0x07, 0x11, KEY_7 }, 702 { 0x0711, KEY_7 },
701 { 0x07, 0x21, KEY_8 }, 703 { 0x0721, KEY_8 },
702 { 0x07, 0x12, KEY_9 }, 704 { 0x0712, KEY_9 },
703 { 0x07, 0x27, KEY_0 }, 705 { 0x0727, KEY_0 },
704 { 0x07, 0x24, KEY_SCREEN }, // 'Square' key 706 { 0x0724, KEY_SCREEN }, /* 'Square' key */
705 { 0x07, 0x2a, KEY_TEXT }, // 'T' key 707 { 0x072a, KEY_TEXT }, /* 'T' key */
706 { 0x07, 0x2d, KEY_REWIND }, 708 { 0x072d, KEY_REWIND },
707 { 0x07, 0x30, KEY_PLAY }, 709 { 0x0730, KEY_PLAY },
708 { 0x07, 0x33, KEY_FASTFORWARD }, 710 { 0x0733, KEY_FASTFORWARD },
709 { 0x07, 0x36, KEY_RECORD }, 711 { 0x0736, KEY_RECORD },
710 { 0x07, 0x3c, KEY_STOP }, 712 { 0x073c, KEY_STOP },
711 { 0x07, 0x3f, KEY_CANCEL }, // '?' key 713 { 0x073f, KEY_CANCEL }, /* '?' key */
712 /* Key codes for the Terratec Cinergy DT XS Diversity, similar to cinergyT2.c */ 714 /* Key codes for the Terratec Cinergy DT XS Diversity, similar to cinergyT2.c */
713 { 0xeb, 0x01, KEY_POWER }, 715 { 0xeb01, KEY_POWER },
714 { 0xeb, 0x02, KEY_1 }, 716 { 0xeb02, KEY_1 },
715 { 0xeb, 0x03, KEY_2 }, 717 { 0xeb03, KEY_2 },
716 { 0xeb, 0x04, KEY_3 }, 718 { 0xeb04, KEY_3 },
717 { 0xeb, 0x05, KEY_4 }, 719 { 0xeb05, KEY_4 },
718 { 0xeb, 0x06, KEY_5 }, 720 { 0xeb06, KEY_5 },
719 { 0xeb, 0x07, KEY_6 }, 721 { 0xeb07, KEY_6 },
720 { 0xeb, 0x08, KEY_7 }, 722 { 0xeb08, KEY_7 },
721 { 0xeb, 0x09, KEY_8 }, 723 { 0xeb09, KEY_8 },
722 { 0xeb, 0x0a, KEY_9 }, 724 { 0xeb0a, KEY_9 },
723 { 0xeb, 0x0b, KEY_VIDEO }, 725 { 0xeb0b, KEY_VIDEO },
724 { 0xeb, 0x0c, KEY_0 }, 726 { 0xeb0c, KEY_0 },
725 { 0xeb, 0x0d, KEY_REFRESH }, 727 { 0xeb0d, KEY_REFRESH },
726 { 0xeb, 0x0f, KEY_EPG }, 728 { 0xeb0f, KEY_EPG },
727 { 0xeb, 0x10, KEY_UP }, 729 { 0xeb10, KEY_UP },
728 { 0xeb, 0x11, KEY_LEFT }, 730 { 0xeb11, KEY_LEFT },
729 { 0xeb, 0x12, KEY_OK }, 731 { 0xeb12, KEY_OK },
730 { 0xeb, 0x13, KEY_RIGHT }, 732 { 0xeb13, KEY_RIGHT },
731 { 0xeb, 0x14, KEY_DOWN }, 733 { 0xeb14, KEY_DOWN },
732 { 0xeb, 0x16, KEY_INFO }, 734 { 0xeb16, KEY_INFO },
733 { 0xeb, 0x17, KEY_RED }, 735 { 0xeb17, KEY_RED },
734 { 0xeb, 0x18, KEY_GREEN }, 736 { 0xeb18, KEY_GREEN },
735 { 0xeb, 0x19, KEY_YELLOW }, 737 { 0xeb19, KEY_YELLOW },
736 { 0xeb, 0x1a, KEY_BLUE }, 738 { 0xeb1a, KEY_BLUE },
737 { 0xeb, 0x1b, KEY_CHANNELUP }, 739 { 0xeb1b, KEY_CHANNELUP },
738 { 0xeb, 0x1c, KEY_VOLUMEUP }, 740 { 0xeb1c, KEY_VOLUMEUP },
739 { 0xeb, 0x1d, KEY_MUTE }, 741 { 0xeb1d, KEY_MUTE },
740 { 0xeb, 0x1e, KEY_VOLUMEDOWN }, 742 { 0xeb1e, KEY_VOLUMEDOWN },
741 { 0xeb, 0x1f, KEY_CHANNELDOWN }, 743 { 0xeb1f, KEY_CHANNELDOWN },
742 { 0xeb, 0x40, KEY_PAUSE }, 744 { 0xeb40, KEY_PAUSE },
743 { 0xeb, 0x41, KEY_HOME }, 745 { 0xeb41, KEY_HOME },
744 { 0xeb, 0x42, KEY_MENU }, /* DVD Menu */ 746 { 0xeb42, KEY_MENU }, /* DVD Menu */
745 { 0xeb, 0x43, KEY_SUBTITLE }, 747 { 0xeb43, KEY_SUBTITLE },
746 { 0xeb, 0x44, KEY_TEXT }, /* Teletext */ 748 { 0xeb44, KEY_TEXT }, /* Teletext */
747 { 0xeb, 0x45, KEY_DELETE }, 749 { 0xeb45, KEY_DELETE },
748 { 0xeb, 0x46, KEY_TV }, 750 { 0xeb46, KEY_TV },
749 { 0xeb, 0x47, KEY_DVD }, 751 { 0xeb47, KEY_DVD },
750 { 0xeb, 0x48, KEY_STOP }, 752 { 0xeb48, KEY_STOP },
751 { 0xeb, 0x49, KEY_VIDEO }, 753 { 0xeb49, KEY_VIDEO },
752 { 0xeb, 0x4a, KEY_AUDIO }, /* Music */ 754 { 0xeb4a, KEY_AUDIO }, /* Music */
753 { 0xeb, 0x4b, KEY_SCREEN }, /* Pic */ 755 { 0xeb4b, KEY_SCREEN }, /* Pic */
754 { 0xeb, 0x4c, KEY_PLAY }, 756 { 0xeb4c, KEY_PLAY },
755 { 0xeb, 0x4d, KEY_BACK }, 757 { 0xeb4d, KEY_BACK },
756 { 0xeb, 0x4e, KEY_REWIND }, 758 { 0xeb4e, KEY_REWIND },
757 { 0xeb, 0x4f, KEY_FASTFORWARD }, 759 { 0xeb4f, KEY_FASTFORWARD },
758 { 0xeb, 0x54, KEY_PREVIOUS }, 760 { 0xeb54, KEY_PREVIOUS },
759 { 0xeb, 0x58, KEY_RECORD }, 761 { 0xeb58, KEY_RECORD },
760 { 0xeb, 0x5c, KEY_NEXT }, 762 { 0xeb5c, KEY_NEXT },
761 763
762 /* Key codes for the Haupauge WinTV Nova-TD, copied from nova-t-usb2.c (Nova-T USB2) */ 764 /* Key codes for the Haupauge WinTV Nova-TD, copied from nova-t-usb2.c (Nova-T USB2) */
763 { 0x1e, 0x00, KEY_0 }, 765 { 0x1e00, KEY_0 },
764 { 0x1e, 0x01, KEY_1 }, 766 { 0x1e01, KEY_1 },
765 { 0x1e, 0x02, KEY_2 }, 767 { 0x1e02, KEY_2 },
766 { 0x1e, 0x03, KEY_3 }, 768 { 0x1e03, KEY_3 },
767 { 0x1e, 0x04, KEY_4 }, 769 { 0x1e04, KEY_4 },
768 { 0x1e, 0x05, KEY_5 }, 770 { 0x1e05, KEY_5 },
769 { 0x1e, 0x06, KEY_6 }, 771 { 0x1e06, KEY_6 },
770 { 0x1e, 0x07, KEY_7 }, 772 { 0x1e07, KEY_7 },
771 { 0x1e, 0x08, KEY_8 }, 773 { 0x1e08, KEY_8 },
772 { 0x1e, 0x09, KEY_9 }, 774 { 0x1e09, KEY_9 },
773 { 0x1e, 0x0a, KEY_KPASTERISK }, 775 { 0x1e0a, KEY_KPASTERISK },
774 { 0x1e, 0x0b, KEY_RED }, 776 { 0x1e0b, KEY_RED },
775 { 0x1e, 0x0c, KEY_RADIO }, 777 { 0x1e0c, KEY_RADIO },
776 { 0x1e, 0x0d, KEY_MENU }, 778 { 0x1e0d, KEY_MENU },
777 { 0x1e, 0x0e, KEY_GRAVE }, /* # */ 779 { 0x1e0e, KEY_GRAVE }, /* # */
778 { 0x1e, 0x0f, KEY_MUTE }, 780 { 0x1e0f, KEY_MUTE },
779 { 0x1e, 0x10, KEY_VOLUMEUP }, 781 { 0x1e10, KEY_VOLUMEUP },
780 { 0x1e, 0x11, KEY_VOLUMEDOWN }, 782 { 0x1e11, KEY_VOLUMEDOWN },
781 { 0x1e, 0x12, KEY_CHANNEL }, 783 { 0x1e12, KEY_CHANNEL },
782 { 0x1e, 0x14, KEY_UP }, 784 { 0x1e14, KEY_UP },
783 { 0x1e, 0x15, KEY_DOWN }, 785 { 0x1e15, KEY_DOWN },
784 { 0x1e, 0x16, KEY_LEFT }, 786 { 0x1e16, KEY_LEFT },
785 { 0x1e, 0x17, KEY_RIGHT }, 787 { 0x1e17, KEY_RIGHT },
786 { 0x1e, 0x18, KEY_VIDEO }, 788 { 0x1e18, KEY_VIDEO },
787 { 0x1e, 0x19, KEY_AUDIO }, 789 { 0x1e19, KEY_AUDIO },
788 { 0x1e, 0x1a, KEY_MEDIA }, 790 { 0x1e1a, KEY_MEDIA },
789 { 0x1e, 0x1b, KEY_EPG }, 791 { 0x1e1b, KEY_EPG },
790 { 0x1e, 0x1c, KEY_TV }, 792 { 0x1e1c, KEY_TV },
791 { 0x1e, 0x1e, KEY_NEXT }, 793 { 0x1e1e, KEY_NEXT },
792 { 0x1e, 0x1f, KEY_BACK }, 794 { 0x1e1f, KEY_BACK },
793 { 0x1e, 0x20, KEY_CHANNELUP }, 795 { 0x1e20, KEY_CHANNELUP },
794 { 0x1e, 0x21, KEY_CHANNELDOWN }, 796 { 0x1e21, KEY_CHANNELDOWN },
795 { 0x1e, 0x24, KEY_LAST }, /* Skip backwards */ 797 { 0x1e24, KEY_LAST }, /* Skip backwards */
796 { 0x1e, 0x25, KEY_OK }, 798 { 0x1e25, KEY_OK },
797 { 0x1e, 0x29, KEY_BLUE}, 799 { 0x1e29, KEY_BLUE},
798 { 0x1e, 0x2e, KEY_GREEN }, 800 { 0x1e2e, KEY_GREEN },
799 { 0x1e, 0x30, KEY_PAUSE }, 801 { 0x1e30, KEY_PAUSE },
800 { 0x1e, 0x32, KEY_REWIND }, 802 { 0x1e32, KEY_REWIND },
801 { 0x1e, 0x34, KEY_FASTFORWARD }, 803 { 0x1e34, KEY_FASTFORWARD },
802 { 0x1e, 0x35, KEY_PLAY }, 804 { 0x1e35, KEY_PLAY },
803 { 0x1e, 0x36, KEY_STOP }, 805 { 0x1e36, KEY_STOP },
804 { 0x1e, 0x37, KEY_RECORD }, 806 { 0x1e37, KEY_RECORD },
805 { 0x1e, 0x38, KEY_YELLOW }, 807 { 0x1e38, KEY_YELLOW },
806 { 0x1e, 0x3b, KEY_GOTO }, 808 { 0x1e3b, KEY_GOTO },
807 { 0x1e, 0x3d, KEY_POWER }, 809 { 0x1e3d, KEY_POWER },
808 810
809 /* Key codes for the Leadtek Winfast DTV Dongle */ 811 /* Key codes for the Leadtek Winfast DTV Dongle */
810 { 0x00, 0x42, KEY_POWER }, 812 { 0x0042, KEY_POWER },
811 { 0x07, 0x7c, KEY_TUNER }, 813 { 0x077c, KEY_TUNER },
812 { 0x0f, 0x4e, KEY_PRINT }, /* PREVIEW */ 814 { 0x0f4e, KEY_PRINT }, /* PREVIEW */
813 { 0x08, 0x40, KEY_SCREEN }, /* full screen toggle*/ 815 { 0x0840, KEY_SCREEN }, /* full screen toggle*/
814 { 0x0f, 0x71, KEY_DOT }, /* frequency */ 816 { 0x0f71, KEY_DOT }, /* frequency */
815 { 0x07, 0x43, KEY_0 }, 817 { 0x0743, KEY_0 },
816 { 0x0c, 0x41, KEY_1 }, 818 { 0x0c41, KEY_1 },
817 { 0x04, 0x43, KEY_2 }, 819 { 0x0443, KEY_2 },
818 { 0x0b, 0x7f, KEY_3 }, 820 { 0x0b7f, KEY_3 },
819 { 0x0e, 0x41, KEY_4 }, 821 { 0x0e41, KEY_4 },
820 { 0x06, 0x43, KEY_5 }, 822 { 0x0643, KEY_5 },
821 { 0x09, 0x7f, KEY_6 }, 823 { 0x097f, KEY_6 },
822 { 0x0d, 0x7e, KEY_7 }, 824 { 0x0d7e, KEY_7 },
823 { 0x05, 0x7c, KEY_8 }, 825 { 0x057c, KEY_8 },
824 { 0x0a, 0x40, KEY_9 }, 826 { 0x0a40, KEY_9 },
825 { 0x0e, 0x4e, KEY_CLEAR }, 827 { 0x0e4e, KEY_CLEAR },
826 { 0x04, 0x7c, KEY_CHANNEL }, /* show channel number */ 828 { 0x047c, KEY_CHANNEL }, /* show channel number */
827 { 0x0f, 0x41, KEY_LAST }, /* recall */ 829 { 0x0f41, KEY_LAST }, /* recall */
828 { 0x03, 0x42, KEY_MUTE }, 830 { 0x0342, KEY_MUTE },
829 { 0x06, 0x4c, KEY_RESERVED }, /* PIP button*/ 831 { 0x064c, KEY_RESERVED }, /* PIP button*/
830 { 0x01, 0x72, KEY_SHUFFLE }, /* SNAPSHOT */ 832 { 0x0172, KEY_SHUFFLE }, /* SNAPSHOT */
831 { 0x0c, 0x4e, KEY_PLAYPAUSE }, /* TIMESHIFT */ 833 { 0x0c4e, KEY_PLAYPAUSE }, /* TIMESHIFT */
832 { 0x0b, 0x70, KEY_RECORD }, 834 { 0x0b70, KEY_RECORD },
833 { 0x03, 0x7d, KEY_VOLUMEUP }, 835 { 0x037d, KEY_VOLUMEUP },
834 { 0x01, 0x7d, KEY_VOLUMEDOWN }, 836 { 0x017d, KEY_VOLUMEDOWN },
835 { 0x02, 0x42, KEY_CHANNELUP }, 837 { 0x0242, KEY_CHANNELUP },
836 { 0x00, 0x7d, KEY_CHANNELDOWN }, 838 { 0x007d, KEY_CHANNELDOWN },
837 839
838 /* Key codes for Nova-TD "credit card" remote control. */ 840 /* Key codes for Nova-TD "credit card" remote control. */
839 { 0x1d, 0x00, KEY_0 }, 841 { 0x1d00, KEY_0 },
840 { 0x1d, 0x01, KEY_1 }, 842 { 0x1d01, KEY_1 },
841 { 0x1d, 0x02, KEY_2 }, 843 { 0x1d02, KEY_2 },
842 { 0x1d, 0x03, KEY_3 }, 844 { 0x1d03, KEY_3 },
843 { 0x1d, 0x04, KEY_4 }, 845 { 0x1d04, KEY_4 },
844 { 0x1d, 0x05, KEY_5 }, 846 { 0x1d05, KEY_5 },
845 { 0x1d, 0x06, KEY_6 }, 847 { 0x1d06, KEY_6 },
846 { 0x1d, 0x07, KEY_7 }, 848 { 0x1d07, KEY_7 },
847 { 0x1d, 0x08, KEY_8 }, 849 { 0x1d08, KEY_8 },
848 { 0x1d, 0x09, KEY_9 }, 850 { 0x1d09, KEY_9 },
849 { 0x1d, 0x0a, KEY_TEXT }, 851 { 0x1d0a, KEY_TEXT },
850 { 0x1d, 0x0d, KEY_MENU }, 852 { 0x1d0d, KEY_MENU },
851 { 0x1d, 0x0f, KEY_MUTE }, 853 { 0x1d0f, KEY_MUTE },
852 { 0x1d, 0x10, KEY_VOLUMEUP }, 854 { 0x1d10, KEY_VOLUMEUP },
853 { 0x1d, 0x11, KEY_VOLUMEDOWN }, 855 { 0x1d11, KEY_VOLUMEDOWN },
854 { 0x1d, 0x12, KEY_CHANNEL }, 856 { 0x1d12, KEY_CHANNEL },
855 { 0x1d, 0x14, KEY_UP }, 857 { 0x1d14, KEY_UP },
856 { 0x1d, 0x15, KEY_DOWN }, 858 { 0x1d15, KEY_DOWN },
857 { 0x1d, 0x16, KEY_LEFT }, 859 { 0x1d16, KEY_LEFT },
858 { 0x1d, 0x17, KEY_RIGHT }, 860 { 0x1d17, KEY_RIGHT },
859 { 0x1d, 0x1c, KEY_TV }, 861 { 0x1d1c, KEY_TV },
860 { 0x1d, 0x1e, KEY_NEXT }, 862 { 0x1d1e, KEY_NEXT },
861 { 0x1d, 0x1f, KEY_BACK }, 863 { 0x1d1f, KEY_BACK },
862 { 0x1d, 0x20, KEY_CHANNELUP }, 864 { 0x1d20, KEY_CHANNELUP },
863 { 0x1d, 0x21, KEY_CHANNELDOWN }, 865 { 0x1d21, KEY_CHANNELDOWN },
864 { 0x1d, 0x24, KEY_LAST }, 866 { 0x1d24, KEY_LAST },
865 { 0x1d, 0x25, KEY_OK }, 867 { 0x1d25, KEY_OK },
866 { 0x1d, 0x30, KEY_PAUSE }, 868 { 0x1d30, KEY_PAUSE },
867 { 0x1d, 0x32, KEY_REWIND }, 869 { 0x1d32, KEY_REWIND },
868 { 0x1d, 0x34, KEY_FASTFORWARD }, 870 { 0x1d34, KEY_FASTFORWARD },
869 { 0x1d, 0x35, KEY_PLAY }, 871 { 0x1d35, KEY_PLAY },
870 { 0x1d, 0x36, KEY_STOP }, 872 { 0x1d36, KEY_STOP },
871 { 0x1d, 0x37, KEY_RECORD }, 873 { 0x1d37, KEY_RECORD },
872 { 0x1d, 0x3b, KEY_GOTO }, 874 { 0x1d3b, KEY_GOTO },
873 { 0x1d, 0x3d, KEY_POWER }, 875 { 0x1d3d, KEY_POWER },
874}; 876};
875 877
876/* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */ 878/* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */
diff --git a/drivers/media/dvb/dvb-usb/dibusb-common.c b/drivers/media/dvb/dvb-usb/dibusb-common.c
index 8dbad1ec53c4..da34979b5337 100644
--- a/drivers/media/dvb/dvb-usb/dibusb-common.c
+++ b/drivers/media/dvb/dvb-usb/dibusb-common.c
@@ -318,132 +318,132 @@ EXPORT_SYMBOL(dibusb_dib3000mc_tuner_attach);
318 */ 318 */
319struct dvb_usb_rc_key dibusb_rc_keys[] = { 319struct dvb_usb_rc_key dibusb_rc_keys[] = {
320 /* Key codes for the little Artec T1/Twinhan/HAMA/ remote. */ 320 /* Key codes for the little Artec T1/Twinhan/HAMA/ remote. */
321 { 0x00, 0x16, KEY_POWER }, 321 { 0x0016, KEY_POWER },
322 { 0x00, 0x10, KEY_MUTE }, 322 { 0x0010, KEY_MUTE },
323 { 0x00, 0x03, KEY_1 }, 323 { 0x0003, KEY_1 },
324 { 0x00, 0x01, KEY_2 }, 324 { 0x0001, KEY_2 },
325 { 0x00, 0x06, KEY_3 }, 325 { 0x0006, KEY_3 },
326 { 0x00, 0x09, KEY_4 }, 326 { 0x0009, KEY_4 },
327 { 0x00, 0x1d, KEY_5 }, 327 { 0x001d, KEY_5 },
328 { 0x00, 0x1f, KEY_6 }, 328 { 0x001f, KEY_6 },
329 { 0x00, 0x0d, KEY_7 }, 329 { 0x000d, KEY_7 },
330 { 0x00, 0x19, KEY_8 }, 330 { 0x0019, KEY_8 },
331 { 0x00, 0x1b, KEY_9 }, 331 { 0x001b, KEY_9 },
332 { 0x00, 0x15, KEY_0 }, 332 { 0x0015, KEY_0 },
333 { 0x00, 0x05, KEY_CHANNELUP }, 333 { 0x0005, KEY_CHANNELUP },
334 { 0x00, 0x02, KEY_CHANNELDOWN }, 334 { 0x0002, KEY_CHANNELDOWN },
335 { 0x00, 0x1e, KEY_VOLUMEUP }, 335 { 0x001e, KEY_VOLUMEUP },
336 { 0x00, 0x0a, KEY_VOLUMEDOWN }, 336 { 0x000a, KEY_VOLUMEDOWN },
337 { 0x00, 0x11, KEY_RECORD }, 337 { 0x0011, KEY_RECORD },
338 { 0x00, 0x17, KEY_FAVORITES }, /* Heart symbol - Channel list. */ 338 { 0x0017, KEY_FAVORITES }, /* Heart symbol - Channel list. */
339 { 0x00, 0x14, KEY_PLAY }, 339 { 0x0014, KEY_PLAY },
340 { 0x00, 0x1a, KEY_STOP }, 340 { 0x001a, KEY_STOP },
341 { 0x00, 0x40, KEY_REWIND }, 341 { 0x0040, KEY_REWIND },
342 { 0x00, 0x12, KEY_FASTFORWARD }, 342 { 0x0012, KEY_FASTFORWARD },
343 { 0x00, 0x0e, KEY_PREVIOUS }, /* Recall - Previous channel. */ 343 { 0x000e, KEY_PREVIOUS }, /* Recall - Previous channel. */
344 { 0x00, 0x4c, KEY_PAUSE }, 344 { 0x004c, KEY_PAUSE },
345 { 0x00, 0x4d, KEY_SCREEN }, /* Full screen mode. */ 345 { 0x004d, KEY_SCREEN }, /* Full screen mode. */
346 { 0x00, 0x54, KEY_AUDIO }, /* MTS - Switch to secondary audio. */ 346 { 0x0054, KEY_AUDIO }, /* MTS - Switch to secondary audio. */
347 /* additional keys TwinHan VisionPlus, the Artec seemingly not have */ 347 /* additional keys TwinHan VisionPlus, the Artec seemingly not have */
348 { 0x00, 0x0c, KEY_CANCEL }, /* Cancel */ 348 { 0x000c, KEY_CANCEL }, /* Cancel */
349 { 0x00, 0x1c, KEY_EPG }, /* EPG */ 349 { 0x001c, KEY_EPG }, /* EPG */
350 { 0x00, 0x00, KEY_TAB }, /* Tab */ 350 { 0x0000, KEY_TAB }, /* Tab */
351 { 0x00, 0x48, KEY_INFO }, /* Preview */ 351 { 0x0048, KEY_INFO }, /* Preview */
352 { 0x00, 0x04, KEY_LIST }, /* RecordList */ 352 { 0x0004, KEY_LIST }, /* RecordList */
353 { 0x00, 0x0f, KEY_TEXT }, /* Teletext */ 353 { 0x000f, KEY_TEXT }, /* Teletext */
354 /* Key codes for the KWorld/ADSTech/JetWay remote. */ 354 /* Key codes for the KWorld/ADSTech/JetWay remote. */
355 { 0x86, 0x12, KEY_POWER }, 355 { 0x8612, KEY_POWER },
356 { 0x86, 0x0f, KEY_SELECT }, /* source */ 356 { 0x860f, KEY_SELECT }, /* source */
357 { 0x86, 0x0c, KEY_UNKNOWN }, /* scan */ 357 { 0x860c, KEY_UNKNOWN }, /* scan */
358 { 0x86, 0x0b, KEY_EPG }, 358 { 0x860b, KEY_EPG },
359 { 0x86, 0x10, KEY_MUTE }, 359 { 0x8610, KEY_MUTE },
360 { 0x86, 0x01, KEY_1 }, 360 { 0x8601, KEY_1 },
361 { 0x86, 0x02, KEY_2 }, 361 { 0x8602, KEY_2 },
362 { 0x86, 0x03, KEY_3 }, 362 { 0x8603, KEY_3 },
363 { 0x86, 0x04, KEY_4 }, 363 { 0x8604, KEY_4 },
364 { 0x86, 0x05, KEY_5 }, 364 { 0x8605, KEY_5 },
365 { 0x86, 0x06, KEY_6 }, 365 { 0x8606, KEY_6 },
366 { 0x86, 0x07, KEY_7 }, 366 { 0x8607, KEY_7 },
367 { 0x86, 0x08, KEY_8 }, 367 { 0x8608, KEY_8 },
368 { 0x86, 0x09, KEY_9 }, 368 { 0x8609, KEY_9 },
369 { 0x86, 0x0a, KEY_0 }, 369 { 0x860a, KEY_0 },
370 { 0x86, 0x18, KEY_ZOOM }, 370 { 0x8618, KEY_ZOOM },
371 { 0x86, 0x1c, KEY_UNKNOWN }, /* preview */ 371 { 0x861c, KEY_UNKNOWN }, /* preview */
372 { 0x86, 0x13, KEY_UNKNOWN }, /* snap */ 372 { 0x8613, KEY_UNKNOWN }, /* snap */
373 { 0x86, 0x00, KEY_UNDO }, 373 { 0x8600, KEY_UNDO },
374 { 0x86, 0x1d, KEY_RECORD }, 374 { 0x861d, KEY_RECORD },
375 { 0x86, 0x0d, KEY_STOP }, 375 { 0x860d, KEY_STOP },
376 { 0x86, 0x0e, KEY_PAUSE }, 376 { 0x860e, KEY_PAUSE },
377 { 0x86, 0x16, KEY_PLAY }, 377 { 0x8616, KEY_PLAY },
378 { 0x86, 0x11, KEY_BACK }, 378 { 0x8611, KEY_BACK },
379 { 0x86, 0x19, KEY_FORWARD }, 379 { 0x8619, KEY_FORWARD },
380 { 0x86, 0x14, KEY_UNKNOWN }, /* pip */ 380 { 0x8614, KEY_UNKNOWN }, /* pip */
381 { 0x86, 0x15, KEY_ESC }, 381 { 0x8615, KEY_ESC },
382 { 0x86, 0x1a, KEY_UP }, 382 { 0x861a, KEY_UP },
383 { 0x86, 0x1e, KEY_DOWN }, 383 { 0x861e, KEY_DOWN },
384 { 0x86, 0x1f, KEY_LEFT }, 384 { 0x861f, KEY_LEFT },
385 { 0x86, 0x1b, KEY_RIGHT }, 385 { 0x861b, KEY_RIGHT },
386 386
387 /* Key codes for the DiBcom MOD3000 remote. */ 387 /* Key codes for the DiBcom MOD3000 remote. */
388 { 0x80, 0x00, KEY_MUTE }, 388 { 0x8000, KEY_MUTE },
389 { 0x80, 0x01, KEY_TEXT }, 389 { 0x8001, KEY_TEXT },
390 { 0x80, 0x02, KEY_HOME }, 390 { 0x8002, KEY_HOME },
391 { 0x80, 0x03, KEY_POWER }, 391 { 0x8003, KEY_POWER },
392 392
393 { 0x80, 0x04, KEY_RED }, 393 { 0x8004, KEY_RED },
394 { 0x80, 0x05, KEY_GREEN }, 394 { 0x8005, KEY_GREEN },
395 { 0x80, 0x06, KEY_YELLOW }, 395 { 0x8006, KEY_YELLOW },
396 { 0x80, 0x07, KEY_BLUE }, 396 { 0x8007, KEY_BLUE },
397 397
398 { 0x80, 0x08, KEY_DVD }, 398 { 0x8008, KEY_DVD },
399 { 0x80, 0x09, KEY_AUDIO }, 399 { 0x8009, KEY_AUDIO },
400 { 0x80, 0x0a, KEY_MEDIA }, /* Pictures */ 400 { 0x800a, KEY_MEDIA }, /* Pictures */
401 { 0x80, 0x0b, KEY_VIDEO }, 401 { 0x800b, KEY_VIDEO },
402 402
403 { 0x80, 0x0c, KEY_BACK }, 403 { 0x800c, KEY_BACK },
404 { 0x80, 0x0d, KEY_UP }, 404 { 0x800d, KEY_UP },
405 { 0x80, 0x0e, KEY_RADIO }, 405 { 0x800e, KEY_RADIO },
406 { 0x80, 0x0f, KEY_EPG }, 406 { 0x800f, KEY_EPG },
407 407
408 { 0x80, 0x10, KEY_LEFT }, 408 { 0x8010, KEY_LEFT },
409 { 0x80, 0x11, KEY_OK }, 409 { 0x8011, KEY_OK },
410 { 0x80, 0x12, KEY_RIGHT }, 410 { 0x8012, KEY_RIGHT },
411 { 0x80, 0x13, KEY_UNKNOWN }, /* SAP */ 411 { 0x8013, KEY_UNKNOWN }, /* SAP */
412 412
413 { 0x80, 0x14, KEY_TV }, 413 { 0x8014, KEY_TV },
414 { 0x80, 0x15, KEY_DOWN }, 414 { 0x8015, KEY_DOWN },
415 { 0x80, 0x16, KEY_MENU }, /* DVD Menu */ 415 { 0x8016, KEY_MENU }, /* DVD Menu */
416 { 0x80, 0x17, KEY_LAST }, 416 { 0x8017, KEY_LAST },
417 417
418 { 0x80, 0x18, KEY_RECORD }, 418 { 0x8018, KEY_RECORD },
419 { 0x80, 0x19, KEY_STOP }, 419 { 0x8019, KEY_STOP },
420 { 0x80, 0x1a, KEY_PAUSE }, 420 { 0x801a, KEY_PAUSE },
421 { 0x80, 0x1b, KEY_PLAY }, 421 { 0x801b, KEY_PLAY },
422 422
423 { 0x80, 0x1c, KEY_PREVIOUS }, 423 { 0x801c, KEY_PREVIOUS },
424 { 0x80, 0x1d, KEY_REWIND }, 424 { 0x801d, KEY_REWIND },
425 { 0x80, 0x1e, KEY_FASTFORWARD }, 425 { 0x801e, KEY_FASTFORWARD },
426 { 0x80, 0x1f, KEY_NEXT}, 426 { 0x801f, KEY_NEXT},
427 427
428 { 0x80, 0x40, KEY_1 }, 428 { 0x8040, KEY_1 },
429 { 0x80, 0x41, KEY_2 }, 429 { 0x8041, KEY_2 },
430 { 0x80, 0x42, KEY_3 }, 430 { 0x8042, KEY_3 },
431 { 0x80, 0x43, KEY_CHANNELUP }, 431 { 0x8043, KEY_CHANNELUP },
432 432
433 { 0x80, 0x44, KEY_4 }, 433 { 0x8044, KEY_4 },
434 { 0x80, 0x45, KEY_5 }, 434 { 0x8045, KEY_5 },
435 { 0x80, 0x46, KEY_6 }, 435 { 0x8046, KEY_6 },
436 { 0x80, 0x47, KEY_CHANNELDOWN }, 436 { 0x8047, KEY_CHANNELDOWN },
437 437
438 { 0x80, 0x48, KEY_7 }, 438 { 0x8048, KEY_7 },
439 { 0x80, 0x49, KEY_8 }, 439 { 0x8049, KEY_8 },
440 { 0x80, 0x4a, KEY_9 }, 440 { 0x804a, KEY_9 },
441 { 0x80, 0x4b, KEY_VOLUMEUP }, 441 { 0x804b, KEY_VOLUMEUP },
442 442
443 { 0x80, 0x4c, KEY_CLEAR }, 443 { 0x804c, KEY_CLEAR },
444 { 0x80, 0x4d, KEY_0 }, 444 { 0x804d, KEY_0 },
445 { 0x80, 0x4e, KEY_ENTER }, 445 { 0x804e, KEY_ENTER },
446 { 0x80, 0x4f, KEY_VOLUMEDOWN }, 446 { 0x804f, KEY_VOLUMEDOWN },
447}; 447};
448EXPORT_SYMBOL(dibusb_rc_keys); 448EXPORT_SYMBOL(dibusb_rc_keys);
449 449
diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c
index b545cf3eab2e..955147d00756 100644
--- a/drivers/media/dvb/dvb-usb/digitv.c
+++ b/drivers/media/dvb/dvb-usb/digitv.c
@@ -162,61 +162,61 @@ static int digitv_tuner_attach(struct dvb_usb_adapter *adap)
162} 162}
163 163
164static struct dvb_usb_rc_key digitv_rc_keys[] = { 164static struct dvb_usb_rc_key digitv_rc_keys[] = {
165 { 0x5f, 0x55, KEY_0 }, 165 { 0x5f55, KEY_0 },
166 { 0x6f, 0x55, KEY_1 }, 166 { 0x6f55, KEY_1 },
167 { 0x9f, 0x55, KEY_2 }, 167 { 0x9f55, KEY_2 },
168 { 0xaf, 0x55, KEY_3 }, 168 { 0xaf55, KEY_3 },
169 { 0x5f, 0x56, KEY_4 }, 169 { 0x5f56, KEY_4 },
170 { 0x6f, 0x56, KEY_5 }, 170 { 0x6f56, KEY_5 },
171 { 0x9f, 0x56, KEY_6 }, 171 { 0x9f56, KEY_6 },
172 { 0xaf, 0x56, KEY_7 }, 172 { 0xaf56, KEY_7 },
173 { 0x5f, 0x59, KEY_8 }, 173 { 0x5f59, KEY_8 },
174 { 0x6f, 0x59, KEY_9 }, 174 { 0x6f59, KEY_9 },
175 { 0x9f, 0x59, KEY_TV }, 175 { 0x9f59, KEY_TV },
176 { 0xaf, 0x59, KEY_AUX }, 176 { 0xaf59, KEY_AUX },
177 { 0x5f, 0x5a, KEY_DVD }, 177 { 0x5f5a, KEY_DVD },
178 { 0x6f, 0x5a, KEY_POWER }, 178 { 0x6f5a, KEY_POWER },
179 { 0x9f, 0x5a, KEY_MHP }, /* labelled 'Picture' */ 179 { 0x9f5a, KEY_MHP }, /* labelled 'Picture' */
180 { 0xaf, 0x5a, KEY_AUDIO }, 180 { 0xaf5a, KEY_AUDIO },
181 { 0x5f, 0x65, KEY_INFO }, 181 { 0x5f65, KEY_INFO },
182 { 0x6f, 0x65, KEY_F13 }, /* 16:9 */ 182 { 0x6f65, KEY_F13 }, /* 16:9 */
183 { 0x9f, 0x65, KEY_F14 }, /* 14:9 */ 183 { 0x9f65, KEY_F14 }, /* 14:9 */
184 { 0xaf, 0x65, KEY_EPG }, 184 { 0xaf65, KEY_EPG },
185 { 0x5f, 0x66, KEY_EXIT }, 185 { 0x5f66, KEY_EXIT },
186 { 0x6f, 0x66, KEY_MENU }, 186 { 0x6f66, KEY_MENU },
187 { 0x9f, 0x66, KEY_UP }, 187 { 0x9f66, KEY_UP },
188 { 0xaf, 0x66, KEY_DOWN }, 188 { 0xaf66, KEY_DOWN },
189 { 0x5f, 0x69, KEY_LEFT }, 189 { 0x5f69, KEY_LEFT },
190 { 0x6f, 0x69, KEY_RIGHT }, 190 { 0x6f69, KEY_RIGHT },
191 { 0x9f, 0x69, KEY_ENTER }, 191 { 0x9f69, KEY_ENTER },
192 { 0xaf, 0x69, KEY_CHANNELUP }, 192 { 0xaf69, KEY_CHANNELUP },
193 { 0x5f, 0x6a, KEY_CHANNELDOWN }, 193 { 0x5f6a, KEY_CHANNELDOWN },
194 { 0x6f, 0x6a, KEY_VOLUMEUP }, 194 { 0x6f6a, KEY_VOLUMEUP },
195 { 0x9f, 0x6a, KEY_VOLUMEDOWN }, 195 { 0x9f6a, KEY_VOLUMEDOWN },
196 { 0xaf, 0x6a, KEY_RED }, 196 { 0xaf6a, KEY_RED },
197 { 0x5f, 0x95, KEY_GREEN }, 197 { 0x5f95, KEY_GREEN },
198 { 0x6f, 0x95, KEY_YELLOW }, 198 { 0x6f95, KEY_YELLOW },
199 { 0x9f, 0x95, KEY_BLUE }, 199 { 0x9f95, KEY_BLUE },
200 { 0xaf, 0x95, KEY_SUBTITLE }, 200 { 0xaf95, KEY_SUBTITLE },
201 { 0x5f, 0x96, KEY_F15 }, /* AD */ 201 { 0x5f96, KEY_F15 }, /* AD */
202 { 0x6f, 0x96, KEY_TEXT }, 202 { 0x6f96, KEY_TEXT },
203 { 0x9f, 0x96, KEY_MUTE }, 203 { 0x9f96, KEY_MUTE },
204 { 0xaf, 0x96, KEY_REWIND }, 204 { 0xaf96, KEY_REWIND },
205 { 0x5f, 0x99, KEY_STOP }, 205 { 0x5f99, KEY_STOP },
206 { 0x6f, 0x99, KEY_PLAY }, 206 { 0x6f99, KEY_PLAY },
207 { 0x9f, 0x99, KEY_FASTFORWARD }, 207 { 0x9f99, KEY_FASTFORWARD },
208 { 0xaf, 0x99, KEY_F16 }, /* chapter */ 208 { 0xaf99, KEY_F16 }, /* chapter */
209 { 0x5f, 0x9a, KEY_PAUSE }, 209 { 0x5f9a, KEY_PAUSE },
210 { 0x6f, 0x9a, KEY_PLAY }, 210 { 0x6f9a, KEY_PLAY },
211 { 0x9f, 0x9a, KEY_RECORD }, 211 { 0x9f9a, KEY_RECORD },
212 { 0xaf, 0x9a, KEY_F17 }, /* picture in picture */ 212 { 0xaf9a, KEY_F17 }, /* picture in picture */
213 { 0x5f, 0xa5, KEY_KPPLUS }, /* zoom in */ 213 { 0x5fa5, KEY_KPPLUS }, /* zoom in */
214 { 0x6f, 0xa5, KEY_KPMINUS }, /* zoom out */ 214 { 0x6fa5, KEY_KPMINUS }, /* zoom out */
215 { 0x9f, 0xa5, KEY_F18 }, /* capture */ 215 { 0x9fa5, KEY_F18 }, /* capture */
216 { 0xaf, 0xa5, KEY_F19 }, /* web */ 216 { 0xafa5, KEY_F19 }, /* web */
217 { 0x5f, 0xa6, KEY_EMAIL }, 217 { 0x5fa6, KEY_EMAIL },
218 { 0x6f, 0xa6, KEY_PHONE }, 218 { 0x6fa6, KEY_PHONE },
219 { 0x9f, 0xa6, KEY_PC }, 219 { 0x9fa6, KEY_PC },
220}; 220};
221 221
222static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state) 222static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
@@ -238,8 +238,8 @@ static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
238 if (key[1] != 0) 238 if (key[1] != 0)
239 { 239 {
240 for (i = 0; i < d->props.rc_key_map_size; i++) { 240 for (i = 0; i < d->props.rc_key_map_size; i++) {
241 if (d->props.rc_key_map[i].custom == key[1] && 241 if (rc5_custom(&d->props.rc_key_map[i]) == key[1] &&
242 d->props.rc_key_map[i].data == key[2]) { 242 rc5_data(&d->props.rc_key_map[i]) == key[2]) {
243 *event = d->props.rc_key_map[i].event; 243 *event = d->props.rc_key_map[i].event;
244 *state = REMOTE_KEY_PRESSED; 244 *state = REMOTE_KEY_PRESSED;
245 return 0; 245 return 0;
diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c
index 81a6cbf60160..a1b12b01cbe4 100644
--- a/drivers/media/dvb/dvb-usb/dtt200u.c
+++ b/drivers/media/dvb/dvb-usb/dtt200u.c
@@ -58,24 +58,24 @@ static int dtt200u_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid,
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) */
60static struct dvb_usb_rc_key dtt200u_rc_keys[] = { 60static struct dvb_usb_rc_key dtt200u_rc_keys[] = {
61 { 0x80, 0x01, KEY_MUTE }, 61 { 0x8001, KEY_MUTE },
62 { 0x80, 0x02, KEY_CHANNELDOWN }, 62 { 0x8002, KEY_CHANNELDOWN },
63 { 0x80, 0x03, KEY_VOLUMEDOWN }, 63 { 0x8003, KEY_VOLUMEDOWN },
64 { 0x80, 0x04, KEY_1 }, 64 { 0x8004, KEY_1 },
65 { 0x80, 0x05, KEY_2 }, 65 { 0x8005, KEY_2 },
66 { 0x80, 0x06, KEY_3 }, 66 { 0x8006, KEY_3 },
67 { 0x80, 0x07, KEY_4 }, 67 { 0x8007, KEY_4 },
68 { 0x80, 0x08, KEY_5 }, 68 { 0x8008, KEY_5 },
69 { 0x80, 0x09, KEY_6 }, 69 { 0x8009, KEY_6 },
70 { 0x80, 0x0a, KEY_7 }, 70 { 0x800a, KEY_7 },
71 { 0x80, 0x0c, KEY_ZOOM }, 71 { 0x800c, KEY_ZOOM },
72 { 0x80, 0x0d, KEY_0 }, 72 { 0x800d, KEY_0 },
73 { 0x80, 0x0e, KEY_SELECT }, 73 { 0x800e, KEY_SELECT },
74 { 0x80, 0x12, KEY_POWER }, 74 { 0x8012, KEY_POWER },
75 { 0x80, 0x1a, KEY_CHANNELUP }, 75 { 0x801a, KEY_CHANNELUP },
76 { 0x80, 0x1b, KEY_8 }, 76 { 0x801b, KEY_8 },
77 { 0x80, 0x1e, KEY_VOLUMEUP }, 77 { 0x801e, KEY_VOLUMEUP },
78 { 0x80, 0x1f, KEY_9 }, 78 { 0x801f, KEY_9 },
79}; 79};
80 80
81static int dtt200u_rc_query(struct dvb_usb_device *d, u32 *event, int *state) 81static int dtt200u_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
index c0c2c22ddd83..16aec8c88bcc 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
@@ -178,8 +178,8 @@ int dvb_usb_nec_rc_key_to_event(struct dvb_usb_device *d,
178 } 178 }
179 /* See if we can match the raw key code. */ 179 /* See if we can match the raw key code. */
180 for (i = 0; i < d->props.rc_key_map_size; i++) 180 for (i = 0; i < d->props.rc_key_map_size; i++)
181 if (keymap[i].custom == keybuf[1] && 181 if (rc5_custom(&keymap[i]) == keybuf[1] &&
182 keymap[i].data == keybuf[3]) { 182 rc5_data(&keymap[i]) == keybuf[3]) {
183 *event = keymap[i].event; 183 *event = keymap[i].event;
184 *state = REMOTE_KEY_PRESSED; 184 *state = REMOTE_KEY_PRESSED;
185 return 0; 185 return 0;
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h
index e441d274e6c1..fe2b87efb3f1 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb.h
@@ -81,10 +81,25 @@ struct dvb_usb_device_description {
81 * @event: the input event assigned to key identified by custom and data 81 * @event: the input event assigned to key identified by custom and data
82 */ 82 */
83struct dvb_usb_rc_key { 83struct dvb_usb_rc_key {
84 u8 custom,data; 84 u16 scan;
85 u32 event; 85 u32 event;
86}; 86};
87 87
88static inline u8 rc5_custom(struct dvb_usb_rc_key *key)
89{
90 return (key->scan >> 8) & 0xff;
91}
92
93static inline u8 rc5_data(struct dvb_usb_rc_key *key)
94{
95 return key->scan & 0xff;
96}
97
98static inline u8 rc5_scan(struct dvb_usb_rc_key *key)
99{
100 return key->scan & 0xffff;
101}
102
88struct dvb_usb_device; 103struct dvb_usb_device;
89struct dvb_usb_adapter; 104struct dvb_usb_adapter;
90struct usb_data_stream; 105struct usb_data_stream;
diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c
index d9424c31472a..5bb9479d154e 100644
--- a/drivers/media/dvb/dvb-usb/dw2102.c
+++ b/drivers/media/dvb/dvb-usb/dw2102.c
@@ -749,122 +749,122 @@ static int s630_zl10039_tuner_attach(struct dvb_usb_adapter *adap)
749} 749}
750 750
751static struct dvb_usb_rc_key dw210x_rc_keys[] = { 751static struct dvb_usb_rc_key dw210x_rc_keys[] = {
752 { 0xf8, 0x0a, KEY_Q }, /*power*/ 752 { 0xf80a, KEY_Q }, /*power*/
753 { 0xf8, 0x0c, KEY_M }, /*mute*/ 753 { 0xf80c, KEY_M }, /*mute*/
754 { 0xf8, 0x11, KEY_1 }, 754 { 0xf811, KEY_1 },
755 { 0xf8, 0x12, KEY_2 }, 755 { 0xf812, KEY_2 },
756 { 0xf8, 0x13, KEY_3 }, 756 { 0xf813, KEY_3 },
757 { 0xf8, 0x14, KEY_4 }, 757 { 0xf814, KEY_4 },
758 { 0xf8, 0x15, KEY_5 }, 758 { 0xf815, KEY_5 },
759 { 0xf8, 0x16, KEY_6 }, 759 { 0xf816, KEY_6 },
760 { 0xf8, 0x17, KEY_7 }, 760 { 0xf817, KEY_7 },
761 { 0xf8, 0x18, KEY_8 }, 761 { 0xf818, KEY_8 },
762 { 0xf8, 0x19, KEY_9 }, 762 { 0xf819, KEY_9 },
763 { 0xf8, 0x10, KEY_0 }, 763 { 0xf810, KEY_0 },
764 { 0xf8, 0x1c, KEY_PAGEUP }, /*ch+*/ 764 { 0xf81c, KEY_PAGEUP }, /*ch+*/
765 { 0xf8, 0x0f, KEY_PAGEDOWN }, /*ch-*/ 765 { 0xf80f, KEY_PAGEDOWN }, /*ch-*/
766 { 0xf8, 0x1a, KEY_O }, /*vol+*/ 766 { 0xf81a, KEY_O }, /*vol+*/
767 { 0xf8, 0x0e, KEY_Z }, /*vol-*/ 767 { 0xf80e, KEY_Z }, /*vol-*/
768 { 0xf8, 0x04, KEY_R }, /*rec*/ 768 { 0xf804, KEY_R }, /*rec*/
769 { 0xf8, 0x09, KEY_D }, /*fav*/ 769 { 0xf809, KEY_D }, /*fav*/
770 { 0xf8, 0x08, KEY_BACKSPACE }, /*rewind*/ 770 { 0xf808, KEY_BACKSPACE }, /*rewind*/
771 { 0xf8, 0x07, KEY_A }, /*fast*/ 771 { 0xf807, KEY_A }, /*fast*/
772 { 0xf8, 0x0b, KEY_P }, /*pause*/ 772 { 0xf80b, KEY_P }, /*pause*/
773 { 0xf8, 0x02, KEY_ESC }, /*cancel*/ 773 { 0xf802, KEY_ESC }, /*cancel*/
774 { 0xf8, 0x03, KEY_G }, /*tab*/ 774 { 0xf803, KEY_G }, /*tab*/
775 { 0xf8, 0x00, KEY_UP }, /*up*/ 775 { 0xf800, KEY_UP }, /*up*/
776 { 0xf8, 0x1f, KEY_ENTER }, /*ok*/ 776 { 0xf81f, KEY_ENTER }, /*ok*/
777 { 0xf8, 0x01, KEY_DOWN }, /*down*/ 777 { 0xf801, KEY_DOWN }, /*down*/
778 { 0xf8, 0x05, KEY_C }, /*cap*/ 778 { 0xf805, KEY_C }, /*cap*/
779 { 0xf8, 0x06, KEY_S }, /*stop*/ 779 { 0xf806, KEY_S }, /*stop*/
780 { 0xf8, 0x40, KEY_F }, /*full*/ 780 { 0xf840, KEY_F }, /*full*/
781 { 0xf8, 0x1e, KEY_W }, /*tvmode*/ 781 { 0xf81e, KEY_W }, /*tvmode*/
782 { 0xf8, 0x1b, KEY_B }, /*recall*/ 782 { 0xf81b, KEY_B }, /*recall*/
783}; 783};
784 784
785static struct dvb_usb_rc_key tevii_rc_keys[] = { 785static struct dvb_usb_rc_key tevii_rc_keys[] = {
786 { 0xf8, 0x0a, KEY_POWER }, 786 { 0xf80a, KEY_POWER },
787 { 0xf8, 0x0c, KEY_MUTE }, 787 { 0xf80c, KEY_MUTE },
788 { 0xf8, 0x11, KEY_1 }, 788 { 0xf811, KEY_1 },
789 { 0xf8, 0x12, KEY_2 }, 789 { 0xf812, KEY_2 },
790 { 0xf8, 0x13, KEY_3 }, 790 { 0xf813, KEY_3 },
791 { 0xf8, 0x14, KEY_4 }, 791 { 0xf814, KEY_4 },
792 { 0xf8, 0x15, KEY_5 }, 792 { 0xf815, KEY_5 },
793 { 0xf8, 0x16, KEY_6 }, 793 { 0xf816, KEY_6 },
794 { 0xf8, 0x17, KEY_7 }, 794 { 0xf817, KEY_7 },
795 { 0xf8, 0x18, KEY_8 }, 795 { 0xf818, KEY_8 },
796 { 0xf8, 0x19, KEY_9 }, 796 { 0xf819, KEY_9 },
797 { 0xf8, 0x10, KEY_0 }, 797 { 0xf810, KEY_0 },
798 { 0xf8, 0x1c, KEY_MENU }, 798 { 0xf81c, KEY_MENU },
799 { 0xf8, 0x0f, KEY_VOLUMEDOWN }, 799 { 0xf80f, KEY_VOLUMEDOWN },
800 { 0xf8, 0x1a, KEY_LAST }, 800 { 0xf81a, KEY_LAST },
801 { 0xf8, 0x0e, KEY_OPEN }, 801 { 0xf80e, KEY_OPEN },
802 { 0xf8, 0x04, KEY_RECORD }, 802 { 0xf804, KEY_RECORD },
803 { 0xf8, 0x09, KEY_VOLUMEUP }, 803 { 0xf809, KEY_VOLUMEUP },
804 { 0xf8, 0x08, KEY_CHANNELUP }, 804 { 0xf808, KEY_CHANNELUP },
805 { 0xf8, 0x07, KEY_PVR }, 805 { 0xf807, KEY_PVR },
806 { 0xf8, 0x0b, KEY_TIME }, 806 { 0xf80b, KEY_TIME },
807 { 0xf8, 0x02, KEY_RIGHT }, 807 { 0xf802, KEY_RIGHT },
808 { 0xf8, 0x03, KEY_LEFT }, 808 { 0xf803, KEY_LEFT },
809 { 0xf8, 0x00, KEY_UP }, 809 { 0xf800, KEY_UP },
810 { 0xf8, 0x1f, KEY_OK }, 810 { 0xf81f, KEY_OK },
811 { 0xf8, 0x01, KEY_DOWN }, 811 { 0xf801, KEY_DOWN },
812 { 0xf8, 0x05, KEY_TUNER }, 812 { 0xf805, KEY_TUNER },
813 { 0xf8, 0x06, KEY_CHANNELDOWN }, 813 { 0xf806, KEY_CHANNELDOWN },
814 { 0xf8, 0x40, KEY_PLAYPAUSE }, 814 { 0xf840, KEY_PLAYPAUSE },
815 { 0xf8, 0x1e, KEY_REWIND }, 815 { 0xf81e, KEY_REWIND },
816 { 0xf8, 0x1b, KEY_FAVORITES }, 816 { 0xf81b, KEY_FAVORITES },
817 { 0xf8, 0x1d, KEY_BACK }, 817 { 0xf81d, KEY_BACK },
818 { 0xf8, 0x4d, KEY_FASTFORWARD }, 818 { 0xf84d, KEY_FASTFORWARD },
819 { 0xf8, 0x44, KEY_EPG }, 819 { 0xf844, KEY_EPG },
820 { 0xf8, 0x4c, KEY_INFO }, 820 { 0xf84c, KEY_INFO },
821 { 0xf8, 0x41, KEY_AB }, 821 { 0xf841, KEY_AB },
822 { 0xf8, 0x43, KEY_AUDIO }, 822 { 0xf843, KEY_AUDIO },
823 { 0xf8, 0x45, KEY_SUBTITLE }, 823 { 0xf845, KEY_SUBTITLE },
824 { 0xf8, 0x4a, KEY_LIST }, 824 { 0xf84a, KEY_LIST },
825 { 0xf8, 0x46, KEY_F1 }, 825 { 0xf846, KEY_F1 },
826 { 0xf8, 0x47, KEY_F2 }, 826 { 0xf847, KEY_F2 },
827 { 0xf8, 0x5e, KEY_F3 }, 827 { 0xf85e, KEY_F3 },
828 { 0xf8, 0x5c, KEY_F4 }, 828 { 0xf85c, KEY_F4 },
829 { 0xf8, 0x52, KEY_F5 }, 829 { 0xf852, KEY_F5 },
830 { 0xf8, 0x5a, KEY_F6 }, 830 { 0xf85a, KEY_F6 },
831 { 0xf8, 0x56, KEY_MODE }, 831 { 0xf856, KEY_MODE },
832 { 0xf8, 0x58, KEY_SWITCHVIDEOMODE }, 832 { 0xf858, KEY_SWITCHVIDEOMODE },
833}; 833};
834 834
835static struct dvb_usb_rc_key tbs_rc_keys[] = { 835static struct dvb_usb_rc_key tbs_rc_keys[] = {
836 { 0xf8, 0x84, KEY_POWER }, 836 { 0xf884, KEY_POWER },
837 { 0xf8, 0x94, KEY_MUTE }, 837 { 0xf894, KEY_MUTE },
838 { 0xf8, 0x87, KEY_1 }, 838 { 0xf887, KEY_1 },
839 { 0xf8, 0x86, KEY_2 }, 839 { 0xf886, KEY_2 },
840 { 0xf8, 0x85, KEY_3 }, 840 { 0xf885, KEY_3 },
841 { 0xf8, 0x8b, KEY_4 }, 841 { 0xf88b, KEY_4 },
842 { 0xf8, 0x8a, KEY_5 }, 842 { 0xf88a, KEY_5 },
843 { 0xf8, 0x89, KEY_6 }, 843 { 0xf889, KEY_6 },
844 { 0xf8, 0x8f, KEY_7 }, 844 { 0xf88f, KEY_7 },
845 { 0xf8, 0x8e, KEY_8 }, 845 { 0xf88e, KEY_8 },
846 { 0xf8, 0x8d, KEY_9 }, 846 { 0xf88d, KEY_9 },
847 { 0xf8, 0x92, KEY_0 }, 847 { 0xf892, KEY_0 },
848 { 0xf8, 0x96, KEY_CHANNELUP }, 848 { 0xf896, KEY_CHANNELUP },
849 { 0xf8, 0x91, KEY_CHANNELDOWN }, 849 { 0xf891, KEY_CHANNELDOWN },
850 { 0xf8, 0x93, KEY_VOLUMEUP }, 850 { 0xf893, KEY_VOLUMEUP },
851 { 0xf8, 0x8c, KEY_VOLUMEDOWN }, 851 { 0xf88c, KEY_VOLUMEDOWN },
852 { 0xf8, 0x83, KEY_RECORD }, 852 { 0xf883, KEY_RECORD },
853 { 0xf8, 0x98, KEY_PAUSE }, 853 { 0xf898, KEY_PAUSE },
854 { 0xf8, 0x99, KEY_OK }, 854 { 0xf899, KEY_OK },
855 { 0xf8, 0x9a, KEY_SHUFFLE }, 855 { 0xf89a, KEY_SHUFFLE },
856 { 0xf8, 0x81, KEY_UP }, 856 { 0xf881, KEY_UP },
857 { 0xf8, 0x90, KEY_LEFT }, 857 { 0xf890, KEY_LEFT },
858 { 0xf8, 0x82, KEY_RIGHT }, 858 { 0xf882, KEY_RIGHT },
859 { 0xf8, 0x88, KEY_DOWN }, 859 { 0xf888, KEY_DOWN },
860 { 0xf8, 0x95, KEY_FAVORITES }, 860 { 0xf895, KEY_FAVORITES },
861 { 0xf8, 0x97, KEY_SUBTITLE }, 861 { 0xf897, KEY_SUBTITLE },
862 { 0xf8, 0x9d, KEY_ZOOM }, 862 { 0xf89d, KEY_ZOOM },
863 { 0xf8, 0x9f, KEY_EXIT }, 863 { 0xf89f, KEY_EXIT },
864 { 0xf8, 0x9e, KEY_MENU }, 864 { 0xf89e, KEY_MENU },
865 { 0xf8, 0x9c, KEY_EPG }, 865 { 0xf89c, KEY_EPG },
866 { 0xf8, 0x80, KEY_PREVIOUS }, 866 { 0xf880, KEY_PREVIOUS },
867 { 0xf8, 0x9b, KEY_MODE } 867 { 0xf89b, KEY_MODE }
868}; 868};
869 869
870static struct dvb_usb_rc_keys_table keys_tables[] = { 870static struct dvb_usb_rc_keys_table keys_tables[] = {
@@ -894,7 +894,7 @@ static int dw2102_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
894 *state = REMOTE_NO_KEY_PRESSED; 894 *state = REMOTE_NO_KEY_PRESSED;
895 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { 895 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) {
896 for (i = 0; i < keymap_size ; i++) { 896 for (i = 0; i < keymap_size ; i++) {
897 if (keymap[i].data == msg.buf[0]) { 897 if (rc5_data(&keymap[i]) == msg.buf[0]) {
898 *state = REMOTE_KEY_PRESSED; 898 *state = REMOTE_KEY_PRESSED;
899 *event = keymap[i].event; 899 *event = keymap[i].event;
900 break; 900 break;
diff --git a/drivers/media/dvb/dvb-usb/m920x.c b/drivers/media/dvb/dvb-usb/m920x.c
index 54626a0dbf68..aec7a1943b66 100644
--- a/drivers/media/dvb/dvb-usb/m920x.c
+++ b/drivers/media/dvb/dvb-usb/m920x.c
@@ -140,7 +140,7 @@ static int m920x_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
140 goto unlock; 140 goto unlock;
141 141
142 for (i = 0; i < d->props.rc_key_map_size; i++) 142 for (i = 0; i < d->props.rc_key_map_size; i++)
143 if (d->props.rc_key_map[i].data == rc_state[1]) { 143 if (rc5_data(&d->props.rc_key_map[i]) == rc_state[1]) {
144 *event = d->props.rc_key_map[i].event; 144 *event = d->props.rc_key_map[i].event;
145 145
146 switch(rc_state[0]) { 146 switch(rc_state[0]) {
@@ -562,42 +562,42 @@ static struct m920x_inits tvwalkertwin_rc_init [] = {
562 562
563/* ir keymaps */ 563/* ir keymaps */
564static struct dvb_usb_rc_key megasky_rc_keys [] = { 564static struct dvb_usb_rc_key megasky_rc_keys [] = {
565 { 0x0, 0x12, KEY_POWER }, 565 { 0x0012, KEY_POWER },
566 { 0x0, 0x1e, KEY_CYCLEWINDOWS }, /* min/max */ 566 { 0x001e, KEY_CYCLEWINDOWS }, /* min/max */
567 { 0x0, 0x02, KEY_CHANNELUP }, 567 { 0x0002, KEY_CHANNELUP },
568 { 0x0, 0x05, KEY_CHANNELDOWN }, 568 { 0x0005, KEY_CHANNELDOWN },
569 { 0x0, 0x03, KEY_VOLUMEUP }, 569 { 0x0003, KEY_VOLUMEUP },
570 { 0x0, 0x06, KEY_VOLUMEDOWN }, 570 { 0x0006, KEY_VOLUMEDOWN },
571 { 0x0, 0x04, KEY_MUTE }, 571 { 0x0004, KEY_MUTE },
572 { 0x0, 0x07, KEY_OK }, /* TS */ 572 { 0x0007, KEY_OK }, /* TS */
573 { 0x0, 0x08, KEY_STOP }, 573 { 0x0008, KEY_STOP },
574 { 0x0, 0x09, KEY_MENU }, /* swap */ 574 { 0x0009, KEY_MENU }, /* swap */
575 { 0x0, 0x0a, KEY_REWIND }, 575 { 0x000a, KEY_REWIND },
576 { 0x0, 0x1b, KEY_PAUSE }, 576 { 0x001b, KEY_PAUSE },
577 { 0x0, 0x1f, KEY_FASTFORWARD }, 577 { 0x001f, KEY_FASTFORWARD },
578 { 0x0, 0x0c, KEY_RECORD }, 578 { 0x000c, KEY_RECORD },
579 { 0x0, 0x0d, KEY_CAMERA }, /* screenshot */ 579 { 0x000d, KEY_CAMERA }, /* screenshot */
580 { 0x0, 0x0e, KEY_COFFEE }, /* "MTS" */ 580 { 0x000e, KEY_COFFEE }, /* "MTS" */
581}; 581};
582 582
583static struct dvb_usb_rc_key tvwalkertwin_rc_keys [] = { 583static struct dvb_usb_rc_key tvwalkertwin_rc_keys [] = {
584 { 0x0, 0x01, KEY_ZOOM }, /* Full Screen */ 584 { 0x0001, KEY_ZOOM }, /* Full Screen */
585 { 0x0, 0x02, KEY_CAMERA }, /* snapshot */ 585 { 0x0002, KEY_CAMERA }, /* snapshot */
586 { 0x0, 0x03, KEY_MUTE }, 586 { 0x0003, KEY_MUTE },
587 { 0x0, 0x04, KEY_REWIND }, 587 { 0x0004, KEY_REWIND },
588 { 0x0, 0x05, KEY_PLAYPAUSE }, /* Play/Pause */ 588 { 0x0005, KEY_PLAYPAUSE }, /* Play/Pause */
589 { 0x0, 0x06, KEY_FASTFORWARD }, 589 { 0x0006, KEY_FASTFORWARD },
590 { 0x0, 0x07, KEY_RECORD }, 590 { 0x0007, KEY_RECORD },
591 { 0x0, 0x08, KEY_STOP }, 591 { 0x0008, KEY_STOP },
592 { 0x0, 0x09, KEY_TIME }, /* Timeshift */ 592 { 0x0009, KEY_TIME }, /* Timeshift */
593 { 0x0, 0x0c, KEY_COFFEE }, /* Recall */ 593 { 0x000c, KEY_COFFEE }, /* Recall */
594 { 0x0, 0x0e, KEY_CHANNELUP }, 594 { 0x000e, KEY_CHANNELUP },
595 { 0x0, 0x12, KEY_POWER }, 595 { 0x0012, KEY_POWER },
596 { 0x0, 0x15, KEY_MENU }, /* source */ 596 { 0x0015, KEY_MENU }, /* source */
597 { 0x0, 0x18, KEY_CYCLEWINDOWS }, /* TWIN PIP */ 597 { 0x0018, KEY_CYCLEWINDOWS }, /* TWIN PIP */
598 { 0x0, 0x1a, KEY_CHANNELDOWN }, 598 { 0x001a, KEY_CHANNELDOWN },
599 { 0x0, 0x1b, KEY_VOLUMEDOWN }, 599 { 0x001b, KEY_VOLUMEDOWN },
600 { 0x0, 0x1e, KEY_VOLUMEUP }, 600 { 0x001e, KEY_VOLUMEUP },
601}; 601};
602 602
603/* DVB USB Driver stuff */ 603/* DVB USB Driver stuff */
diff --git a/drivers/media/dvb/dvb-usb/nova-t-usb2.c b/drivers/media/dvb/dvb-usb/nova-t-usb2.c
index 07fb843c7c2b..b41d66ef8325 100644
--- a/drivers/media/dvb/dvb-usb/nova-t-usb2.c
+++ b/drivers/media/dvb/dvb-usb/nova-t-usb2.c
@@ -22,51 +22,51 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
22 22
23/* Hauppauge NOVA-T USB2 keys */ 23/* Hauppauge NOVA-T USB2 keys */
24static struct dvb_usb_rc_key haupp_rc_keys [] = { 24static struct dvb_usb_rc_key haupp_rc_keys [] = {
25 { 0x1e, 0x00, KEY_0 }, 25 { 0x1e00, KEY_0 },
26 { 0x1e, 0x01, KEY_1 }, 26 { 0x1e01, KEY_1 },
27 { 0x1e, 0x02, KEY_2 }, 27 { 0x1e02, KEY_2 },
28 { 0x1e, 0x03, KEY_3 }, 28 { 0x1e03, KEY_3 },
29 { 0x1e, 0x04, KEY_4 }, 29 { 0x1e04, KEY_4 },
30 { 0x1e, 0x05, KEY_5 }, 30 { 0x1e05, KEY_5 },
31 { 0x1e, 0x06, KEY_6 }, 31 { 0x1e06, KEY_6 },
32 { 0x1e, 0x07, KEY_7 }, 32 { 0x1e07, KEY_7 },
33 { 0x1e, 0x08, KEY_8 }, 33 { 0x1e08, KEY_8 },
34 { 0x1e, 0x09, KEY_9 }, 34 { 0x1e09, KEY_9 },
35 { 0x1e, 0x0a, KEY_KPASTERISK }, 35 { 0x1e0a, KEY_KPASTERISK },
36 { 0x1e, 0x0b, KEY_RED }, 36 { 0x1e0b, KEY_RED },
37 { 0x1e, 0x0c, KEY_RADIO }, 37 { 0x1e0c, KEY_RADIO },
38 { 0x1e, 0x0d, KEY_MENU }, 38 { 0x1e0d, KEY_MENU },
39 { 0x1e, 0x0e, KEY_GRAVE }, /* # */ 39 { 0x1e0e, KEY_GRAVE }, /* # */
40 { 0x1e, 0x0f, KEY_MUTE }, 40 { 0x1e0f, KEY_MUTE },
41 { 0x1e, 0x10, KEY_VOLUMEUP }, 41 { 0x1e10, KEY_VOLUMEUP },
42 { 0x1e, 0x11, KEY_VOLUMEDOWN }, 42 { 0x1e11, KEY_VOLUMEDOWN },
43 { 0x1e, 0x12, KEY_CHANNEL }, 43 { 0x1e12, KEY_CHANNEL },
44 { 0x1e, 0x14, KEY_UP }, 44 { 0x1e14, KEY_UP },
45 { 0x1e, 0x15, KEY_DOWN }, 45 { 0x1e15, KEY_DOWN },
46 { 0x1e, 0x16, KEY_LEFT }, 46 { 0x1e16, KEY_LEFT },
47 { 0x1e, 0x17, KEY_RIGHT }, 47 { 0x1e17, KEY_RIGHT },
48 { 0x1e, 0x18, KEY_VIDEO }, 48 { 0x1e18, KEY_VIDEO },
49 { 0x1e, 0x19, KEY_AUDIO }, 49 { 0x1e19, KEY_AUDIO },
50 { 0x1e, 0x1a, KEY_MEDIA }, 50 { 0x1e1a, KEY_MEDIA },
51 { 0x1e, 0x1b, KEY_EPG }, 51 { 0x1e1b, KEY_EPG },
52 { 0x1e, 0x1c, KEY_TV }, 52 { 0x1e1c, KEY_TV },
53 { 0x1e, 0x1e, KEY_NEXT }, 53 { 0x1e1e, KEY_NEXT },
54 { 0x1e, 0x1f, KEY_BACK }, 54 { 0x1e1f, KEY_BACK },
55 { 0x1e, 0x20, KEY_CHANNELUP }, 55 { 0x1e20, KEY_CHANNELUP },
56 { 0x1e, 0x21, KEY_CHANNELDOWN }, 56 { 0x1e21, KEY_CHANNELDOWN },
57 { 0x1e, 0x24, KEY_LAST }, /* Skip backwards */ 57 { 0x1e24, KEY_LAST }, /* Skip backwards */
58 { 0x1e, 0x25, KEY_OK }, 58 { 0x1e25, KEY_OK },
59 { 0x1e, 0x29, KEY_BLUE}, 59 { 0x1e29, KEY_BLUE},
60 { 0x1e, 0x2e, KEY_GREEN }, 60 { 0x1e2e, KEY_GREEN },
61 { 0x1e, 0x30, KEY_PAUSE }, 61 { 0x1e30, KEY_PAUSE },
62 { 0x1e, 0x32, KEY_REWIND }, 62 { 0x1e32, KEY_REWIND },
63 { 0x1e, 0x34, KEY_FASTFORWARD }, 63 { 0x1e34, KEY_FASTFORWARD },
64 { 0x1e, 0x35, KEY_PLAY }, 64 { 0x1e35, KEY_PLAY },
65 { 0x1e, 0x36, KEY_STOP }, 65 { 0x1e36, KEY_STOP },
66 { 0x1e, 0x37, KEY_RECORD }, 66 { 0x1e37, KEY_RECORD },
67 { 0x1e, 0x38, KEY_YELLOW }, 67 { 0x1e38, KEY_YELLOW },
68 { 0x1e, 0x3b, KEY_GOTO }, 68 { 0x1e3b, KEY_GOTO },
69 { 0x1e, 0x3d, KEY_POWER }, 69 { 0x1e3d, KEY_POWER },
70}; 70};
71 71
72/* Firmware bug? sometimes, when a new key is pressed, the previous pressed key 72/* Firmware bug? sometimes, when a new key is pressed, the previous pressed key
@@ -92,10 +92,11 @@ static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
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(haupp_rc_keys); i++) {
95 if (haupp_rc_keys[i].data == data && 95 if (rc5_data(&haupp_rc_keys[i]) == data &&
96 haupp_rc_keys[i].custom == custom) { 96 rc5_custom(&haupp_rc_keys[i]) == custom) {
97 97
98 deb_rc("c: %x, d: %x\n",haupp_rc_keys[i].data,haupp_rc_keys[i].custom); 98 deb_rc("c: %x, d: %x\n", rc5_data(&haupp_rc_keys[i]),
99 rc5_custom(&haupp_rc_keys[i]));
99 100
100 *event = haupp_rc_keys[i].event; 101 *event = haupp_rc_keys[i].event;
101 *state = REMOTE_KEY_PRESSED; 102 *state = REMOTE_KEY_PRESSED;
diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c
index 7e32d11f32b0..d4e230941679 100644
--- a/drivers/media/dvb/dvb-usb/opera1.c
+++ b/drivers/media/dvb/dvb-usb/opera1.c
@@ -332,32 +332,32 @@ static int opera1_pid_filter_control(struct dvb_usb_adapter *adap, int onoff)
332} 332}
333 333
334static struct dvb_usb_rc_key opera1_rc_keys[] = { 334static struct dvb_usb_rc_key opera1_rc_keys[] = {
335 {0x5f, 0xa0, KEY_1}, 335 {0x5fa0, KEY_1},
336 {0x51, 0xaf, KEY_2}, 336 {0x51af, KEY_2},
337 {0x5d, 0xa2, KEY_3}, 337 {0x5da2, KEY_3},
338 {0x41, 0xbe, KEY_4}, 338 {0x41be, KEY_4},
339 {0x0b, 0xf5, KEY_5}, 339 {0x0bf5, KEY_5},
340 {0x43, 0xbd, KEY_6}, 340 {0x43bd, KEY_6},
341 {0x47, 0xb8, KEY_7}, 341 {0x47b8, KEY_7},
342 {0x49, 0xb6, KEY_8}, 342 {0x49b6, KEY_8},
343 {0x05, 0xfa, KEY_9}, 343 {0x05fa, KEY_9},
344 {0x45, 0xba, KEY_0}, 344 {0x45ba, KEY_0},
345 {0x09, 0xf6, KEY_UP}, /*chanup */ 345 {0x09f6, KEY_UP}, /*chanup */
346 {0x1b, 0xe5, KEY_DOWN}, /*chandown */ 346 {0x1be5, KEY_DOWN}, /*chandown */
347 {0x5d, 0xa3, KEY_LEFT}, /*voldown */ 347 {0x5da3, KEY_LEFT}, /*voldown */
348 {0x5f, 0xa1, KEY_RIGHT}, /*volup */ 348 {0x5fa1, KEY_RIGHT}, /*volup */
349 {0x07, 0xf8, KEY_SPACE}, /*tab */ 349 {0x07f8, KEY_SPACE}, /*tab */
350 {0x1f, 0xe1, KEY_ENTER}, /*play ok */ 350 {0x1fe1, KEY_ENTER}, /*play ok */
351 {0x1b, 0xe4, KEY_Z}, /*zoom */ 351 {0x1be4, KEY_Z}, /*zoom */
352 {0x59, 0xa6, KEY_M}, /*mute */ 352 {0x59a6, KEY_M}, /*mute */
353 {0x5b, 0xa5, KEY_F}, /*tv/f */ 353 {0x5ba5, KEY_F}, /*tv/f */
354 {0x19, 0xe7, KEY_R}, /*rec */ 354 {0x19e7, KEY_R}, /*rec */
355 {0x01, 0xfe, KEY_S}, /*Stop */ 355 {0x01fe, KEY_S}, /*Stop */
356 {0x03, 0xfd, KEY_P}, /*pause */ 356 {0x03fd, KEY_P}, /*pause */
357 {0x03, 0xfc, KEY_W}, /*<- -> */ 357 {0x03fc, KEY_W}, /*<- -> */
358 {0x07, 0xf9, KEY_C}, /*capture */ 358 {0x07f9, KEY_C}, /*capture */
359 {0x47, 0xb9, KEY_Q}, /*exit */ 359 {0x47b9, KEY_Q}, /*exit */
360 {0x43, 0xbc, KEY_O}, /*power */ 360 {0x43bc, KEY_O}, /*power */
361 361
362}; 362};
363 363
@@ -405,8 +405,7 @@ static int opera1_rc_query(struct dvb_usb_device *dev, u32 * event, int *state)
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(opera1_rc_keys); i++) {
408 if ((opera1_rc_keys[i].custom * 256 + 408 if (rc5_scan(&opera1_rc_keys[i]) == (send_key & 0xffff)) {
409 opera1_rc_keys[i].data) == (send_key & 0xffff)) {
410 *state = REMOTE_KEY_PRESSED; 409 *state = REMOTE_KEY_PRESSED;
411 *event = opera1_rc_keys[i].event; 410 *event = opera1_rc_keys[i].event;
412 opst->last_key_pressed = 411 opst->last_key_pressed =
diff --git a/drivers/media/dvb/dvb-usb/vp702x.c b/drivers/media/dvb/dvb-usb/vp702x.c
index 986fff9a5ba8..ef4e37d9c5ff 100644
--- a/drivers/media/dvb/dvb-usb/vp702x.c
+++ b/drivers/media/dvb/dvb-usb/vp702x.c
@@ -175,8 +175,8 @@ static int vp702x_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
175 175
176/* keys for the enclosed remote control */ 176/* keys for the enclosed remote control */
177static struct dvb_usb_rc_key vp702x_rc_keys[] = { 177static struct dvb_usb_rc_key vp702x_rc_keys[] = {
178 { 0x00, 0x01, KEY_1 }, 178 { 0x0001, KEY_1 },
179 { 0x00, 0x02, KEY_2 }, 179 { 0x0002, KEY_2 },
180}; 180};
181 181
182/* remote control stuff (does not work with my box) */ 182/* remote control stuff (does not work with my box) */
@@ -198,7 +198,7 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
198 } 198 }
199 199
200 for (i = 0; i < ARRAY_SIZE(vp702x_rc_keys); i++) 200 for (i = 0; i < ARRAY_SIZE(vp702x_rc_keys); i++)
201 if (vp702x_rc_keys[i].custom == key[1]) { 201 if (rc5_custom(&vp702x_rc_keys[i]) == key[1]) {
202 *state = REMOTE_KEY_PRESSED; 202 *state = REMOTE_KEY_PRESSED;
203 *event = vp702x_rc_keys[i].event; 203 *event = vp702x_rc_keys[i].event;
204 break; 204 break;
diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c
index acb345504e0d..a59faa27912a 100644
--- a/drivers/media/dvb/dvb-usb/vp7045.c
+++ b/drivers/media/dvb/dvb-usb/vp7045.c
@@ -100,56 +100,56 @@ static int vp7045_power_ctrl(struct dvb_usb_device *d, int onoff)
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. */
102static struct dvb_usb_rc_key vp7045_rc_keys[] = { 102static struct dvb_usb_rc_key vp7045_rc_keys[] = {
103 { 0x00, 0x16, KEY_POWER }, 103 { 0x0016, KEY_POWER },
104 { 0x00, 0x10, KEY_MUTE }, 104 { 0x0010, KEY_MUTE },
105 { 0x00, 0x03, KEY_1 }, 105 { 0x0003, KEY_1 },
106 { 0x00, 0x01, KEY_2 }, 106 { 0x0001, KEY_2 },
107 { 0x00, 0x06, KEY_3 }, 107 { 0x0006, KEY_3 },
108 { 0x00, 0x09, KEY_4 }, 108 { 0x0009, KEY_4 },
109 { 0x00, 0x1d, KEY_5 }, 109 { 0x001d, KEY_5 },
110 { 0x00, 0x1f, KEY_6 }, 110 { 0x001f, KEY_6 },
111 { 0x00, 0x0d, KEY_7 }, 111 { 0x000d, KEY_7 },
112 { 0x00, 0x19, KEY_8 }, 112 { 0x0019, KEY_8 },
113 { 0x00, 0x1b, KEY_9 }, 113 { 0x001b, KEY_9 },
114 { 0x00, 0x15, KEY_0 }, 114 { 0x0015, KEY_0 },
115 { 0x00, 0x05, KEY_CHANNELUP }, 115 { 0x0005, KEY_CHANNELUP },
116 { 0x00, 0x02, KEY_CHANNELDOWN }, 116 { 0x0002, KEY_CHANNELDOWN },
117 { 0x00, 0x1e, KEY_VOLUMEUP }, 117 { 0x001e, KEY_VOLUMEUP },
118 { 0x00, 0x0a, KEY_VOLUMEDOWN }, 118 { 0x000a, KEY_VOLUMEDOWN },
119 { 0x00, 0x11, KEY_RECORD }, 119 { 0x0011, KEY_RECORD },
120 { 0x00, 0x17, KEY_FAVORITES }, /* Heart symbol - Channel list. */ 120 { 0x0017, KEY_FAVORITES }, /* Heart symbol - Channel list. */
121 { 0x00, 0x14, KEY_PLAY }, 121 { 0x0014, KEY_PLAY },
122 { 0x00, 0x1a, KEY_STOP }, 122 { 0x001a, KEY_STOP },
123 { 0x00, 0x40, KEY_REWIND }, 123 { 0x0040, KEY_REWIND },
124 { 0x00, 0x12, KEY_FASTFORWARD }, 124 { 0x0012, KEY_FASTFORWARD },
125 { 0x00, 0x0e, KEY_PREVIOUS }, /* Recall - Previous channel. */ 125 { 0x000e, KEY_PREVIOUS }, /* Recall - Previous channel. */
126 { 0x00, 0x4c, KEY_PAUSE }, 126 { 0x004c, KEY_PAUSE },
127 { 0x00, 0x4d, KEY_SCREEN }, /* Full screen mode. */ 127 { 0x004d, KEY_SCREEN }, /* Full screen mode. */
128 { 0x00, 0x54, KEY_AUDIO }, /* MTS - Switch to secondary audio. */ 128 { 0x0054, KEY_AUDIO }, /* MTS - Switch to secondary audio. */
129 { 0x00, 0x0c, KEY_CANCEL }, /* Cancel */ 129 { 0x000c, KEY_CANCEL }, /* Cancel */
130 { 0x00, 0x1c, KEY_EPG }, /* EPG */ 130 { 0x001c, KEY_EPG }, /* EPG */
131 { 0x00, 0x00, KEY_TAB }, /* Tab */ 131 { 0x0000, KEY_TAB }, /* Tab */
132 { 0x00, 0x48, KEY_INFO }, /* Preview */ 132 { 0x0048, KEY_INFO }, /* Preview */
133 { 0x00, 0x04, KEY_LIST }, /* RecordList */ 133 { 0x0004, KEY_LIST }, /* RecordList */
134 { 0x00, 0x0f, KEY_TEXT }, /* Teletext */ 134 { 0x000f, KEY_TEXT }, /* Teletext */
135 { 0x00, 0x41, KEY_PREVIOUSSONG }, 135 { 0x0041, KEY_PREVIOUSSONG },
136 { 0x00, 0x42, KEY_NEXTSONG }, 136 { 0x0042, KEY_NEXTSONG },
137 { 0x00, 0x4b, KEY_UP }, 137 { 0x004b, KEY_UP },
138 { 0x00, 0x51, KEY_DOWN }, 138 { 0x0051, KEY_DOWN },
139 { 0x00, 0x4e, KEY_LEFT }, 139 { 0x004e, KEY_LEFT },
140 { 0x00, 0x52, KEY_RIGHT }, 140 { 0x0052, KEY_RIGHT },
141 { 0x00, 0x4f, KEY_ENTER }, 141 { 0x004f, KEY_ENTER },
142 { 0x00, 0x13, KEY_CANCEL }, 142 { 0x0013, KEY_CANCEL },
143 { 0x00, 0x4a, KEY_CLEAR }, 143 { 0x004a, KEY_CLEAR },
144 { 0x00, 0x54, KEY_PRINT }, /* Capture */ 144 { 0x0054, KEY_PRINT }, /* Capture */
145 { 0x00, 0x43, KEY_SUBTITLE }, /* Subtitle/CC */ 145 { 0x0043, KEY_SUBTITLE }, /* Subtitle/CC */
146 { 0x00, 0x08, KEY_VIDEO }, /* A/V */ 146 { 0x0008, KEY_VIDEO }, /* A/V */
147 { 0x00, 0x07, KEY_SLEEP }, /* Hibernate */ 147 { 0x0007, KEY_SLEEP }, /* Hibernate */
148 { 0x00, 0x45, KEY_ZOOM }, /* Zoom+ */ 148 { 0x0045, KEY_ZOOM }, /* Zoom+ */
149 { 0x00, 0x18, KEY_RED}, 149 { 0x0018, KEY_RED},
150 { 0x00, 0x53, KEY_GREEN}, 150 { 0x0053, KEY_GREEN},
151 { 0x00, 0x5e, KEY_YELLOW}, 151 { 0x005e, KEY_YELLOW},
152 { 0x00, 0x5f, KEY_BLUE} 152 { 0x005f, KEY_BLUE}
153}; 153};
154 154
155static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state) 155static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
@@ -166,7 +166,7 @@ static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
166 } 166 }
167 167
168 for (i = 0; i < ARRAY_SIZE(vp7045_rc_keys); i++) 168 for (i = 0; i < ARRAY_SIZE(vp7045_rc_keys); i++)
169 if (vp7045_rc_keys[i].data == key) { 169 if (rc5_data(&vp7045_rc_keys[i]) == key) {
170 *state = REMOTE_KEY_PRESSED; 170 *state = REMOTE_KEY_PRESSED;
171 *event = vp7045_rc_keys[i].event; 171 *event = vp7045_rc_keys[i].event;
172 break; 172 break;