Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-9]: src/sys/dev/pci Pull up following revision(s) (requested by m...



details:   https://anonhg.NetBSD.org/src/rev/7a6bad64a49a
branches:  netbsd-9
changeset: 460451:7a6bad64a49a
user:      martin <martin%NetBSD.org@localhost>
date:      Wed Oct 23 19:38:52 2019 +0000

description:
Pull up following revision(s) (requested by msaitoh in ticket #370):

        sys/dev/pci/if_bce.c: revision 1.55
        sys/dev/pci/if_bce.c: revision 1.56
        sys/dev/pci/if_bcereg.h: revision 1.5

- Add missing splnet()/splx() around mii_tick(). Same as OpenBSD rev. 1.23
- Use device_printf() instead of aprint_error_dev)() in bce_watchdog().
- Remove unnecessary inclusion.

>From OpenBSD:
 - Mark ETHERCAP_VLAN_MTU.
 - Clear the powerdown mode. Fixes PR kern/24911 reported by Werner Backes.
 - Set proper LED modes.

diffstat:

 sys/dev/pci/if_bce.c    |  23 +++++++++++++++--------
 sys/dev/pci/if_bcereg.h |   7 +++++--
 2 files changed, 20 insertions(+), 10 deletions(-)

diffs (97 lines):

diff -r 87f5ba5a13ab -r 7a6bad64a49a sys/dev/pci/if_bce.c
--- a/sys/dev/pci/if_bce.c      Wed Oct 23 19:33:07 2019 +0000
+++ b/sys/dev/pci/if_bce.c      Wed Oct 23 19:38:52 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bce.c,v 1.52 2019/05/30 02:32:18 msaitoh Exp $   */
+/* $NetBSD: if_bce.c,v 1.52.2.1 2019/10/23 19:38:52 martin Exp $        */
 
 /*
  * Copyright (c) 2003 Clifford Wright. All rights reserved.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bce.c,v 1.52 2019/05/30 02:32:18 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bce.c,v 1.52.2.1 2019/10/23 19:38:52 martin Exp $");
 
 #include "vlan.h"
 
@@ -63,8 +63,6 @@
 
 #include <dev/mii/mii.h>
 #include <dev/mii/miivar.h>
-#include <dev/mii/miidevs.h>
-#include <dev/mii/brgphyreg.h>
 
 #include <dev/pci/if_bcereg.h>
 
@@ -423,6 +421,8 @@
        ifp->if_stop = bce_stop;
        IFQ_SET_READY(&ifp->if_snd);
 
+       sc->ethercom.ec_capabilities |= ETHERCAP_VLAN_MTU;
+
        /* Initialize our media structures and probe the MII. */
 
        mii->mii_ifp = ifp;
@@ -653,7 +653,7 @@
 {
        struct bce_softc *sc = ifp->if_softc;
 
-       aprint_error_dev(sc->bce_dev, "device timeout\n");
+       device_printf(sc->bce_dev, "device timeout\n");
        ifp->if_oerrors++;
 
        (void) bce_init(ifp);
@@ -920,10 +920,15 @@
        sc->bce_txsnext = 0;
        sc->bce_txin = 0;
 
-       /* enable crc32 generation */
+       /* enable crc32 generation and set proper LED modes */
        bus_space_write_4(sc->bce_btag, sc->bce_bhandle, BCE_MACCTL,
            bus_space_read_4(sc->bce_btag, sc->bce_bhandle, BCE_MACCTL) |
-           BCE_EMC_CG);
+           BCE_EMC_CRC32_ENAB | BCE_EMC_LED);
+
+       /* reset or clear powerdown control bit  */
+       bus_space_write_4(sc->bce_btag, sc->bce_bhandle, BCE_MACCTL,
+           bus_space_read_4(sc->bce_btag, sc->bce_bhandle, BCE_MACCTL) &
+           ~BCE_EMC_PDOWN);
 
        /* setup DMA interrupt control */
        bus_space_write_4(sc->bce_btag, sc->bce_bhandle, BCE_DMAI_CTL, 1 << 24);        /* MAGIC */
@@ -1476,9 +1481,11 @@
 bce_tick(void *v)
 {
        struct bce_softc *sc = v;
+       int s;
 
-       /* Tick the MII. */
+       s = splnet();
        mii_tick(&sc->bce_mii);
+       splx(s);
 
        callout_reset(&sc->bce_timeout, hz, bce_tick, sc);
 }
diff -r 87f5ba5a13ab -r 7a6bad64a49a sys/dev/pci/if_bcereg.h
--- a/sys/dev/pci/if_bcereg.h   Wed Oct 23 19:33:07 2019 +0000
+++ b/sys/dev/pci/if_bcereg.h   Wed Oct 23 19:38:52 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bcereg.h,v 1.4 2005/12/11 12:22:49 christos Exp $        */
+/* $NetBSD: if_bcereg.h,v 1.4.170.1 2019/10/23 19:38:52 martin Exp $    */
 
 /*
  * Copyright (c) 2003 Clifford Wright. All rights reserved.
@@ -71,7 +71,10 @@
 /* Ethernet MAC Control */
 #define BCE_MACCTL                     0x00A8  /* ethernet mac control */
 /* mac control bits */
-#define BCE_EMC_CG                     0x00000001      /* crc32 generation */
+#define BCE_EMC_CRC32_ENAB             0x00000001      /* crc32 generation */
+#define BCE_EMC_PDOWN                  0x00000004      /* PHY powerdown */
+#define BCE_EMC_EDET                   0x00000008      /* PHY energy detect */
+#define BCE_EMC_LED                    0x000000e0      /* PHY LED control */
 
 /* DMA Interrupt control */
 #define BCE_DMAI_CTL                   0x0100



Home | Main Index | Thread Index | Old Index