From 2c6ceccadeea768efd08c4d85466c76a4f9ec574 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Wed, 31 Jan 2018 07:36:51 +0000 Subject: [PATCH] [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) --- sys/dev/etherswitch/arswitch/arswitch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/etherswitch/arswitch/arswitch.c b/sys/dev/etherswitch/arswitch/arswitch.c index 26bd2f16fa7..6e88eafa9c1 100644 --- a/sys/dev/etherswitch/arswitch/arswitch.c +++ b/sys/dev/etherswitch/arswitch/arswitch.c @@ -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); }