While investigating and fixing/implenting proper ARL support for
bcm63xx, I encountered multiple minor issues in the current ARL
implementation:
* The ARL multicast support was not properly enabled for older chips,
and instead a potentially reserved bit was toggled.
* While traversing the ARL table, "Search done" triggered one final
entry which will be invalid for 4 ARL bin chips, and failed to stop
the search on chips with only one result register.
* For chips where we have only one result register, we only traversed at
most half the maximum entries.
I also had a fix for IVL_SVL_SELECT which is only valid for some chips,
but since this would only have an effect for !vlan_enabled, and we
always have that enabled, it isn't really worth fixing (and rather drop
the !vlan_enabled paths).
Jonas Gorski (3):
net: dsa: b53: fix enabling ip multicast
net: dsa: b53: stop reading ARL entries if search is done
net: dsa: b53: properly bound ARL searches for < 4 ARL bin chips
drivers/net/dsa/b53/b53_common.c | 15 +++++++++------
drivers/net/dsa/b53/b53_regs.h | 3 +--
2 files changed, 10 insertions(+), 8 deletions(-)
base-commit: d7d2fcf7ae31471b4e08b7e448b8fd0ec2e06a1b
--
2.43.0