On 03/19/2014 01:37 PM, Andreas Reis wrote:
I've uploaded a dmesg with the new debugging patch to bugzilla:
https://bugzilla.kernel.org/attachment.cgi?id=130041
Andreas Reis
On 18.03.2014 15:57, Alan Stern wrote:>
> The debugging information didn't go far enough. Try the patch below
> instead, which has some additional messages.
>
> There are two apparently separate problems here. First, why was the
> reset necessary? As far as I can tell, the only explanation seems to
> be a failure of Link Power Management.
>
> Second, why the errors in queuecommand_lck? I suspect the answer to
> that lies somewhere in the SCSI subystem, not USB. The new debugging
> patch should tell us for sure.
>
> Alan Stern
--
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
Hi
Alan and James solved the usb-storage side of this issue, now the LPM
part remains.
Can you try if disabling link powermanagement removes the reset?
First try this patch, it only disables LPM for intel hosts. It will send
the control messages but with values set to disable LPM.
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 04f986d..6b1dae6 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -102,7 +102,7 @@ static void xhci_pci_quirks(struct device *dev,
struct xhci_hcd *xhci)
if (pdev->vendor == PCI_VENDOR_ID_AMD &&
usb_amd_find_chipset_info())
xhci->quirks |= XHCI_AMD_PLL_FIX;
if (pdev->vendor == PCI_VENDOR_ID_INTEL) {
- xhci->quirks |= XHCI_LPM_SUPPORT;
+ /* xhci->quirks |= XHCI_LPM_SUPPORT; */
xhci->quirks |= XHCI_INTEL_HOST;
}
if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
If that doesn't help, could you try the next patch. It will make sure
LPM control messages are never sent.
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 64ea219..d734630 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -3711,6 +3711,9 @@ int usb_disable_lpm(struct usb_device *udev)
{
struct usb_hcd *hcd;
+ dev_info(&udev->dev, "usb_disable_lpm called, do nothing\n");
+ return 0;
+
if (!udev || !udev->parent ||
udev->speed != USB_SPEED_SUPER ||
!udev->lpm_capable)
@@ -3767,6 +3770,9 @@ void usb_enable_lpm(struct usb_device *udev)
{
struct usb_hcd *hcd;
+ dev_info(&udev->dev, "usb_enable_lpm called, do nothing\n");
+ return;
+
if (!udev || !udev->parent ||
udev->speed != USB_SPEED_SUPER ||
!udev->lpm_capable)
Both testpatches are added to bug
https://bugzilla.kernel.org/show_bug.cgi?id=70781
-Mathias
--
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