On Wed, May 10, 2017 at 02:45:13PM -0500, Bin Liu wrote: > On Fri, May 05, 2017 at 07:52:33AM -0500, Alexandre Bailon wrote: > > If dma_request_slave_channel() failed to return a channel, > > then the driver will print an error and request to defer probe, > > regardless of the cause of the failure. > > Only defer if the DMA is not ready yet and print an error to explain > > that we are deferring probe. > > > > Signed-off-by: Alexandre Bailon <abailon@xxxxxxxxxxxx> > > Applied. Thanks. > > > --- > > drivers/usb/musb/musb_cppi41.c | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/usb/musb/musb_cppi41.c b/drivers/usb/musb/musb_cppi41.c > > index e7c8b1b..4718d0d 100644 > > --- a/drivers/usb/musb/musb_cppi41.c > > +++ b/drivers/usb/musb/musb_cppi41.c > > @@ -673,10 +673,12 @@ static int cppi41_dma_controller_start(struct cppi41_dma_controller *controller) > > musb_dma->status = MUSB_DMA_STATUS_FREE; > > musb_dma->max_len = SZ_4M; > > > > - dc = dma_request_slave_channel(dev->parent, str); > > - if (!dc) { > > - dev_err(dev, "Failed to request %s.\n", str); > > - ret = -EPROBE_DEFER; > > + dc = dma_request_chan(dev->parent, str); > > + if (IS_ERR(dc)) { > > + ret = PTR_ERR(dc); > > + dev_err(dev, "Failed to request %s%s.\n", str, > > + ret == -EPROBE_DEFER > > + ? ", deferring probe" : ""); Probe deferral is not really an error, and we typically suppress any error messages otherwise printed when a subsystem requests it to avoid noise during boot. (There is a debug statement in driver core that anyone interested can enable instead). > > goto err; > > } So this should really be if (IS_ERR(DC)) { ret = PTR_ERR(dc); if (ret != -EPROBE_DEFER) dev_err(dev, ...); goto err; } Johan -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html