RE: [PATCH] usb: gadget: fsl: check vbus presence on probe

From: suresh.gupta@xxxxxxxxxxxxx
Date: Thu May 08 2014 - 14:43:00 EST




> -----Original Message-----
> From: Paul Fertser [mailto:fercerpav@xxxxxxxxx]
> Sent: Thursday, May 08, 2014 9:09 PM
> To: Gupta Suresh-B42813
> Cc: balbi@xxxxxx; Li Yang-Leo-R58472; linux-usb@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] usb: gadget: fsl: check vbus presence on probe
>
> Hi,
>
> On Thu, May 08, 2014 at 02:30:39PM +0000, suresh.gupta@xxxxxxxxxxxxx
> wrote:
> > As per my limited knowledge, the purpose of OTGSC_STS_B_SESSION_VALID
> > bit is to tell either VBUS is above the B session valid threshold and
> > which comes only Host is attached.
>
> Yes, that matches the datasheet I've read.
>
> > And Host might be attach after system bootup or after driver
> > initialization. So putting this check in probe will not help much.
>
> If the host is attached after the driver was initialised, the interrupt
> will trigger and the driver will get notified that VBUS appeared and
> everything will go smooth, at least that's how it should work (I do not
> have any board handy to real-life check that, but AFAICT that's the
> intent of the current code).

If is go through the code flow starting from usb_composite_probe the sequence is
usb_composite_probe->usb_gadget_probe_driver->udc_bind_to_driver->
udc_bind_to_driver->usb_gadget_udc_start->fsl_udc_start->usbcmd=RUN
udc_bind_to_driver->usb_gadget_connect->fsl_pullup

The function fsl_pullup make usbcmd=STOP if my fix is not there and if controller
is stopped we do not get any interrupt.

>
> I actually do not have any iMX demoboards at all, I've only got some
> custom-designed i.MX25 boards where I can't control VBUS, it's
> permanently pulled up.
>
> But I was fixing the problem that was clearly, 100% reproducibly
> happening when VBUS was applied before the interrupt was configured. So

Wait a minute, are you using OTG. If your VBUS is permanently pulled up, that
means you are only Gadget(I might miss something) then why you use OTG mode.

> what exactly do you mean here? Do you mean this check I've added doesn't
> fix the bug? Or do you mean this bug should be fixed somehow else? Or do

What expertly my concern is, probe is not proper place to check VBUS valid.
I think we should wait to hear what Balbi has to say.

> you mean there's no bug in the first place and my board doesn't work
> because of something else?
>
> --
> Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
> mailto:fercerpav@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/