Hi, On 20/01/2020 14.47, 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. yes, this is suppose to be v3, but missed to change the subject-prefix. > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- > Hi, > > Changes since v2: > - Use %pe to print error name using the ch->dmach pointer > - Set ch->dmach to NULL in case of error > > Changes since v1: > - Do not print error in case of EPROBE_DEFER > - Added Reviewed-by from Geert > > Regards, > Peter > > drivers/media/platform/rcar_drif.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/rcar_drif.c b/drivers/media/platform/rcar_drif.c > index 0f267a237b42..3d2451ac347d 100644 > --- a/drivers/media/platform/rcar_drif.c > +++ b/drivers/media/platform/rcar_drif.c > @@ -275,10 +275,14 @@ 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) { > - rdrif_err(sdr, "ch%u: dma channel req failed\n", i); > - ret = -ENODEV; > + ch->dmach = dma_request_chan(&ch->pdev->dev, "rx"); > + if (IS_ERR(ch->dmach)) { > + ret = PTR_ERR(ch->dmach); > + if (ret != -EPROBE_DEFER) > + rdrif_err(sdr, > + "ch%u: dma channel req failed: %pe\n", > + i, ch->dmach); > + ch->dmach = NULL; > goto dmach_error; > } > > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki