diff options
Diffstat (limited to 'drivers/spi/spi-rockchip.c')
| -rw-r--r-- | drivers/spi/spi-rockchip.c | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c index a08215eb9e14..79242dc5272d 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c @@ -381,15 +381,18 @@ static int rockchip_spi_prepare_irq(struct rockchip_spi *rs,  	rs->tx_left = rs->tx ? xfer->len / rs->n_bytes : 0;  	rs->rx_left = xfer->len / rs->n_bytes; -	if (rs->cs_inactive) -		writel_relaxed(INT_RF_FULL | INT_CS_INACTIVE, rs->regs + ROCKCHIP_SPI_IMR); -	else -		writel_relaxed(INT_RF_FULL, rs->regs + ROCKCHIP_SPI_IMR); +	writel_relaxed(0xffffffff, rs->regs + ROCKCHIP_SPI_ICR); +  	spi_enable_chip(rs, true);  	if (rs->tx_left)  		rockchip_spi_pio_writer(rs); +	if (rs->cs_inactive) +		writel_relaxed(INT_RF_FULL | INT_CS_INACTIVE, rs->regs + ROCKCHIP_SPI_IMR); +	else +		writel_relaxed(INT_RF_FULL, rs->regs + ROCKCHIP_SPI_IMR); +  	/* 1 means the transfer is in progress */  	return 1;  }  | 
