Module Name: src
Committed By: rin
Date: Thu Nov 2 09:29:30 UTC 2023
Modified Files:
src/sys/dev/pci/igc: if_igc.c
Log Message:
igc(4): Notify which of 64- or 32-bit DMA is used
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/pci/igc/if_igc.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/pci/igc/if_igc.c
diff -u src/sys/dev/pci/igc/if_igc.c:1.7 src/sys/dev/pci/igc/if_igc.c:1.8
--- src/sys/dev/pci/igc/if_igc.c:1.7 Sun Oct 15 22:36:52 2023
+++ src/sys/dev/pci/igc/if_igc.c Thu Nov 2 09:29:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: if_igc.c,v 1.7 2023/10/15 22:36:52 oster Exp $ */
+/* $NetBSD: if_igc.c,v 1.8 2023/11/02 09:29:30 rin Exp $ */
/* $OpenBSD: if_igc.c,v 1.13 2023/04/28 10:18:57 bluhm Exp $ */
/*-
* SPDX-License-Identifier: BSD-2-Clause
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_igc.c,v 1.7 2023/10/15 22:36:52 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_igc.c,v 1.8 2023/11/02 09:29:30 rin Exp $");
#ifdef _KERNEL_OPT
#include "opt_net_mpsafe.h"
@@ -354,7 +354,6 @@ igc_attach(device_t parent, device_t sel
const struct igc_product *igcp = igc_lookup(pa);
KASSERT(igcp != NULL);
- pci_aprint_devinfo_fancy(pa, "Ethernet controller", igcp->igcp_name, 1);
sc->sc_dev = self;
callout_init(&sc->sc_tick_ch, CALLOUT_MPSAFE);
@@ -363,17 +362,23 @@ igc_attach(device_t parent, device_t sel
sc->osdep.os_sc = sc;
sc->osdep.os_pa = *pa;
-#ifdef __aarch64__
+#ifndef __aarch64__
/*
* XXX PR port-arm/57643
* 64-bit DMA does not work at least for LX2K with 32/64GB memory.
* smmu(4) support may be required.
*/
- sc->osdep.os_dmat = pa->pa_dmat;
-#else
- sc->osdep.os_dmat = pci_dma64_available(pa) ?
- pa->pa_dmat64 : pa->pa_dmat;
+ if (pci_dma64_available(pa)) {
+ aprint_verbose(", 64-bit DMA");
+ sc->osdep.os_dmat = pa->pa_dmat64;
+ } else
#endif
+ {
+ aprint_verbose(", 32-bit DMA");
+ sc->osdep.os_dmat = pa->pa_dmat;
+ }
+
+ pci_aprint_devinfo_fancy(pa, "Ethernet controller", igcp->igcp_name, 1);
/* Determine hardware and mac info */
igc_identify_hardware(sc);