net: dsa: mv88e6xxx: handle multiple ports in ATU
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>
Mon, 19 Sep 2016 23:56:11 +0000 (19:56 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Sep 2016 04:04:50 +0000 (00:04 -0400)
commit8847293992606677d5e446d1e712bd128ea7977f
treed039fd6b94a1f4fa2a39c42456b5931a47bc6173
parentaecc5cefc389735b5327d234e11d1fe505e1c280
net: dsa: mv88e6xxx: handle multiple ports in ATU

An address can be loaded in the ATU with multiple ports, for instance
when adding multiple ports to a Multicast group with "bridge mdb".

The current code doesn't allow that. Add an helper to get a single entry
from the ATU, then set or clear the requested port, before loading the
entry back in the ATU.

Note that the required _mv88e6xxx_atu_getnext function is defined below
mv88e6xxx_port_db_load_purge, so forward-declare it for the moment. The
ATU code will be isolated in future patches.

Fixes: 83dabd1fa84c ("net: dsa: mv88e6xxx: make switchdev DB ops generic")
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/chip.c