Re: [PATCH v1] USB: musb: defer probe if transceiver is not ready

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 21, 2012 at 11:22:57PM +0300, Sergei Shtylyov wrote:
> Hello.
> 
> On 11/21/2012 04:48 PM, Ming Lei wrote:
> 
> > If transceiver driver is built as module, the transceiver device
> > may be added very late, so cause musb_init_controller() failed.
> 
> > This patch fixes the below error on 3.7-rcX:
> 
> > [   19.052490] unable to find transceiver of type USB2 PHY
> > [   19.072052] HS USB OTG: no transceiver configured
> > [   19.076995] musb-hdrc musb-hdrc.0.auto: musb_init_controller failed with status -19
> > [   19.089355] musb-hdrc: probe of musb-hdrc.0.auto rejects match -19
> > [   19.096771] driver: 'musb-omap2430': driver_bound: bound to device 'musb-omap2430'
> > [   19.105194] bus: 'platform': really_probe: bound device musb-omap2430 to driver musb-omap2430
> > [   19.174407] bus: 'platform': add driver twl4030_usb
> > [   19.179656] bus: 'platform': driver_probe_device: matched device twl4030_usb with driver twl4030_usb
> > [   19.202270] bus: 'platform': really_probe: probing driver twl4030_usb with device twl4030_usb
> > [   19.214172] twl4030_usb twl4030_usb: HW_CONDITIONS 0xc0/192; link 3
> > [   19.239624] musb-omap2430 musb-omap2430: musb core is not yet ready
> > [   19.246765] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
> > [   19.254516] driver: 'twl4030_usb': driver_bound: bound to device 'twl4030_usb'
> > [   19.263580] bus: 'platform': really_probe: bound device twl4030_usb to driver twl4030_usb
> 
> > Cc: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx>
> > Cc: Felipe Balbi <balbi@xxxxxx>
> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
> > ---
> > V1:
> > 	- return -EPROBE_DEFER only for -ENODEV case as pointed by
> > 	  Sebastian
> > ---
> >  drivers/usb/musb/musb_core.c |    5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
> > index 774d815..00aad8f 100644
> > --- a/drivers/usb/musb/musb_core.c
> > +++ b/drivers/usb/musb/musb_core.c
> > @@ -1881,8 +1881,11 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
> >  	 * isp1504, non-OTG, etc) mostly hooking up through ULPI.
> >  	 */
> >  	status = musb_platform_init(musb);
> > -	if (status < 0)
> > +	if (status < 0) {
> > +		/* try to defer probe if trasceiver is not ready */
> > +		status = (status == -ENODEV ? -EPROBE_DEFER : status);
> 
>     This looks somewhat inelegant to my eye, I would propose longer:
> 
> 	if (status == -ENODEV)
> 		status = -EPROBE_DEFER;

NAK, see other subthread

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux