summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/dev/bge/if_bge.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/dev/bge/if_bge.c')
-rw-r--r--freebsd/sys/dev/bge/if_bge.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/freebsd/sys/dev/bge/if_bge.c b/freebsd/sys/dev/bge/if_bge.c
index aba0b05d..260c6c23 100644
--- a/freebsd/sys/dev/bge/if_bge.c
+++ b/freebsd/sys/dev/bge/if_bge.c
@@ -549,6 +549,8 @@ static driver_t bge_driver = {
static devclass_t bge_devclass;
DRIVER_MODULE(bge, pci, bge_driver, bge_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, bge, bge_devs,
+ sizeof(bge_devs[0]), nitems(bge_devs) - 1);
DRIVER_MODULE(miibus, bge, miibus_driver, miibus_devclass, 0, 0);
static int bge_allow_asf = 1;
@@ -3212,6 +3214,14 @@ bge_can_use_msi(struct bge_softc *sc)
sc->bge_chiprev != BGE_CHIPREV_5750_BX)
can_use_msi = 1;
break;
+ case BGE_ASICREV_BCM5784:
+ /*
+ * Prevent infinite "watchdog timeout" errors
+ * in some MacBook Pro and make it work out-of-the-box.
+ */
+ if (sc->bge_chiprev == BGE_CHIPREV_5784_AX)
+ break;
+ /* FALLTHROUGH */
default:
if (BGE_IS_575X_PLUS(sc))
can_use_msi = 1;
@@ -6716,15 +6726,15 @@ bge_sysctl_mem_read(SYSCTL_HANDLER_ARGS)
static int
bge_get_eaddr_fw(struct bge_softc *sc, uint8_t ether_addr[])
{
-
+#ifdef __sparc64__
if (sc->bge_flags & BGE_FLAG_EADDR)
return (1);
-#ifdef __sparc64__
OF_getetheraddr(sc->bge_dev, ether_addr);
return (0);
-#endif
+#else
return (1);
+#endif
}
static int