diff options
Diffstat (limited to 'drivers/dma/imx-sdma.c')
| -rw-r--r-- | drivers/dma/imx-sdma.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index 066b21a32232..4d4477df4ede 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -1331,13 +1331,14 @@ static void sdma_free_chan_resources(struct dma_chan *chan)  	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);  	sdmac->event_id0 = 0;  	sdmac->event_id1 = 0; +	sdmac->context_loaded = false;  	sdma_set_channel_priority(sdmac, 0); @@ -1631,7 +1632,7 @@ static int sdma_config(struct dma_chan *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); |