|
@@ -263,7 +263,10 @@ static inline u32 rx_max(struct rockchip_spi *rs)
|
|
|
static void rockchip_spi_set_cs(struct spi_device *spi, bool enable)
|
|
|
{
|
|
|
u32 ser;
|
|
|
- struct rockchip_spi *rs = spi_master_get_devdata(spi->master);
|
|
|
+ struct spi_master *master = spi->master;
|
|
|
+ struct rockchip_spi *rs = spi_master_get_devdata(master);
|
|
|
+
|
|
|
+ pm_runtime_get_sync(rs->dev);
|
|
|
|
|
|
ser = readl_relaxed(rs->regs + ROCKCHIP_SPI_SER) & SER_MASK;
|
|
|
|
|
@@ -288,6 +291,8 @@ static void rockchip_spi_set_cs(struct spi_device *spi, bool enable)
|
|
|
ser &= ~(1 << spi->chip_select);
|
|
|
|
|
|
writel_relaxed(ser, rs->regs + ROCKCHIP_SPI_SER);
|
|
|
+
|
|
|
+ pm_runtime_put_sync(rs->dev);
|
|
|
}
|
|
|
|
|
|
static int rockchip_spi_prepare_message(struct spi_master *master,
|