Hi Peter, On 1/20/20 1:47 PM, 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. > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> Unfortunately the v1 version of this patch got merged, so can you make a new patch against the current media_tree master to bring it up to date with this v3? My apologies for this. Regards, Hans > --- > 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; > } > >