On Mon, 25 Sep 2023 15:44:27 +0200 Wadim Egorov <w.egorov@xxxxxxxxx> wrote: > Fix wrong handling of a DMA request where the probing only failed > if -EPROPE_DEFER was returned. Instead, let us fail if a non -ENODEV > value is returned. This makes DMAs explicitly optional. Even if the > DMA request is unsuccessfully, the ADC can still work properly. > We do also handle the defer probe case by making use of dev_err_probe(). > > Fixes: f438b9da75eb ("drivers: iio: ti_am335x_adc: add dma support") > Signed-off-by: Wadim Egorov <w.egorov@xxxxxxxxx> +CC Bhavya, Could you take a look at this given you had comments on v1. Thanks, Jonathan > --- > v2: > - Update description > - Drop line break after Fixes tag > - Move decision about optional DMA into probe/caller > --- > drivers/iio/adc/ti_am335x_adc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c > index 8db7a01cb5fb..5f8795986995 100644 > --- a/drivers/iio/adc/ti_am335x_adc.c > +++ b/drivers/iio/adc/ti_am335x_adc.c > @@ -670,8 +670,10 @@ static int tiadc_probe(struct platform_device *pdev) > platform_set_drvdata(pdev, indio_dev); > > err = tiadc_request_dma(pdev, adc_dev); > - if (err && err == -EPROBE_DEFER) > + if (err && err != -ENODEV) { > + dev_err_probe(&pdev->dev, err, "DMA request failed\n"); > goto err_dma; > + } > > return 0; >