fix resume issues on Renesas chips in Samsung laptops (rhbz 950630)

This commit is contained in:
Justin M. Forbes 2014-02-05 16:23:24 -06:00
parent 47b8eb8230
commit 7c543c9b9d
2 changed files with 58 additions and 0 deletions

View File

@ -767,6 +767,9 @@ Patch25155: ipv6-addrconf-revert-if_inet6ifa_flag-format.patch
#rhbz 990955
Patch25185: ath9k_htc-make-sta_rc_update-atomic-for-most-calls.patch
#rhbz 950630
Patch25186: xhci-fix-resume-issues-on-renesas-chips-in-samsung-laptops.patch
# END OF PATCH DEFINITIONS
%endif
@ -1473,6 +1476,9 @@ ApplyPatch i915-remove-pm_qos-request-on-error.patch
#rhbz 990955
ApplyPatch ath9k_htc-make-sta_rc_update-atomic-for-most-calls.patch
#rhbz 950630
ApplyPatch xhci-fix-resume-issues-on-renesas-chips-in-samsung-laptops.patch
# END OF PATCH APPLICATIONS
%endif
@ -2285,6 +2291,9 @@ fi
# and build.
%changelog
* Wed Feb 05 2014 Justin M. Forbes <jforbes@fedoraproject.org>
- fix resume issues on Renesas chips in Samsung laptops (rhbz 950630)
* Wed Jan 29 2014 Justin M. Forbes <jforbes@fedoraproject.org> - 3.12.9-201
- ipv6 addrconf: revert /proc/net/if_inet6 ifa_flag format (rhbz 1056711)

View File

@ -0,0 +1,49 @@
Don Zickus <dzickus@redhat.com> writes:
Some co-workers of mine bought Samsung laptops that had mostly usb3 ports.
Those ports did not resume correctly (the driver would timeout communicating
and fail). This led to frustration as suspend/resume is a common use for
laptops.
Poking around, I applied the reset on resume quirk to this chipset and the
resume started working. Reloading the xhci_hcd module had been the temporary
workaround.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Reported-by: Don Zickus <dzickus@redhat.com>
Cc: stable # 2.6.37
---
Don, please ask your co-worker to apply this patch and test. Let me
know if your other co-worker has a different subsystem device ID in his
Samsung laptop, when he gets back from vacation. If so, we'll extend it
to all Samsung laptops with that particular Renesas host.
Sarah Sharp
drivers/usb/host/xhci-pci.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index e42c318a4404..6c03584ac15f 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -142,6 +142,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
"QUIRK: Resetting on resume");
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
}
+ if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
+ pdev->device == 0x0015 &&
+ pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG &&
+ pdev->subsystem_device == 0xc0cd)
+ xhci->quirks |= XHCI_RESET_ON_RESUME;
if (pdev->vendor == PCI_VENDOR_ID_VIA)
xhci->quirks |= XHCI_RESET_ON_RESUME;
}
--
1.8.5.2
--
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