+Patrice +Patrick from get_maintainer script
On Mon, Nov 13, 2023 at 1:28 PM Shantur Rathore <i...@shantur.com> wrote: > > +Simon +Trini > > On Fri, Nov 10, 2023 at 2:13 PM Shantur Rathore <i...@shantur.com> wrote: > > > > Currently when a hub is turned on, all the ports are powered on. > > This works well for hubs which have individual power control. > > > > For the hubs without individual power control this has no effect. > > Mostly in these scenarios the hub port is powered before the USB > > controller is enabled, this can lead to some devices in unexpected > > state. > > > > With this patch, we explicitly reset the port while powering up hub > > This resets the port for hubs without port power control and has > > no effect on hubs with port power control as the port is still off. > > > > Before this patch AMicro AM8180 based NVME to USB adapter won't be > > detected as a USB3.0 Mass Storage device but with this it works as > > expected. > > > > Tested working after this patch: > > 1. AMicro AM8180 based NVME to USB Adapter > > 2. Kingston DataTraveler 3.0 > > 3. GenesysLogic USB3.0 Hub > > > > The drives were tested while connected directly and via the hub. > > --- > > common/usb_hub.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/common/usb_hub.c b/common/usb_hub.c > > index 85c0822d8b..06fe436add 100644 > > --- a/common/usb_hub.c > > +++ b/common/usb_hub.c > > @@ -174,8 +174,10 @@ static void usb_hub_power_on(struct usb_hub_device > > *hub) > > > > debug("enabling power on all ports\n"); > > for (i = 0; i < dev->maxchild; i++) { > > + usb_set_port_feature(dev, i + 1, USB_PORT_FEAT_RESET); > > + debug("Reset : port %d returns %lX\n", i + 1, dev->status); > > usb_set_port_feature(dev, i + 1, USB_PORT_FEAT_POWER); > > - debug("port %d returns %lX\n", i + 1, dev->status); > > + debug("PowerOn : port %d returns %lX\n", i + 1, > > dev->status); > > } > > > > #ifdef CONFIG_SANDBOX > > -- > > 2.40.1 > >