From: patrick Date: Sun, 30 Oct 2022 15:34:54 +0000 (+0000) Subject: On the Lenovo X13s attaching to the multiport USB controller leads to hard X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=cb69795d00c0c65cda7a0f836682848cb8ed5750;p=openbsd 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@ --- 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