Hi Geert, On 20/01/2020 14.05, Geert Uytterhoeven wrote: > On Tue, Dec 17, 2019 at 11:41 AM 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. >> >> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > > Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > > One comment below. > >> --- a/drivers/media/platform/rcar_drif.c >> +++ b/drivers/media/platform/rcar_drif.c >> @@ -275,10 +275,10 @@ static int rcar_drif_alloc_dmachannels(struct rcar_drif_sdr *sdr) >> for_each_rcar_drif_channel(i, &sdr->cur_ch_mask) { >> struct rcar_drif *ch = sdr->ch[i]; >> >> - ch->dmach = dma_request_slave_channel(&ch->pdev->dev, "rx"); >> - if (!ch->dmach) { >> + ch->dmach = dma_request_chan(&ch->pdev->dev, "rx"); >> + if (IS_ERR(ch->dmach)) { >> rdrif_err(sdr, "ch%u: dma channel req failed\n", i); > > Now there is an error code, you might (1) want to print it, and (2) only > do so when it is not due to probe deferral: > > if (PTR_ERR(ch->dmach) != -EPROBE_DEFER) > rdrif_err(sdr, "ch%u: dma channel req failed %pe\n", > i, ch->dmach); Yes, this is true. > >> - ret = -ENODEV; >> + ret = PTR_ERR(ch->dmach); if (ret != -EPROBE_DEFER) rdrif_err(sdr, "ch%u: dma channel req failed (%d)\n", i, ret); might be simpler. >> goto dmach_error; >> } > > Gr{oetje,eeting}s, > > Geert > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki