|
@@ -102,7 +102,6 @@ struct spi_imx_data {
|
|
|
unsigned int txfifo; /* number of words pushed in tx FIFO */
|
|
|
|
|
|
/* DMA */
|
|
|
- unsigned int dma_is_inited;
|
|
|
unsigned int dma_finished;
|
|
|
bool usedma;
|
|
|
u32 wml;
|
|
@@ -205,7 +204,7 @@ static bool spi_imx_can_dma(struct spi_master *master, struct spi_device *spi,
|
|
|
{
|
|
|
struct spi_imx_data *spi_imx = spi_master_get_devdata(master);
|
|
|
|
|
|
- if (spi_imx->dma_is_inited && transfer->len >= spi_imx->wml &&
|
|
|
+ if (master->dma_rx && transfer->len >= spi_imx->wml &&
|
|
|
(transfer->len % spi_imx->wml) == 0)
|
|
|
return true;
|
|
|
return false;
|
|
@@ -827,8 +826,6 @@ static void spi_imx_sdma_exit(struct spi_imx_data *spi_imx)
|
|
|
dma_release_channel(master->dma_tx);
|
|
|
master->dma_tx = NULL;
|
|
|
}
|
|
|
-
|
|
|
- spi_imx->dma_is_inited = 0;
|
|
|
}
|
|
|
|
|
|
static int spi_imx_sdma_init(struct device *dev, struct spi_imx_data *spi_imx,
|
|
@@ -888,7 +885,6 @@ static int spi_imx_sdma_init(struct device *dev, struct spi_imx_data *spi_imx,
|
|
|
master->max_dma_len = MAX_SDMA_BD_BYTES;
|
|
|
spi_imx->bitbang.master->flags = SPI_MASTER_MUST_RX |
|
|
|
SPI_MASTER_MUST_TX;
|
|
|
- spi_imx->dma_is_inited = 1;
|
|
|
|
|
|
return 0;
|
|
|
err:
|