Commit ce00bab3 authored by Varadarajan Narayanan's avatar Varadarajan Narayanan Committed by Mark Brown
Browse files

spi: qup: Place the QUP in run mode before DMA

parent 5f13fd60
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -343,6 +343,14 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer,
	else if (xfer->tx_buf)
		tx_done = spi_qup_dma_done;

	/* before issuing the descriptors, set the QUP to run */
	ret = spi_qup_set_state(qup, QUP_STATE_RUN);
	if (ret) {
		dev_warn(qup->dev, "%s(%d): cannot set RUN state\n",
				__func__, __LINE__);
		return ret;
	}

	if (xfer->rx_buf) {
		ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, rx_done);
		if (ret)
@@ -385,6 +393,13 @@ static int spi_qup_do_pio(struct spi_master *master, struct spi_transfer *xfer,

	spi_qup_fifo_write(qup, xfer);

	ret = spi_qup_set_state(qup, QUP_STATE_RUN);
	if (ret) {
		dev_warn(qup->dev, "%s(%d): cannot set RUN state\n",
				__func__, __LINE__);
		return ret;
	}

	if (!wait_for_completion_timeout(&qup->done, timeout))
		return -ETIMEDOUT;