summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Wildt <patrick@cvs.openbsd.org>2022-10-30 15:34:55 +0000
committerPatrick Wildt <patrick@cvs.openbsd.org>2022-10-30 15:34:55 +0000
commit3321c0c1f4711e353e9395028e6fd5d5739d39f2 (patch)
tree0884d91d26d40855087768601c6014b2736e3124
parente397923e96160408a88a207626962a9262de844d (diff)
On the Lenovo X13s attaching to the multiport USB controller leads to hard
resets. Previously this was only seen with smmu(4) enabled, probably as there is no IORT reference to that controller and hence no IOMMU mapping established. Since recent BIOS updates, this now also happens without smmu(4) enabled. Let's skip this node for now to keep machines running. Prompted by deraadt@ ok phessler@
-rw-r--r--sys/dev/acpi/xhci_acpi.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/acpi/xhci_acpi.c b/sys/dev/acpi/xhci_acpi.c
index b0196a81889..a1d696e156e 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.10 2022/09/09 08:30:32 kettenis Exp $ */
+/* $OpenBSD: xhci_acpi.c,v 1.11 2022/10/30 15:34:54 patrick Exp $ */
/*
* Copyright (c) 2018 Mark Kettenis
*
@@ -88,6 +88,14 @@ xhci_acpi_attach(struct device *parent, struct device *self, void *aux)
sc->sc_node = aaa->aaa_node;
printf(" %s", sc->sc_node->name);
+ /* XXX: Attaching on that specific controller resets the X13s */
+ extern char *hw_ver;
+ if (hw_ver && strcmp(hw_ver, "ThinkPad X13s Gen 1") == 0 &&
+ strncmp(sc->sc_node->name, "USB2", 4) == 0) {
+ printf(": disabled\n");
+ return;
+ }
+
/*
* The Qualcomm dual role controller has the interrupt on a
* child node. Find it and parse its resources to find the