Dear Richard Zhao,

> On Sat, Jul 07, 2012 at 10:56:45PM +0800, Richard Zhao wrote:
> > Phy may need to change settings when port connect change.
> > 
> > Signed-off-by: Richard Zhao <richard.z...@freescale.com>
> > Tested-by: Subodh Nijsure <snijs...@grid-net.com>
> > ---
> > 
> >  drivers/usb/core/hub.c |    8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> > index 4cc8dc9..2ba9d84 100644
> > --- a/drivers/usb/core/hub.c
> > +++ b/drivers/usb/core/hub.c
> > @@ -20,6 +20,7 @@
> > 
> >  #include <linux/usb.h>
> >  #include <linux/usbdevice_fs.h>
> >  #include <linux/usb/hcd.h>
> > 
> > +#include <linux/usb/otg.h>
> > 
> >  #include <linux/usb/quirks.h>
> >  #include <linux/kthread.h>
> >  #include <linux/mutex.h>
> > 
> > @@ -4037,6 +4038,13 @@ static void hub_port_connect_change(struct usb_hub
> > *hub, int port1,
> > 
> >             }
> >     
> >     }
> > 
> > +   if (unlikely(hcd->phy && !hdev->parent)) {
> > +           if (portstatus & USB_PORT_STAT_CONNECTION)
> > +                   usb_phy_notify_connect(hcd->phy, port1);
> > +           else
> > +                   usb_phy_notify_disconnect(hcd->phy, port1);
> 
> There's another issue. When hcd is removed, notify disconnect is not
> called. Is it ok, if I remove the above two line and add below patch:
> 
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -1924,6 +1924,11 @@ void usb_disconnect(struct usb_device **pdev)
>        */
>       device_del(&udev->dev);
> 
> +     if (udev->parent && !udev->parent->parent) {
> +             struct usb_hcd *hcd = bus_to_hcd(udev->bus);
> +             usb_phy_notify_disconnect(hcd->phy, udev->portnum);
> +     }

Shouldn't that go before device_del() ?

> +
>       /* Free the device number and delete the parent's children[]
>        * (or root_hub) pointer.
>        */
> 
> 
> Thanks
> Richard

Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to