greybus: spi: add rdwr field to transfer descriptor
authorRui Miguel Silva <rui.silva@linaro.org>
Wed, 2 Dec 2015 11:12:27 +0000 (11:12 +0000)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 3 Dec 2015 01:04:58 +0000 (17:04 -0800)
Add read and/or write field to transfer descriptor to make it possible
to identify the type of transfer.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/greybus_protocols.h
drivers/staging/greybus/spi.c

index 00593b0..23d4cce 100644 (file)
@@ -695,6 +695,9 @@ struct gb_spi_transfer {
        __le16          delay_usecs;
        __u8            cs_change;
        __u8            bits_per_word;
+       __u8            rdwr;
+#define GB_SPI_XFER_READ       0x01
+#define GB_SPI_XFER_WRITE      0x02
 } __packed;
 
 struct gb_spi_transfer_request {
index 33e86f9..1b9c973 100644 (file)
@@ -107,13 +107,16 @@ gb_spi_operation_create(struct gb_connection *connection,
                gb_xfer->delay_usecs = cpu_to_le16(xfer->delay_usecs);
                gb_xfer->cs_change = xfer->cs_change;
                gb_xfer->bits_per_word = xfer->bits_per_word;
-               gb_xfer++;
 
                /* Copy tx data */
                if (xfer->tx_buf) {
                        memcpy(tx_data, xfer->tx_buf, xfer->len);
                        tx_data += xfer->len;
+                       gb_xfer->rdwr |= GB_SPI_XFER_WRITE;
                }
+               if (xfer->rx_buf)
+                       gb_xfer->rdwr |= GB_SPI_XFER_READ;
+               gb_xfer++;
        }
 
        return operation;