OSDN Git Service

Merge tag 'chrome-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof...
[uclinux-h8/linux.git] / drivers / input / keyboard / cros_ec_keyb.c
index 64b9b59..b50c5b8 100644 (file)
@@ -148,16 +148,19 @@ static void cros_ec_keyb_process(struct cros_ec_keyb *ckdev,
 
 static int cros_ec_keyb_get_state(struct cros_ec_keyb *ckdev, uint8_t *kb_state)
 {
+       int ret;
        struct cros_ec_command msg = {
-               .version = 0,
                .command = EC_CMD_MKBP_STATE,
-               .outdata = NULL,
-               .outsize = 0,
-               .indata = kb_state,
                .insize = ckdev->cols,
        };
 
-       return cros_ec_cmd_xfer(ckdev->ec, &msg);
+       ret = cros_ec_cmd_xfer(ckdev->ec, &msg);
+       if (ret < 0)
+               return ret;
+
+       memcpy(kb_state, msg.indata, ckdev->cols);
+
+       return 0;
 }
 
 static irqreturn_t cros_ec_keyb_irq(int irq, void *data)