V4L/DVB (5964): Fixed remote control for dib0700 with new firmware

The new firmware returns the data of the REQUEST_POLL_RC request in
reversed order. The default is RC5, but it can be adjusted using a
module parameter.

Signed-off-by: Janne Grunau <janne-dvb@grunau.be>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 0eca0fc7..4a3c546 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -275,19 +275,19 @@
 	i=dib0700_ctrl_rd(d,rc_request,2,key,4);
 	if (i<=0) {
 		err("RC Query Failed");
-		return 0;
+		return -1;
 	}
 	if (key[0]==0 && key[1]==0 && key[2]==0 && key[3]==0) return 0;
-	if (key[1]!=st->rc_toggle) {
+	if (key[3-1]!=st->rc_toggle) {
 		for (i=0;i<d->props.rc_key_map_size; i++) {
-			if (keymap[i].custom == key[2] && keymap[i].data == key[3]) {
+			if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) {
 				*event = keymap[i].event;
 				*state = REMOTE_KEY_PRESSED;
-				st->rc_toggle=key[1];
+				st->rc_toggle=key[3-1];
 				return 0;
 			}
 		}
-		err("Unknown remote controller key : %2X %2X",(int)key[2],(int)key[3]);
+		err("Unknown remote controller key : %2X %2X",(int)key[3-2],(int)key[3-3]);
 	}
 	return 0;
 }