SPIM:fix SPI_MODE_2 bug
authorluowei <lw@rock-chips.com>
Tue, 22 Jan 2013 09:25:05 +0000 (17:25 +0800)
committerluowei <lw@rock-chips.com>
Tue, 22 Jan 2013 09:25:49 +0000 (17:25 +0800)
drivers/spi/rk29_spim.c

index 8fca6a8042976e6d7ff3f62ec67df05012401ee4..1810c54f2bc9f6926ed4d213d3f60f02a25c6a35 100755 (executable)
@@ -896,7 +896,8 @@ static void pump_transfers(unsigned long data)
                        chip->tmode = SPI_TMOD_TO;\r
 \r
                cr0 &= ~(0x3 << SPI_MODE_OFFSET);               \r
-               cr0 &= ~(0x3 << SPI_TMOD_OFFSET);\r
+               cr0 &= ~(0x3 << SPI_TMOD_OFFSET);       \r
+               cr0 |= (spi->mode << SPI_MODE_OFFSET);\r
                cr0 |= (chip->tmode << SPI_TMOD_OFFSET);\r
        } \r
 \r
@@ -1105,7 +1106,8 @@ static void dma_transfer(struct rk29xx_spi *dws)
                        chip->tmode = SPI_TMOD_TO;\r
 \r
                cr0 &= ~(0x3 << SPI_MODE_OFFSET);\r
-               cr0 &= ~(0x3 << SPI_TMOD_OFFSET);\r
+               cr0 &= ~(0x3 << SPI_TMOD_OFFSET);               \r
+               cr0 |= (chip->mode << SPI_MODE_OFFSET);\r
                cr0 |= (chip->tmode << SPI_TMOD_OFFSET);\r
        }\r
 \r
@@ -1527,6 +1529,8 @@ static int rk29xx_pump_transfers(struct rk29xx_spi *dws, int mode)
                        chip->tmode = SPI_TMOD_TO;\r
 \r
                cr0 &= ~(0x3 << SPI_MODE_OFFSET);\r
+               cr0 &= ~(0x3 << SPI_TMOD_OFFSET);\r
+               cr0 |= (spi->mode << SPI_MODE_OFFSET);\r
                cr0 |= (chip->tmode << SPI_TMOD_OFFSET);\r
        }\r
        \r