| From 25962e1a7f1d522f1b57ead2f266fab570042a70 Mon Sep 17 00:00:00 2001 |
| From: Frieder Schrempf <frieder.schrempf@kontron.de> |
| Date: Tue, 25 Feb 2020 08:23:20 +0000 |
| Subject: dmaengine: imx-sdma: Fix the event id check to include RX event for UART6 |
| |
| From: Frieder Schrempf <frieder.schrempf@kontron.de> |
| |
| commit 25962e1a7f1d522f1b57ead2f266fab570042a70 upstream. |
| |
| On i.MX6UL/ULL and i.MX6SX the DMA event id for the RX channel of |
| UART6 is '0'. To fix the broken DMA support for UART6, we change |
| the check for event_id0 to include '0' as a valid id. |
| |
| Fixes: 1ec1e82f2510 ("dmaengine: Add Freescale i.MX SDMA support") |
| Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> |
| Reviewed-by: Fabio Estevam <festevam@gmail.com> |
| Cc: stable@vger.kernel.org |
| Link: https://lore.kernel.org/r/20200225082139.7646-1-frieder.schrempf@kontron.de |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/dma/imx-sdma.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/dma/imx-sdma.c |
| +++ b/drivers/dma/imx-sdma.c |
| @@ -1328,7 +1328,7 @@ static void sdma_free_chan_resources(str |
| |
| sdma_channel_synchronize(chan); |
| |
| - if (sdmac->event_id0) |
| + if (sdmac->event_id0 >= 0) |
| sdma_event_disable(sdmac, sdmac->event_id0); |
| if (sdmac->event_id1) |
| sdma_event_disable(sdmac, sdmac->event_id1); |
| @@ -1629,7 +1629,7 @@ static int sdma_config(struct dma_chan * |
| memcpy(&sdmac->slave_config, dmaengine_cfg, sizeof(*dmaengine_cfg)); |
| |
| /* Set ENBLn earlier to make sure dma request triggered after that */ |
| - if (sdmac->event_id0) { |
| + if (sdmac->event_id0 >= 0) { |
| if (sdmac->event_id0 >= sdmac->sdma->drvdata->num_events) |
| return -EINVAL; |
| sdma_event_enable(sdmac, sdmac->event_id0); |