Module Name: src
Committed By: martin
Date: Tue Sep 9 07:18:35 UTC 2014
Modified Files:
src/sys/dev/ic: dwc_gmac.c
Log Message:
Fix MII setup and interrupt handling, from Robert Swindell.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/ic/dwc_gmac.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/ic/dwc_gmac.c
diff -u src/sys/dev/ic/dwc_gmac.c:1.1 src/sys/dev/ic/dwc_gmac.c:1.2
--- src/sys/dev/ic/dwc_gmac.c:1.1 Mon Sep 8 14:24:32 2014
+++ src/sys/dev/ic/dwc_gmac.c Tue Sep 9 07:18:35 2014
@@ -39,7 +39,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: dwc_gmac.c,v 1.1 2014/09/08 14:24:32 martin Exp $");
+__KERNEL_RCSID(1, "$NetBSD: dwc_gmac.c,v 1.2 2014/09/09 07:18:35 martin Exp $");
#include "opt_inet.h"
@@ -162,6 +162,7 @@ dwc_gmac_attach(struct dwc_gmac_softc *s
/*
* Attach MII subdevices
*/
+ sc->sc_ec.ec_mii = &sc->sc_mii;
ifmedia_init(&mii->mii_media, 0, ether_mediachange, ether_mediastatus);
mii->mii_ifp = ifp;
mii->mii_readreg = dwc_gmac_miibus_read_reg;
@@ -793,9 +794,11 @@ dwc_gmac_intr(struct dwc_gmac_softc *sc)
uint32_t status, dma_status;
status = bus_space_read_4(sc->sc_bst, sc->sc_bsh, AWIN_GMAC_MAC_INTR);
- if (status & AWIN_GMAC_MII_IRQ)
+ if (status & AWIN_GMAC_MII_IRQ) {
(void)bus_space_read_4(sc->sc_bst, sc->sc_bsh,
AWIN_GMAC_MII_STATUS);
+ mii_pollstat(&sc->sc_mii);
+ }
dma_status = bus_space_read_4(sc->sc_bst, sc->sc_bsh,
AWIN_GMAC_DMA_STATUS);