From 39c267bb01675db9ed6c9f57d1635352059f5eba Mon Sep 17 00:00:00 2001 From: bjh21 Date: Sun, 25 Mar 2001 01:06:59 +0000 Subject: [PATCH] Tweak handling of multicast on 80C04. I think we need to set the match mode to "multicast" for it to work, but I could be wrong. Also make ALLMULTI work on 80C04, but this is untested. --- sys/dev/ic/seeq8005.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sys/dev/ic/seeq8005.c b/sys/dev/ic/seeq8005.c index e6649d32f3fe..0028622f153e 100644 --- a/sys/dev/ic/seeq8005.c +++ b/sys/dev/ic/seeq8005.c @@ -1,4 +1,4 @@ -/* $NetBSD: seeq8005.c,v 1.12 2001/03/24 23:31:06 bjh21 Exp $ */ +/* $NetBSD: seeq8005.c,v 1.13 2001/03/25 01:06:59 bjh21 Exp $ */ /* * Copyright (c) 2000 Ben Harris @@ -64,7 +64,7 @@ #include #include -__RCSID("$NetBSD: seeq8005.c,v 1.12 2001/03/24 23:31:06 bjh21 Exp $"); +__RCSID("$NetBSD: seeq8005.c,v 1.13 2001/03/25 01:06:59 bjh21 Exp $"); #include #include @@ -699,9 +699,10 @@ ea_init(struct ifnet *ifp) sc->sc_config2 |= SEEQ_CFG2_RX_TX_DISABLE; /* Configure rx. */ + ea_mc_reset(sc); if (ifp->if_flags & IFF_PROMISC) sc->sc_config1 = SEEQ_CFG1_PROMISCUOUS; - else if (ifp->if_flags & IFF_ALLMULTI) + else if ((ifp->if_flags & IFF_ALLMULTI) || sc->sc_variant == SEEQ_8004) sc->sc_config1 = SEEQ_CFG1_MULTICAST; else sc->sc_config1 = SEEQ_CFG1_BROADCAST; @@ -1365,7 +1366,7 @@ ea_mc_reset_8004(struct seeq8005_softc *sc) ifp->if_flags |= IFF_ALLMULTI; for (i = 0; i < 8; i++) af[i] = 0xff; - return; + break; } cp = enm->enm_addrlo; crc = 0xffffffff;