Re: [PATCH v2] iio: adc: at91-sama5d2_adc: Use dma_request_chan() instead dma_request_slave_channel()

From: Peter Ujfalusi
Date: Mon Dec 23 2019 - 17:00:59 EST


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@xxxxxx> 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@xxxxxx>
>> ---
>> 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