| From 0ae3e11113b3132167308c26259f25b504da6ddc Mon Sep 17 00:00:00 2001 |
| From: Robin Gong <yibin.gong@nxp.com> |
| Date: Tue, 24 Jul 2018 22:12:24 +0800 |
| Subject: [PATCH] MLK-19022-2: dmaengine: fsl-edma-v3: add device_synchronize |
| |
| Add device_synchronize for edma driver, since some driver such as |
| Audio need it to make sure dma done callback never come out after |
| resource related with dma channel free-ed by Audio driver. Android |
| team report such issue on MA-12087. |
| |
| Signed-off-by: Robin Gong <yibin.gong@nxp.com> |
| (cherry picked from commit 483519c063b08fc1ce0dd297b6c186799cf639d6) |
| (cherry picked from commit 29ab274aca01ef8f5fc70e8c0a6d43a5bdb3c689) |
| --- |
| drivers/dma/fsl-edma-v3.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| --- a/drivers/dma/fsl-edma-v3.c |
| +++ b/drivers/dma/fsl-edma-v3.c |
| @@ -812,6 +812,13 @@ static void fsl_edma3_free_chan_resource |
| fsl_chan->used = false; |
| } |
| |
| +static void fsl_edma3_synchronize(struct dma_chan *chan) |
| +{ |
| + struct fsl_edma3_chan *fsl_chan = to_fsl_edma3_chan(chan); |
| + |
| + vchan_synchronize(&fsl_chan->vchan); |
| +} |
| + |
| static int fsl_edma3_probe(struct platform_device *pdev) |
| { |
| struct device_node *np = pdev->dev.of_node; |
| @@ -927,6 +934,7 @@ static int fsl_edma3_probe(struct platfo |
| fsl_edma3->dma_dev.device_resume = fsl_edma3_resume; |
| fsl_edma3->dma_dev.device_terminate_all = fsl_edma3_terminate_all; |
| fsl_edma3->dma_dev.device_issue_pending = fsl_edma3_issue_pending; |
| + fsl_edma3->dma_dev.device_synchronize = fsl_edma3_synchronize; |
| |
| fsl_edma3->dma_dev.src_addr_widths = FSL_EDMA_BUSWIDTHS; |
| fsl_edma3->dma_dev.dst_addr_widths = FSL_EDMA_BUSWIDTHS; |