Loading drivers/spi/spi-imx.c +13 −2 Original line number Diff line number Diff line Loading @@ -1668,12 +1668,23 @@ static int spi_imx_remove(struct platform_device *pdev) { struct spi_master *master = platform_get_drvdata(pdev); struct spi_imx_data *spi_imx = spi_master_get_devdata(master); int ret; spi_bitbang_stop(&spi_imx->bitbang); ret = clk_enable(spi_imx->clk_per); if (ret) return ret; ret = clk_enable(spi_imx->clk_ipg); if (ret) { clk_disable(spi_imx->clk_per); return ret; } writel(0, spi_imx->base + MXC_CSPICTRL); clk_unprepare(spi_imx->clk_ipg); clk_unprepare(spi_imx->clk_per); clk_disable_unprepare(spi_imx->clk_ipg); clk_disable_unprepare(spi_imx->clk_per); spi_imx_sdma_exit(spi_imx); spi_master_put(master); Loading drivers/spi/spi-sh-msiof.c +11 −1 Original line number Diff line number Diff line Loading @@ -784,10 +784,20 @@ static int sh_msiof_dma_once(struct sh_msiof_spi_priv *p, const void *tx, goto stop_dma; } /* wait for tx fifo to be emptied / rx fifo to be filled */ /* wait for tx/rx DMA completion */ ret = sh_msiof_wait_for_completion(p); if (ret) goto stop_reset; if (!rx) { reinit_completion(&p->done); sh_msiof_write(p, IER, IER_TEOFE); /* wait for tx fifo to be emptied */ ret = sh_msiof_wait_for_completion(p); if (ret) goto stop_reset; } /* clear status bits */ sh_msiof_reset_str(p); Loading Loading
drivers/spi/spi-imx.c +13 −2 Original line number Diff line number Diff line Loading @@ -1668,12 +1668,23 @@ static int spi_imx_remove(struct platform_device *pdev) { struct spi_master *master = platform_get_drvdata(pdev); struct spi_imx_data *spi_imx = spi_master_get_devdata(master); int ret; spi_bitbang_stop(&spi_imx->bitbang); ret = clk_enable(spi_imx->clk_per); if (ret) return ret; ret = clk_enable(spi_imx->clk_ipg); if (ret) { clk_disable(spi_imx->clk_per); return ret; } writel(0, spi_imx->base + MXC_CSPICTRL); clk_unprepare(spi_imx->clk_ipg); clk_unprepare(spi_imx->clk_per); clk_disable_unprepare(spi_imx->clk_ipg); clk_disable_unprepare(spi_imx->clk_per); spi_imx_sdma_exit(spi_imx); spi_master_put(master); Loading
drivers/spi/spi-sh-msiof.c +11 −1 Original line number Diff line number Diff line Loading @@ -784,10 +784,20 @@ static int sh_msiof_dma_once(struct sh_msiof_spi_priv *p, const void *tx, goto stop_dma; } /* wait for tx fifo to be emptied / rx fifo to be filled */ /* wait for tx/rx DMA completion */ ret = sh_msiof_wait_for_completion(p); if (ret) goto stop_reset; if (!rx) { reinit_completion(&p->done); sh_msiof_write(p, IER, IER_TEOFE); /* wait for tx fifo to be emptied */ ret = sh_msiof_wait_for_completion(p); if (ret) goto stop_reset; } /* clear status bits */ sh_msiof_reset_str(p); Loading