Message ID | 20200107115253.8351-1-peter.ujfalusi@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] media: stm32-dcmi: Use dma_request_chan() instead dma_request_slave_channel() | expand |
Acked-by: Hugues Fruchet <hugues.fruchet@st.com> On 1/7/20 12:52 PM, Peter Ujfalusi wrote: > dma_request_slave_channel() is a wrapper on top of dma_request_chan() > eating up the error code. > > By using dma_request_chan() directly the driver can support deferred > probing against DMA. > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > --- > Hi, > > Changes since v1: > - Do not print error for EPROBE_DEFER > > Regards, > Peter > > drivers/media/platform/stm32/stm32-dcmi.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c > index 9392e3409fba..b63ff8d636ce 100644 > --- a/drivers/media/platform/stm32/stm32-dcmi.c > +++ b/drivers/media/platform/stm32/stm32-dcmi.c > @@ -1910,10 +1910,13 @@ static int dcmi_probe(struct platform_device *pdev) > return PTR_ERR(mclk); > } > > - chan = dma_request_slave_channel(&pdev->dev, "tx"); > - if (!chan) { > - dev_info(&pdev->dev, "Unable to request DMA channel, defer probing\n"); > - return -EPROBE_DEFER; > + chan = dma_request_chan(&pdev->dev, "tx"); > + if (IS_ERR(chan)) { > + ret = PTR_ERR(chan); > + if (ret != -EPROBE_DEFER) > + dev_err(&pdev->dev, > + "Failed to request DMA channel: %d\n", ret); > + return ret; > } > > spin_lock_init(&dcmi->irqlock); >
diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index 9392e3409fba..b63ff8d636ce 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1910,10 +1910,13 @@ static int dcmi_probe(struct platform_device *pdev) return PTR_ERR(mclk); } - chan = dma_request_slave_channel(&pdev->dev, "tx"); - if (!chan) { - dev_info(&pdev->dev, "Unable to request DMA channel, defer probing\n"); - return -EPROBE_DEFER; + chan = dma_request_chan(&pdev->dev, "tx"); + if (IS_ERR(chan)) { + ret = PTR_ERR(chan); + if (ret != -EPROBE_DEFER) + dev_err(&pdev->dev, + "Failed to request DMA channel: %d\n", ret); + return ret; } spin_lock_init(&dcmi->irqlock);
dma_request_slave_channel() is a wrapper on top of dma_request_chan() eating up the error code. By using dma_request_chan() directly the driver can support deferred probing against DMA. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> --- Hi, Changes since v1: - Do not print error for EPROBE_DEFER Regards, Peter drivers/media/platform/stm32/stm32-dcmi.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)