cros_ec: Fix two bugs in the SPI implementation
authorSimon Glass <sjg@chromium.org>
Mon, 7 Jul 2014 16:16:37 +0000 (10:16 -0600)
committerJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tue, 5 Aug 2014 18:48:01 +0000 (00:18 +0530)
An incorrect message version is passed to the EC in some cases and the
parameters of one function are switched.

Fix these problems.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
drivers/misc/cros_ec_spi.c

index 7df709cc714b92a4d06a85cdea747d28cdb3f643..015333f139a209fd686a4ac173aba02baeeb1b33 100644 (file)
@@ -98,7 +98,7 @@ int cros_ec_spi_command(struct cros_ec_dev *dev, uint8_t cmd, int cmd_version,
        }
 
        out = dev->dout;
-       out[0] = cmd_version;
+       out[0] = EC_CMD_VERSION0 + cmd_version;
        out[1] = cmd;
        out[2] = (uint8_t)dout_len;
        memcpy(out + 3, dout, dout_len);
@@ -165,7 +165,7 @@ int cros_ec_spi_decode_fdt(struct cros_ec_dev *dev, const void *blob)
  */
 int cros_ec_spi_init(struct cros_ec_dev *dev, const void *blob)
 {
-       dev->spi = spi_setup_slave_fdt(blob, dev->parent_node, dev->node);
+       dev->spi = spi_setup_slave_fdt(blob, dev->node, dev->parent_node);
        if (!dev->spi) {
                debug("%s: Could not setup SPI slave\n", __func__);
                return -1;