svn commit: r328618 - head/sys/dev/etherswitch/arswitch

Adrian Chadd adrian at FreeBSD.org
Wed Jan 31 07:36:52 UTC 2018


Author: adrian
Date: Wed Jan 31 07:36:51 2018
New Revision: 328618
URL: https://svnweb.freebsd.org/changeset/base/328618

Log:
  [arswitch] Fix ATU flushing on AR8216/AR8316 and most of the later chips.
  
  The switch hardware requires this bit to be set in order to kick start the
  actual ATU update.  This was being masked on some chips by the learning
  programming (what to do when a MAC address moves, hash table collision, etc)
  which is currently inconsistent between chips.
  
  Tested:
  
  * AR9344 SoC (AR7240 style switch internal)

Modified:
  head/sys/dev/etherswitch/arswitch/arswitch.c

Modified: head/sys/dev/etherswitch/arswitch/arswitch.c
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitch.c	Wed Jan 31 07:20:34 2018	(r328617)
+++ head/sys/dev/etherswitch/arswitch/arswitch.c	Wed Jan 31 07:36:51 2018	(r328618)
@@ -305,7 +305,7 @@ ar8xxx_atu_flush(struct arswitch_softc *sc)
 	if (!ret)
 		arswitch_writereg(sc->sc_dev,
 		    AR8216_REG_ATU,
-		    AR8216_ATU_OP_FLUSH);
+		    AR8216_ATU_OP_FLUSH | AR8216_ATU_ACTIVE);
 
 	return (ret);
 }


More information about the svn-src-head mailing list