2012/2/16 Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>: > On Thu, Feb 16, 2012 at 09:10:18PM +0800, Elric Fu wrote: >> I tried 3.3.0-rc3 and the issue occurred too. I modified the patch for merging >> initialization and reset paths according to what Alan said. It can fix >> the issue. > > Thanks Elric! Can you elaborate on this patch description a bit, and > describe the problem, which device it occurred with, and our analysis of > what we should have done (i.e. set the hub depth after a reset). Then > I'll queue the result for stable. > Thank you very much! It is the first time I send a patch. So I wanna ask a noobly question about the situation. Is you mean that I can use git send-email command to send the patch to you and linux-usb adhere to Documentation/SubmittingPatches likes those patches you released now? Best Regards, Elric Fu > Sarah Sharp > >> Signed-off-by: Elric Fu <elricfu1@xxxxxxxxx> >> --- >> drivers/usb/core/hub.c | 22 ++++++++++------------ >> 1 files changed, 10 insertions(+), 12 deletions(-) >> >> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c >> index a0613d8..7654ffb 100644 >> --- a/drivers/usb/core/hub.c >> +++ b/drivers/usb/core/hub.c >> @@ -709,6 +709,16 @@ static void hub_activate(struct usb_hub *hub, >> enum hub_activation_type type) >> * For any other type of activation, turn it on. >> */ >> if (type != HUB_RESUME) { >> + if (hdev->parent && hub_is_superspeed(hdev) && >> + hdev->state == USB_STATE_CONFIGURED) { >> + ret = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), >> + HUB_SET_DEPTH, USB_RT_HUB, >> + hdev->level - 1, 0, NULL, 0, >> + USB_CTRL_SET_TIMEOUT); >> + if (ret < 0) >> + dev_err(hub->intfdev, >> + "set hub depth failed\n"); >> + } >> >> /* Speed up system boot by using a delayed_work for the >> * hub's initial power-up delays. This is pretty awkward >> @@ -987,18 +997,6 @@ static int hub_configure(struct usb_hub *hub, >> goto fail; >> } >> >> - if (hub_is_superspeed(hdev) && (hdev->parent != NULL)) { >> - ret = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), >> - HUB_SET_DEPTH, USB_RT_HUB, >> - hdev->level - 1, 0, NULL, 0, >> - USB_CTRL_SET_TIMEOUT); >> - >> - if (ret < 0) { >> - message = "can't set hub depth"; >> - goto fail; >> - } >> - } >> - >> /* Request the entire hub descriptor. >> * hub->descriptor can handle USB_MAXCHILDREN ports, >> * but the hub can/will return fewer bytes here. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html