/* M_CMD OP codes for SPI */
 #define SPI_TX_ONLY            1
 #define SPI_RX_ONLY            2
-#define SPI_FULL_DUPLEX                3
 #define SPI_TX_RX              7
 #define SPI_CS_ASSERT          8
 #define SPI_CS_DEASSERT                9
 
        mas->tx_rem_bytes = 0;
        mas->rx_rem_bytes = 0;
-       if (xfer->tx_buf && xfer->rx_buf)
-               m_cmd = SPI_FULL_DUPLEX;
-       else if (xfer->tx_buf)
-               m_cmd = SPI_TX_ONLY;
-       else if (xfer->rx_buf)
-               m_cmd = SPI_RX_ONLY;
 
        spi_tx_cfg &= ~CS_TOGGLE;
 
        len &= TRANS_LEN_MSK;
 
        mas->cur_xfer = xfer;
-       if (m_cmd & SPI_TX_ONLY) {
+       if (xfer->tx_buf) {
+               m_cmd |= SPI_TX_ONLY;
                mas->tx_rem_bytes = xfer->len;
                writel(len, se->base + SE_SPI_TX_TRANS_LEN);
        }
 
-       if (m_cmd & SPI_RX_ONLY) {
+       if (xfer->rx_buf) {
+               m_cmd |= SPI_RX_ONLY;
                writel(len, se->base + SE_SPI_RX_TRANS_LEN);
                mas->rx_rem_bytes = xfer->len;
        }