summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOfer Heifetz <oferh@marvell.com>2015-05-04 12:42:42 +0300
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-09-29 10:18:29 +0100
commit9ccc53bddc12e6cb51116d528173c98fa655f2d1 (patch)
treef6a25e0198717175bcd1d2362248d5701344d611
parent2a7d670495a3abc0a75f57e07effb8a5d1b9e428 (diff)
usb: host: xhci: mvebu: add reset on resume quirk
The resume operation of mvebu xHCI host have some issues, so The XHCI_RESET_ON_RESUME quirk is added for it. Signed-off-by: Ofer Heifetz <oferh@marvell.com> Tested-by: Nadav Haklai <nadavh@marvell.com> Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com> Reviewed-by: Lior Amsalem <alior@marvell.com> Tested-by: Lior Amsalem <alior@marvell.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r--drivers/usb/host/xhci-mvebu.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-mvebu.c b/drivers/usb/host/xhci-mvebu.c
index 257e4d79971f..fe00d3ac7bdd 100644
--- a/drivers/usb/host/xhci-mvebu.c
+++ b/drivers/usb/host/xhci-mvebu.c
@@ -42,6 +42,14 @@ static void xhci_mvebu_mbus_config(void __iomem *base,
}
}
+static void xhci_mvebu_quirks(struct platform_device *pdev)
+{
+ struct usb_hcd *hcd = platform_get_drvdata(pdev);
+ struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+
+ xhci->quirks |= XHCI_RESET_ON_RESUME;
+}
+
int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd)
{
struct device *dev = hcd->self.controller;
@@ -71,5 +79,7 @@ int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd)
*/
iounmap(base);
+ xhci_mvebu_quirks(pdev);
+
return 0;
}