Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757919Ab2HUQRA (ORCPT ); Tue, 21 Aug 2012 12:17:00 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:59788 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752545Ab2HUQQz (ORCPT ); Tue, 21 Aug 2012 12:16:55 -0400 Date: Tue, 21 Aug 2012 11:16:45 -0500 (CDT) From: Manoj Iyer X-X-Sender: manjo@lazy To: Andiry Xu cc: manoj.iyer@canonical.com, linux-kernel@vger.kernel.org, sarah.a.sharp@linux.intel.com, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org Subject: Re: [PATCH 1/1] xhci: Unconditionally switch ports to xHCI on powerup In-Reply-To: Message-ID: References: <1345521975-13708-1-git-send-email-manoj.iyer@canonical.com> <1345522015-13740-1-git-send-email-manoj.iyer@canonical.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2423 Lines: 72 Looks like in pci-quirks.c, we enter the do() while() loop, reach the end of extended capabilities and goto hc_init: label, skipping the switch. Probably moving the switch under the hc_init label might work? Currently we switch unconditionally on resume, so we could do the same at powerup as well. On Tue, 21 Aug 2012, Andiry Xu wrote: > On Tue, Aug 21, 2012 at 12:06 PM, wrote: >> From: Manoj Iyer >> >> USB 3.0 devices show up as high-speed devices on powerup, after an >> s3 cycle they are correctly recognized as SuperSpeed. At powerup >> unconditionally switch the port to xHCI like we do when we resume >> from suspend. >> >> BugLink: http://bugs.launchpad.net/bugs/1000424 >> >> Signed-off-by: Manoj Iyer >> --- >> drivers/usb/host/xhci-pci.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c >> index 9bfd4ca11..5c8dbea 100644 >> --- a/drivers/usb/host/xhci-pci.c >> +++ b/drivers/usb/host/xhci-pci.c >> @@ -48,6 +48,14 @@ static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev) >> if (!pci_set_mwi(pdev)) >> xhci_dbg(xhci, "MWI active\n"); >> >> + /* >> + * USB SuperSpeed ports are recognized as HighSpeed ports on powerup >> + * unconditionally switch the ports to xHCI like we do when resume >> + * from suspend. >> + */ >> + if (usb_is_intel_switchable_xhci(pdev)) >> + usb_enable_xhci_ports(pdev); >> + > > Strange. This should have been called during system power up, in > quirk_usb_handoff_xhci() of pci_quirks.c. Do you see that routine get > called during power up? > > Thanks, > Andiry > >> xhci_dbg(xhci, "Finished xhci_pci_reinit\n"); >> return 0; >> } >> -- >> 1.7.9.5 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-usb" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- ==================== Manoj Iyer Ubuntu/Canonical Hardware Enablement ==================== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/