* [PATCH v2] iio: adc: at91-sama5d2_adc: Use dma_request_chan() instead dma_request_slave_channel()
@ 2019-12-17 10:31 Peter Ujfalusi
2019-12-23 15:50 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: Peter Ujfalusi @ 2019-12-17 10:31 UTC (permalink / raw)
To: jic23
Cc: linux-iio, ludovic.desroches, linux-kernel, vkoul, eugen.hristev,
linux-arm-kernel
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:
- Subject prefix is corrected to "iio: adc: at91-sama5d2_adc:"
Regards,
Peter
drivers/iio/adc/at91-sama5d2_adc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c
index e1850f3d5cf3..a5c7771227d5 100644
--- a/drivers/iio/adc/at91-sama5d2_adc.c
+++ b/drivers/iio/adc/at91-sama5d2_adc.c
@@ -1444,10 +1444,10 @@ static void at91_adc_dma_init(struct platform_device *pdev)
if (st->dma_st.dma_chan)
return;
- st->dma_st.dma_chan = dma_request_slave_channel(&pdev->dev, "rx");
-
- if (!st->dma_st.dma_chan) {
+ st->dma_st.dma_chan = dma_request_chan(&pdev->dev, "rx");
+ if (IS_ERR(st->dma_st.dma_chan)) {
dev_info(&pdev->dev, "can't get DMA channel\n");
+ st->dma_st.dma_chan = NULL;
goto dma_exit;
}
--
Peter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] iio: adc: at91-sama5d2_adc: Use dma_request_chan() instead dma_request_slave_channel()
2019-12-17 10:31 [PATCH v2] iio: adc: at91-sama5d2_adc: Use dma_request_chan() instead dma_request_slave_channel() Peter Ujfalusi
@ 2019-12-23 15:50 ` Jonathan Cameron
2019-12-23 22:02 ` Peter Ujfalusi
0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Cameron @ 2019-12-23 15:50 UTC (permalink / raw)
To: Peter Ujfalusi
Cc: linux-iio, ludovic.desroches, linux-kernel, vkoul, eugen.hristev,
linux-arm-kernel
On Tue, 17 Dec 2019 12:31:00 +0200
Peter Ujfalusi <peter.ujfalusi@ti.com> 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.
Unfortunately that doesn't seem to be true.
The function in question returns void...
And for that matter is called only from the set_watermark callback which
doesn't run at probe time.
So if we were to get a deferred response at runtime there isn't a whole
lot we could do with it.
Jonathan
>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> ---
> Hi,
>
> Changes since v1:
> - Subject prefix is corrected to "iio: adc: at91-sama5d2_adc:"
>
> Regards,
> Peter
>
> drivers/iio/adc/at91-sama5d2_adc.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c
> index e1850f3d5cf3..a5c7771227d5 100644
> --- a/drivers/iio/adc/at91-sama5d2_adc.c
> +++ b/drivers/iio/adc/at91-sama5d2_adc.c
> @@ -1444,10 +1444,10 @@ static void at91_adc_dma_init(struct platform_device *pdev)
> if (st->dma_st.dma_chan)
> return;
>
> - st->dma_st.dma_chan = dma_request_slave_channel(&pdev->dev, "rx");
> -
> - if (!st->dma_st.dma_chan) {
> + st->dma_st.dma_chan = dma_request_chan(&pdev->dev, "rx");
> + if (IS_ERR(st->dma_st.dma_chan)) {
> dev_info(&pdev->dev, "can't get DMA channel\n");
> + st->dma_st.dma_chan = NULL;
> goto dma_exit;
> }
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2] iio: adc: at91-sama5d2_adc: Use dma_request_chan() instead dma_request_slave_channel()
2019-12-23 15:50 ` Jonathan Cameron
@ 2019-12-23 22:02 ` Peter Ujfalusi
0 siblings, 0 replies; 3+ messages in thread
From: Peter Ujfalusi @ 2019-12-23 22:02 UTC (permalink / raw)
To: Jonathan Cameron
Cc: linux-iio, ludovic.desroches, linux-kernel, vkoul, eugen.hristev,
linux-arm-kernel
Hi Jonathan,
On 12/23/19 5:50 PM, Jonathan Cameron wrote:
> On Tue, 17 Dec 2019 12:31:00 +0200
> Peter Ujfalusi <peter.ujfalusi@ti.com> 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.
> Unfortunately that doesn't seem to be true.
> The function in question returns void...
>
> And for that matter is called only from the set_watermark callback which
> doesn't run at probe time.
>
> So if we were to get a deferred response at runtime there isn't a whole
> lot we could do with it.
With dma_request_chan() drivers can support deferred probing ;)
I forgot to remove the section which does not apply to this driver.
The main reason for this change is to retire the old APIs for requesting
DMA channel and keep one, consistently named set.
I'll send v3 in in about two weeks with updated commit message.
>
> Jonathan
>
>
>
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> ---
>> Hi,
>>
>> Changes since v1:
>> - Subject prefix is corrected to "iio: adc: at91-sama5d2_adc:"
>>
>> Regards,
>> Peter
>>
>> drivers/iio/adc/at91-sama5d2_adc.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c
>> index e1850f3d5cf3..a5c7771227d5 100644
>> --- a/drivers/iio/adc/at91-sama5d2_adc.c
>> +++ b/drivers/iio/adc/at91-sama5d2_adc.c
>> @@ -1444,10 +1444,10 @@ static void at91_adc_dma_init(struct platform_device *pdev)
>> if (st->dma_st.dma_chan)
>> return;
>>
>> - st->dma_st.dma_chan = dma_request_slave_channel(&pdev->dev, "rx");
>> -
>> - if (!st->dma_st.dma_chan) {
>> + st->dma_st.dma_chan = dma_request_chan(&pdev->dev, "rx");
>> + if (IS_ERR(st->dma_st.dma_chan)) {
>> dev_info(&pdev->dev, "can't get DMA channel\n");
>> + st->dma_st.dma_chan = NULL;
>> goto dma_exit;
>> }
>>
>
- Peter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-12-23 22:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-17 10:31 [PATCH v2] iio: adc: at91-sama5d2_adc: Use dma_request_chan() instead dma_request_slave_channel() Peter Ujfalusi
2019-12-23 15:50 ` Jonathan Cameron
2019-12-23 22:02 ` Peter Ujfalusi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).