diff mbox series

[RESEND,1/2] usb: gadget: core: change the comment for usb_gadget_connect

Message ID 20201013092746.10602-1-peter.chen@nxp.com
State Superseded
Headers show
Series [RESEND,1/2] usb: gadget: core: change the comment for usb_gadget_connect | expand

Commit Message

Peter Chen Oct. 13, 2020, 9:27 a.m. UTC
The pullup does not need to be enabled at below situations:
- For platforms which the hardware pullup starts after setting
register even they do not see the VBUS. If the pullup is always
enabled for these platforms, it will consume more power and
break the USB IF compliance tests [1].
- For platforms which need to do BC 1.2 charger detection after
seeing the VBUS. Pullup D+ will break the charger detection
flow.
- For platforms which the system suspend is allowed when the
connection with host is there but the bus is not at suspend.
For these platforms, it is better to disable pullup when
entering the system suspend otherwise the host may confuse
the device behavior after controller is in low power mode.
Disable pullup is considered as a disconnection event from
host side.

[1] USB-IF Full and Low Speed Compliance Test Procedure
F Back-voltage Testing
Section 7.2.1 of the USB specification requires that no device
shall supply (source) current on VBUS at its upstream facing
port at any time. From VBUS on its upstream facing port,
a device may only draw (sink) current. They may not provide power
to the pull-up resistor on D+/D- unless VBUS is present (see
Section 7.1.5).

Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
 drivers/usb/gadget/udc/core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Peter Chen Dec. 1, 2020, 6:46 a.m. UTC | #1
On Tue, Oct 13, 2020 at 8:01 PM Peter Chen <peter.chen@nxp.com> wrote:
>

> The pullup does not need to be enabled at below situations:

> - For platforms which the hardware pullup starts after setting

> register even they do not see the VBUS. If the pullup is always

> enabled for these platforms, it will consume more power and

> break the USB IF compliance tests [1].

> - For platforms which need to do BC 1.2 charger detection after

> seeing the VBUS. Pullup D+ will break the charger detection

> flow.

> - For platforms which the system suspend is allowed when the

> connection with host is there but the bus is not at suspend.

> For these platforms, it is better to disable pullup when

> entering the system suspend otherwise the host may confuse

> the device behavior after controller is in low power mode.

> Disable pullup is considered as a disconnection event from

> host side.

>

> [1] USB-IF Full and Low Speed Compliance Test Procedure

> F Back-voltage Testing

> Section 7.2.1 of the USB specification requires that no device

> shall supply (source) current on VBUS at its upstream facing

> port at any time. From VBUS on its upstream facing port,

> a device may only draw (sink) current. They may not provide power

> to the pull-up resistor on D+/D- unless VBUS is present (see

> Section 7.1.5).

>

> Signed-off-by: Peter Chen <peter.chen@nxp.com>

> ---

>  drivers/usb/gadget/udc/core.c | 3 +--

>  1 file changed, 1 insertion(+), 2 deletions(-)

>

> diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c

> index debf54205d22..215ecbe8b692 100644

> --- a/drivers/usb/gadget/udc/core.c

> +++ b/drivers/usb/gadget/udc/core.c

> @@ -659,8 +659,7 @@ EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect);

>   *

>   * Enables the D+ (or potentially D-) pullup.  The host will start

>   * enumerating this gadget when the pullup is active and a VBUS session

> - * is active (the link is powered).  This pullup is always enabled unless

> - * usb_gadget_disconnect() has been used to disable it.

> + * is active (the link is powered).

>   *

>   * Returns zero on success, else negative errno.

>   */

> --

> 2.17.1

>


Ping...

Peter
Greg Kroah-Hartman Dec. 29, 2020, 10:17 a.m. UTC | #2
On Tue, Dec 29, 2020 at 01:55:07PM +0800, Peter Chen wrote:
> On Tue, Dec 1, 2020 at 2:46 PM Peter Chen <hzpeterchen@gmail.com> wrote:

> 

> > On Tue, Oct 13, 2020 at 8:01 PM Peter Chen <peter.chen@nxp.com> wrote:

> > >

> > > The pullup does not need to be enabled at below situations:

> > > - For platforms which the hardware pullup starts after setting

> > > register even they do not see the VBUS. If the pullup is always

> > > enabled for these platforms, it will consume more power and

> > > break the USB IF compliance tests [1].

> > > - For platforms which need to do BC 1.2 charger detection after

> > > seeing the VBUS. Pullup D+ will break the charger detection

> > > flow.

> > > - For platforms which the system suspend is allowed when the

> > > connection with host is there but the bus is not at suspend.

> > > For these platforms, it is better to disable pullup when

> > > entering the system suspend otherwise the host may confuse

> > > the device behavior after controller is in low power mode.

> > > Disable pullup is considered as a disconnection event from

> > > host side.

> > >

> > > [1] USB-IF Full and Low Speed Compliance Test Procedure

> > > F Back-voltage Testing

> > > Section 7.2.1 of the USB specification requires that no device

> > > shall supply (source) current on VBUS at its upstream facing

> > > port at any time. From VBUS on its upstream facing port,

> > > a device may only draw (sink) current. They may not provide power

> > > to the pull-up resistor on D+/D- unless VBUS is present (see

> > > Section 7.1.5).

> > >

> > > Signed-off-by: Peter Chen <peter.chen@nxp.com>

> > > ---

> > >  drivers/usb/gadget/udc/core.c | 3 +--

> > >  1 file changed, 1 insertion(+), 2 deletions(-)

> > >

> > > diff --git a/drivers/usb/gadget/udc/core.c

> > b/drivers/usb/gadget/udc/core.c

> > > index debf54205d22..215ecbe8b692 100644

> > > --- a/drivers/usb/gadget/udc/core.c

> > > +++ b/drivers/usb/gadget/udc/core.c

> > > @@ -659,8 +659,7 @@ EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect);

> > >   *

> > >   * Enables the D+ (or potentially D-) pullup.  The host will start

> > >   * enumerating this gadget when the pullup is active and a VBUS session

> > > - * is active (the link is powered).  This pullup is always enabled

> > unless

> > > - * usb_gadget_disconnect() has been used to disable it.

> > > + * is active (the link is powered).

> > >   *

> > >   * Returns zero on success, else negative errno.

> > >   */

> > > --

> > > 2.17.1

> > >

> >

> > Ping...

> >

> > Peter

> >

> 

> Greg, would you please help to catch it up?


Can you resend the patches please?  Digging it out from a response like
this is a bit difficult :)

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
index debf54205d22..215ecbe8b692 100644
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -659,8 +659,7 @@  EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect);
  *
  * Enables the D+ (or potentially D-) pullup.  The host will start
  * enumerating this gadget when the pullup is active and a VBUS session
- * is active (the link is powered).  This pullup is always enabled unless
- * usb_gadget_disconnect() has been used to disable it.
+ * is active (the link is powered).
  *
  * Returns zero on success, else negative errno.
  */