Module Name: src Committed By: skrll Date: Tue Oct 27 13:50:57 UTC 2020
Modified Files: src/sys/dev/acpi: xhci_acpi.c src/sys/dev/pci: xhci_pci.c Log Message: Report HW DMA capability and if the DMA tag limits it. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/dev/acpi/xhci_acpi.c cvs rdiff -u -r1.24 -r1.25 src/sys/dev/pci/xhci_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/xhci_acpi.c diff -u src/sys/dev/acpi/xhci_acpi.c:1.8 src/sys/dev/acpi/xhci_acpi.c:1.9 --- src/sys/dev/acpi/xhci_acpi.c:1.8 Sat Oct 24 08:55:23 2020 +++ src/sys/dev/acpi/xhci_acpi.c Tue Oct 27 13:50:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: xhci_acpi.c,v 1.8 2020/10/24 08:55:23 skrll Exp $ */ +/* $NetBSD: xhci_acpi.c,v 1.9 2020/10/27 13:50:57 skrll Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: xhci_acpi.c,v 1.8 2020/10/24 08:55:23 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: xhci_acpi.c,v 1.9 2020/10/27 13:50:57 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -129,11 +129,17 @@ xhci_acpi_attach(device_t parent, device } hccparams = bus_space_read_4(sc->sc_iot, sc->sc_ioh, XHCI_HCCPARAMS); - if (XHCI_HCC_AC64(hccparams) && BUS_DMA_TAG_VALID(aa->aa_dmat64)) { - aprint_verbose_dev(self, "using 64-bit DMA\n"); - sc->sc_bus.ub_dmatag = aa->aa_dmat64; + if (XHCI_HCC_AC64(hccparams)) { + aprint_verbose_dev(self, "64-bit DMA"); + if (BUS_DMA_TAG_VALID(aa->aa_dmat64)) { + aprint_verbose("\n"); + sc->sc_bus.ub_dmatag = aa->aa_dmat64; + } else { + aprint_verbose(" - limited\n"); + sc->sc_bus.ub_dmatag = aa->aa_dmat; + } } else { - aprint_verbose_dev(self, "using 32-bit DMA\n"); + aprint_verbose_dev(self, "32-bit DMA\n"); sc->sc_bus.ub_dmatag = aa->aa_dmat; } Index: src/sys/dev/pci/xhci_pci.c diff -u src/sys/dev/pci/xhci_pci.c:1.24 src/sys/dev/pci/xhci_pci.c:1.25 --- src/sys/dev/pci/xhci_pci.c:1.24 Mon Dec 2 03:06:51 2019 +++ src/sys/dev/pci/xhci_pci.c Tue Oct 27 13:50:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: xhci_pci.c,v 1.24 2019/12/02 03:06:51 msaitoh Exp $ */ +/* $NetBSD: xhci_pci.c,v 1.25 2020/10/27 13:50:57 skrll Exp $ */ /* OpenBSD: xhci_pci.c,v 1.4 2014/07/12 17:38:51 yuo Exp */ /* @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: xhci_pci.c,v 1.24 2019/12/02 03:06:51 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: xhci_pci.c,v 1.25 2020/10/27 13:50:57 skrll Exp $"); #ifdef _KERNEL_OPT #include "opt_xhci_pci.h" @@ -193,10 +193,19 @@ xhci_pci_attach(device_t parent, device_ hccparams = bus_space_read_4(sc->sc_iot, sc->sc_ioh, XHCI_HCCPARAMS); - if (pci_dma64_available(pa) && (XHCI_HCC_AC64(hccparams) != 0)) - sc->sc_bus.ub_dmatag = pa->pa_dmat64; - else + if (XHCI_HCC_AC64(hccparams) != 0) { + aprint_verbose_dev(self, "64-bit DMA"); + if (pci_dma64_available(pa)) { + sc->sc_bus.ub_dmatag = pa->pa_dmat64; + aprint_verbose("\n"); + } else { + aprint_verbose(" - limited\n"); + sc->sc_bus.ub_dmatag = pa->pa_dmat; + } + } else { + aprint_verbose_dev(self, "32-bit DMA\n"); sc->sc_bus.ub_dmatag = pa->pa_dmat; + } /* Enable the device. */ pci_conf_write(pc, tag, PCI_COMMAND_STATUS_REG,