-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path0068-usb-xhci-xhci-plat-Add-XHCI_RESET_ON_RESUME-quirk-fo.patch
65 lines (59 loc) · 2.15 KB
/
0068-usb-xhci-xhci-plat-Add-XHCI_RESET_ON_RESUME-quirk-fo.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
From b4b6f72245b7f433b59cb0aae8e63f28c02ee2a0 Mon Sep 17 00:00:00 2001
From: Chen Zhenhua <[email protected]>
Date: Mon, 17 Jun 2024 19:33:05 +0800
Subject: [PATCH 068/150] usb: xhci: xhci-plat: Add XHCI_RESET_ON_RESUME quirk
for Phytium Pe220x
Phytium Pe220x xHCI host controller does not have suspend/resume
support. Therefore, use of the XHCI_RESET_ON_RESUME quirk is
mandatory in order to avoid failures after resume.
Signed-off-by: Chen Zhenhua <[email protected]>
Signed-off-by: Chen Baozi <[email protected]>
Change-Id: I9b085c502c4fbbf057d002373818c0fc7428e488
Signed-off-by: Andrew Powers-Holmes <[email protected]>
---
drivers/usb/host/xhci-plat.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index d68e9abcdc69..9420d7a565f4 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -113,6 +113,10 @@ static const struct xhci_plat_priv xhci_plat_brcm = {
.quirks = XHCI_RESET_ON_RESUME | XHCI_SUSPEND_RESUME_CLKS,
};
+static const struct xhci_plat_priv xhci_plat_phytium_pe220x = {
+ .quirks = XHCI_RESET_ON_RESUME,
+};
+
static const struct of_device_id usb_xhci_of_match[] = {
{
.compatible = "generic-xhci",
@@ -133,6 +137,9 @@ static const struct of_device_id usb_xhci_of_match[] = {
}, {
.compatible = "brcm,bcm7445-xhci",
.data = &xhci_plat_brcm,
+ }, {
+ .compatible = "phytium,pe220x-xhci",
+ .data = &xhci_plat_phytium_pe220x,
},
{},
};
@@ -394,7 +401,9 @@ static int xhci_generic_plat_probe(struct platform_device *pdev)
return ret;
}
- if (pdev->dev.of_node)
+ if (has_acpi_companion(&pdev->dev))
+ priv_match = acpi_device_get_match_data(&pdev->dev);
+ else if (pdev->dev.of_node)
priv_match = of_device_get_match_data(&pdev->dev);
else
priv_match = dev_get_platdata(&pdev->dev);
@@ -554,6 +563,7 @@ EXPORT_SYMBOL_GPL(xhci_plat_pm_ops);
static const struct acpi_device_id usb_xhci_acpi_match[] = {
/* XHCI-compliant USB Controller */
{ "PNP0D10", },
+ { "PHYT0039", (kernel_ulong_t)&xhci_plat_phytium_pe220x },
{ }
};
MODULE_DEVICE_TABLE(acpi, usb_xhci_acpi_match);
--
2.47.0