summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2022-09-07 20:06:24 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2022-09-07 20:06:24 +0000
commite3f4ffb705dc497067624086fe75a251b832784e (patch)
tree7a989392c49ba4a6894882a44019fd693ff42d6e /sys/dev
parent410839abc86061639ce0c6663f4808ac6f0afb3c (diff)
Add a few more PNP IDs to handle variants of the Qualcomm dual role
controller based on AML dumps found online and some further detective work looking at Windows drivers by jsg@. ok jsg@, millert@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpi/xhci_acpi.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/sys/dev/acpi/xhci_acpi.c b/sys/dev/acpi/xhci_acpi.c
index 12a65f28551..6463b2c1f5c 100644
--- a/sys/dev/acpi/xhci_acpi.c
+++ b/sys/dev/acpi/xhci_acpi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xhci_acpi.c,v 1.8 2022/07/04 20:03:15 kettenis Exp $ */
+/* $OpenBSD: xhci_acpi.c,v 1.9 2022/09/07 20:06:23 kettenis Exp $ */
/*
* Copyright (c) 2018 Mark Kettenis
*
@@ -53,8 +53,14 @@ const struct cfattach xhci_acpi_ca = {
const char *xhci_hids[] = {
"PNP0D10",
"PNP0D15",
- "QCOM068B",
+ "QCOM0304", /* SDM845 URS */
+ "QCOM0305",
+ "QCOM0497", /* SC8180 URS */
+ "QCOM0498",
+ "QCOM068B", /* SC8280 URS */
"QCOM068C",
+ "QCOM24B6", /* SDM850 URS */
+ "QCOM24B7",
NULL
};
@@ -86,8 +92,14 @@ xhci_acpi_attach(struct device *parent, struct device *self, void *aux)
* child node. Find it and parse its resources to find the
* interrupt.
*/
- if (strcmp(aaa->aaa_dev, "QCOM068B") == 0 ||
- strcmp(aaa->aaa_dev, "QCOM068C") == 0) {
+ if (strcmp(aaa->aaa_dev, "QCOM0304") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM0305") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM0497") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM0498") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM068B") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM068C") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM24B6") == 0 ||
+ strcmp(aaa->aaa_dev, "QCOM24B7") == 0) {
SIMPLEQ_FOREACH(node, &sc->sc_node->son, sib) {
if (strncmp(node->name, "USB", 3) == 0) {
aaa->aaa_node = node;