commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=790ad7d870dbe2c581770eb41981ea3a99108ed3 branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk
disable/enable dma tx/rx when suspend/resume for bootrom issue drop free_dma/request_dma Signed-off-by: Steven Miao <[email protected]> --- drivers/spi/spi-bfin6xx.c | 20 ++++---------------- 1 files changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-bfin6xx.c b/drivers/spi/spi-bfin6xx.c index a44c66b..6c9bae3 100644 --- a/drivers/spi/spi-bfin6xx.c +++ b/drivers/spi/spi-bfin6xx.c @@ -933,8 +933,8 @@ static int bfin_spi_suspend(struct device *dev) bfin_write(&drv_data->regs->control, SPI_CTL_MSTR | SPI_CTL_CPHA); bfin_write(&drv_data->regs->ssel, 0x0000FE00); - free_dma(drv_data->rx_dma); - free_dma(drv_data->tx_dma); + dma_disable_irq(drv_data->rx_dma); + dma_disable_irq(drv_data->tx_dma); return 0; } @@ -946,22 +946,10 @@ static int bfin_spi_resume(struct device *dev) int ret = 0; /* bootrom may modify spi and dma status when resume in spi boot mode */ - ret = request_dma(drv_data->tx_dma, "SPI_TX_DMA"); - if (ret) { - dev_err(dev, "cannot request SPI TX DMA channel\n"); - return ret; - } - set_dma_callback(drv_data->tx_dma, bfin_spi_tx_dma_isr, drv_data); - - ret = request_dma(drv_data->rx_dma, "SPI_RX_DMA"); - if (ret) { - dev_err(dev, "cannot request SPI RX DMA channel\n"); - free_dma(drv_data->tx_dma); - return ret; - } disable_dma(drv_data->rx_dma); - set_dma_callback(drv_data->rx_dma, bfin_spi_rx_dma_isr, drv_data); + dma_enable_irq(drv_data->rx_dma); + dma_enable_irq(drv_data->tx_dma); bfin_write(&drv_data->regs->control, drv_data->control); bfin_write(&drv_data->regs->ssel, drv_data->ssel);
_______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
