diff options
author | Patrick Wildt <patrick@cvs.openbsd.org> | 2022-10-30 15:34:55 +0000 |
---|---|---|
committer | Patrick Wildt <patrick@cvs.openbsd.org> | 2022-10-30 15:34:55 +0000 |
commit | 3321c0c1f4711e353e9395028e6fd5d5739d39f2 (patch) | |
tree | 0884d91d26d40855087768601c6014b2736e3124 | |
parent | e397923e96160408a88a207626962a9262de844d (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.c | 10 |
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 |