Fix mceusb_cmdsize() which returns incorrect datasize=0 for sub-commands 
MCE_RSP_GETPORTSTATUS, MCE_RSP_GETWAKESOURCE, MCE_RSP_EQDEVDETAILS, 
MCE_RSP_EQEMVER, and MCE_RSP_EQIRNUMPORTS.  Change mceusb_cmdsize() name to 
reflect that it returns data size not cmd size.

Signed-off-by: William Steidtmann <bills...@hbci.com>
Acked-by:

--- a/drivers/media/rc/mceusb.c 2013-04-07 22:49:54.000000000 -0500
+++ b/drivers/media/rc/mceusb.c 2013-04-14 12:18:30.000000000 -0500
@@ -482,7 +482,7 @@ static char SET_RX_SENSOR[] = {MCE_CMD_P
                                   MCE_RSP_EQIRRXPORTEN, 0x00};
 */
-static int mceusb_cmdsize(u8 cmd, u8 subcmd)
+static int mceusb_cmd_datasize(u8 cmd, u8 subcmd)
 {
        int datasize = 0;
@@ -493,6 +493,9 @@ static int mceusb_cmdsize(u8 cmd, u8 sub
                break;
        case MCE_CMD_PORT_SYS:
                switch (subcmd) {
+               case MCE_RSP_GETPORTSTATUS:
+                       datasize = 5;
+                       break;
                case MCE_RSP_EQWAKEVERSION:
                        datasize = 4;
                        break;
@@ -500,6 +503,9 @@ static int mceusb_cmdsize(u8 cmd, u8 sub
                        datasize = 2;
                        break;
                case MCE_RSP_EQWAKESUPPORT:
+               case MCE_RSP_GETWAKESOURCE:
+               case MCE_RSP_EQDEVDETAILS:
+               case MCE_RSP_EQEMVER:
                        datasize = 1;
                        break;
                }
@@ -509,6 +515,7 @@ static int mceusb_cmdsize(u8 cmd, u8 sub
                case MCE_RSP_EQIRCFS:
                case MCE_RSP_EQIRTIMEOUT:
                case MCE_RSP_EQIRRXCFCNT:
+               case MCE_RSP_EQIRNUMPORTS:
                        datasize = 2;
                        break;
                case MCE_CMD_SIG_END:
@@ -968,7 +975,7 @@ static void mceusb_process_ir_data(struc
        for (; i < buf_len; i++) {
                switch (ir->parser_state) {
                case SUBCMD:
-                       ir->rem = mceusb_cmdsize(ir->cmd, ir->buf_in[i]);
+                       ir->rem = mceusb_cmd_datasize(ir->cmd, ir->buf_in[i]);
                        mceusb_dev_printdata(ir, ir->buf_in, i - 1,
                                             ir->rem + 2, false);
                        mceusb_handle_command(ir, i);


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to