Hi, > -----Original Message----- > From: Alan Stern [mailto:stern@xxxxxxxxxxxxxxxxxxx] > Sent: Monday, July 11, 2016 10:51 PM > To: Lipengcheng > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; baolu.lu@xxxxxxxxxxxxxxx; chasemetzger15@xxxxxxxxx; mathias.nyman@xxxxxxxxxxxxxxx; > oneukum@xxxxxxxx; jun.li@xxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] usb:solve resume usb device identification problem > > On Mon, 11 Jul 2016, Pengcheng Li wrote: > > > A usb device in the connection state. Then host is suspend and resume. > > But the usb device could not be at the right speed. We should be reset > > the reset. > > > > Signed-off-by: Pengcheng Li <lpc.li@xxxxxxxxxxxxx> > > Why wouldn't the USB device be at the right speed? > For example, some USB3 devices are resume, the device may be in USB 2.0 Device States. We should have USB 2.0 reset and make the device into the right speed. > You should _not_ reset the device if it is at the right speed. > > > @@ -3512,6 +3512,10 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg) > > } > > } > > > > + retval = hub_port_reset(hub, port1, udev, HUB_ROOT_RESET_TIME, false); > > + if (retval < 0) > > + hub_port_disable(hub, port1, 0); > > + > > Most of the time (for example, for non-USB3 devices) this would be wrong. > Yes, USB3 devices have this problem. So far, USB2 device can not find this problem. I mainly refer to the reset process of usb enumeration process. > Alan Stern Thanks, Pengcheng Li ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥