Message ID | 20191217104135.23554-1-peter.ujfalusi@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: stm32-dcmi: Use dma_request_chan() instead dma_request_slave_channel() | expand |
Thanks for patching Peter, No regression observed on my side. Acked-by: Hugues Fruchet <hugues.fruchet@st.com> Best regards, Hugues. On 12/17/19 11:41 AM, 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> > --- > drivers/media/platform/stm32/stm32-dcmi.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c > index 9392e3409fba..55351872b0c7 100644 > --- a/drivers/media/platform/stm32/stm32-dcmi.c > +++ b/drivers/media/platform/stm32/stm32-dcmi.c > @@ -1910,10 +1910,10 @@ static int dcmi_probe(struct platform_device *pdev) > return PTR_ERR(mclk); > } > > - chan = dma_request_slave_channel(&pdev->dev, "tx"); > - if (!chan) { > + chan = dma_request_chan(&pdev->dev, "tx"); > + if (IS_ERR(chan)) { > dev_info(&pdev->dev, "Unable to request DMA channel, defer probing\n"); > - return -EPROBE_DEFER; > + return PTR_ERR(chan); > } > > spin_lock_init(&dcmi->irqlock); >
Hi Peter, If not too late, could you change trace to only trig error trace when error is not "probe defered" ? See below: - 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)) { + if (PTR_ERR(chan) != -EPROBE_DEFER) + dev_err(&pdev->dev, "Unable to request DMA channel\n"); + return PTR_ERR(chan); Best regards, Hugues. On 12/18/19 11:52 AM, Hugues FRUCHET wrote: > Thanks for patching Peter, > > No regression observed on my side. > > Acked-by: Hugues Fruchet <hugues.fruchet@st.com> > > Best regards, > Hugues. > > On 12/17/19 11:41 AM, 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> >> --- >> drivers/media/platform/stm32/stm32-dcmi.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/media/platform/stm32/stm32-dcmi.c >> b/drivers/media/platform/stm32/stm32-dcmi.c >> index 9392e3409fba..55351872b0c7 100644 >> --- a/drivers/media/platform/stm32/stm32-dcmi.c >> +++ b/drivers/media/platform/stm32/stm32-dcmi.c >> @@ -1910,10 +1910,10 @@ static int dcmi_probe(struct platform_device >> *pdev) >> return PTR_ERR(mclk); >> } >> - chan = dma_request_slave_channel(&pdev->dev, "tx"); >> - if (!chan) { >> + chan = dma_request_chan(&pdev->dev, "tx"); >> + if (IS_ERR(chan)) { >> dev_info(&pdev->dev, "Unable to request DMA channel, defer >> probing\n"); >> - return -EPROBE_DEFER; >> + return PTR_ERR(chan); >> } >> spin_lock_init(&dcmi->irqlock); >>
Hi Hugues, On 07/01/2020 11.46, Hugues FRUCHET wrote: > Hi Peter, > > If not too late, could you change trace to only trig error trace when > error is not "probe defered" ? See below: > > - 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)) { > + if (PTR_ERR(chan) != -EPROBE_DEFER) > + dev_err(&pdev->dev, "Unable to request DMA channel\n"); > + return PTR_ERR(chan); Sure, I don't know how I missed it. Regards, - Péter > > Best regards, > Hugues. > > On 12/18/19 11:52 AM, Hugues FRUCHET wrote: >> Thanks for patching Peter, >> >> No regression observed on my side. >> >> Acked-by: Hugues Fruchet <hugues.fruchet@st.com> >> >> Best regards, >> Hugues. >> >> On 12/17/19 11:41 AM, 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> >>> --- >>> drivers/media/platform/stm32/stm32-dcmi.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/drivers/media/platform/stm32/stm32-dcmi.c >>> b/drivers/media/platform/stm32/stm32-dcmi.c >>> index 9392e3409fba..55351872b0c7 100644 >>> --- a/drivers/media/platform/stm32/stm32-dcmi.c >>> +++ b/drivers/media/platform/stm32/stm32-dcmi.c >>> @@ -1910,10 +1910,10 @@ static int dcmi_probe(struct platform_device >>> *pdev) >>> return PTR_ERR(mclk); >>> } >>> - chan = dma_request_slave_channel(&pdev->dev, "tx"); >>> - if (!chan) { >>> + chan = dma_request_chan(&pdev->dev, "tx"); >>> + if (IS_ERR(chan)) { >>> dev_info(&pdev->dev, "Unable to request DMA channel, defer >>> probing\n"); >>> - return -EPROBE_DEFER; >>> + return PTR_ERR(chan); >>> } >>> spin_lock_init(&dcmi->irqlock); >> > Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Y're welcome. On 1/7/20 11:38 AM, Peter Ujfalusi wrote: > Hi Hugues, > > On 07/01/2020 11.46, Hugues FRUCHET wrote: >> Hi Peter, >> >> If not too late, could you change trace to only trig error trace when >> error is not "probe defered" ? See below: >> >> - 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)) { >> + if (PTR_ERR(chan) != -EPROBE_DEFER) >> + dev_err(&pdev->dev, "Unable to request DMA channel\n"); >> + return PTR_ERR(chan); > > Sure, I don't know how I missed it. > > Regards, > - Péter > >> >> Best regards, >> Hugues. >> >> On 12/18/19 11:52 AM, Hugues FRUCHET wrote: >>> Thanks for patching Peter, >>> >>> No regression observed on my side. >>> >>> Acked-by: Hugues Fruchet <hugues.fruchet@st.com> >>> >>> Best regards, >>> Hugues. >>> >>> On 12/17/19 11:41 AM, 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> >>>> --- >>>> drivers/media/platform/stm32/stm32-dcmi.c | 6 +++--- >>>> 1 file changed, 3 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/drivers/media/platform/stm32/stm32-dcmi.c >>>> b/drivers/media/platform/stm32/stm32-dcmi.c >>>> index 9392e3409fba..55351872b0c7 100644 >>>> --- a/drivers/media/platform/stm32/stm32-dcmi.c >>>> +++ b/drivers/media/platform/stm32/stm32-dcmi.c >>>> @@ -1910,10 +1910,10 @@ static int dcmi_probe(struct platform_device >>>> *pdev) >>>> return PTR_ERR(mclk); >>>> } >>>> - chan = dma_request_slave_channel(&pdev->dev, "tx"); >>>> - if (!chan) { >>>> + chan = dma_request_chan(&pdev->dev, "tx"); >>>> + if (IS_ERR(chan)) { >>>> dev_info(&pdev->dev, "Unable to request DMA channel, defer >>>> probing\n"); >>>> - return -EPROBE_DEFER; >>>> + return PTR_ERR(chan); >>>> } >>>> spin_lock_init(&dcmi->irqlock); >>>> > > > Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. > Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki >
diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index 9392e3409fba..55351872b0c7 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1910,10 +1910,10 @@ static int dcmi_probe(struct platform_device *pdev) return PTR_ERR(mclk); } - chan = dma_request_slave_channel(&pdev->dev, "tx"); - if (!chan) { + chan = dma_request_chan(&pdev->dev, "tx"); + if (IS_ERR(chan)) { dev_info(&pdev->dev, "Unable to request DMA channel, defer probing\n"); - return -EPROBE_DEFER; + return PTR_ERR(chan); } 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> --- drivers/media/platform/stm32/stm32-dcmi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)