Re: [ 034/167] [PATCH] usb: gadget: udc-core: stop UDC ondevice-initiated disconnect

From: Herton Ronaldo Krzesinski
Date: Wed May 09 2012 - 15:19:52 EST


On Wed, May 09, 2012 at 06:51:03AM +0100, Ben Hutchings wrote:
> 3.2-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Felipe Balbi <balbi@xxxxxx>
>
> commit 6d258a4c42089229b855fd706622029decf316d6 upstream.

We also need a follow up fix to this, commit
83a787a71e034244a9fd1d5988fe18f226341417 upstream.

>
> When we want to do device-initiated disconnect,
> let's make sure we stop the UDC in order to
> e.g. allow lower power states to be achieved by
> turning off unnecessary clocks and/or stoping
> PHYs.
>
> When reconnecting, call ->udc_start() again to
> make sure UDC is reinitialized.
>
> Signed-off-by: Felipe Balbi <balbi@xxxxxx>
> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
> ---
> drivers/usb/gadget/udc-core.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
> index 56da49f..c261887 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -411,8 +411,12 @@ static ssize_t usb_udc_softconn_store(struct device *dev,
> struct usb_udc *udc = container_of(dev, struct usb_udc, dev);
>
> if (sysfs_streq(buf, "connect")) {
> + if (udc_is_newstyle(udc))
> + usb_gadget_udc_start(udc->gadget, udc->driver);
> usb_gadget_connect(udc->gadget);
> } else if (sysfs_streq(buf, "disconnect")) {
> + if (udc_is_newstyle(udc))
> + usb_gadget_udc_stop(udc->gadget, udc->driver);
> usb_gadget_disconnect(udc->gadget);
> } else {
> dev_err(dev, "unsupported command '%s'\n", buf);
> --
> 1.7.10
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
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/