From cb69795d00c0c65cda7a0f836682848cb8ed5750 Mon Sep 17 00:00:00 2001 From: patrick Date: Sun, 30 Oct 2022 15:34:54 +0000 Subject: [PATCH] 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@ --- sys/dev/acpi/xhci_acpi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 -- 2.20.1