[media] lmedm04: NEC scancode cleanup
[cascardo/linux.git] / drivers / media / usb / dvb-usb-v2 / lmedm04.c
index 4cc55b3..3721ee6 100644 (file)
@@ -348,15 +348,16 @@ static void lme2510_int_response(struct urb *lme_urb)
                switch (ibuf[0]) {
                case 0xaa:
                        debug_data_snipet(1, "INT Remote data snipet", ibuf);
-                       if ((ibuf[4] + ibuf[5]) == 0xff) {
-                               key = RC_SCANCODE_NECX((ibuf[2] ^ 0xff) << 8 |
-                                                      (ibuf[3] > 0) ? (ibuf[3] ^ 0xff) : 0,
-                                                      ibuf[5]);
-                               deb_info(1, "INT Key =%08x", key);
-                               if (adap_to_d(adap)->rc_dev != NULL)
-                                       rc_keydown(adap_to_d(adap)->rc_dev,
-                                                  RC_TYPE_NEC, key, 0);
-                       }
+                       if (!adap_to_d(adap)->rc_dev)
+                               break;
+
+                       key = RC_SCANCODE_NEC32(ibuf[2] << 24 |
+                                               ibuf[3] << 16 |
+                                               ibuf[4] << 8  |
+                                               ibuf[5]);
+
+                       deb_info(1, "INT Key = 0x%08x", key);
+                       rc_keydown(adap_to_d(adap)->rc_dev, RC_TYPE_NEC, key, 0);
                        break;
                case 0xbb:
                        switch (st->tuner_config) {
@@ -1344,7 +1345,7 @@ module_usb_driver(lme2510_driver);
 
 MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>");
 MODULE_DESCRIPTION("LME2510(C) DVB-S USB2.0");
-MODULE_VERSION("2.06");
+MODULE_VERSION("2.07");
 MODULE_LICENSE("GPL");
 MODULE_FIRMWARE(LME2510_C_S7395);
 MODULE_FIRMWARE(LME2510_C_LG);