[PATCH AUTOSEL 4.19 5/6] mt7530 fix mt7530_fdb_write vid missing ivl bit
Eric Woudstra
ericwouds at gmail.com
Sat Jul 31 06:27:04 PDT 2021
A few days after this patch, I send in another as it needs a fix. If you apply this patch, please also apply the other: set ivl bit only for vid larger than 1.
On Jul 27, 2021, 3:20 PM, at 3:20 PM, Sasha Levin <sashal at kernel.org> wrote:
>From: Eric Woudstra <ericwouds at gmail.com>
>
>[ Upstream commit 11d8d98cbeef1496469b268d79938b05524731e8 ]
>
>According to reference guides mt7530 (mt7620) and mt7531:
>
>NOTE: When IVL is reset, MAC[47:0] and FID[2:0] will be used to
>read/write the address table. When IVL is set, MAC[47:0] and CVID[11:0]
>will be used to read/write the address table.
>
>Since the function only fills in CVID and no FID, we need to set the
>IVL bit. The existing code does not set it.
>
>This is a fix for the issue I dropped here earlier:
>
>http://lists.infradead.org/pipermail/linux-mediatek/2021-June/025697.html
>
>With this patch, it is now possible to delete the 'self' fdb entry
>manually. However, wifi roaming still has the same issue, the entry
>does not get deleted automatically. Wifi roaming also needs a fix
>somewhere else to function correctly in combination with vlan.
>
>Signed-off-by: Eric Woudstra <ericwouds at gmail.com>
>Signed-off-by: David S. Miller <davem at davemloft.net>
>Signed-off-by: Sasha Levin <sashal at kernel.org>
>---
> drivers/net/dsa/mt7530.c | 1 +
> drivers/net/dsa/mt7530.h | 1 +
> 2 files changed, 2 insertions(+)
>
>diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
>index 6335c4ea0957..96dbc51caf48 100644
>--- a/drivers/net/dsa/mt7530.c
>+++ b/drivers/net/dsa/mt7530.c
>@@ -414,6 +414,7 @@ mt7530_fdb_write(struct mt7530_priv *priv, u16 vid,
> int i;
>
> reg[1] |= vid & CVID_MASK;
>+ reg[1] |= ATA2_IVL;
> reg[2] |= (aging & AGE_TIMER_MASK) << AGE_TIMER;
> reg[2] |= (port_mask & PORT_MAP_MASK) << PORT_MAP;
> /* STATIC_ENT indicate that entry is static wouldn't
>diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
>index 101d309ee445..72f53e6bc145 100644
>--- a/drivers/net/dsa/mt7530.h
>+++ b/drivers/net/dsa/mt7530.h
>@@ -43,6 +43,7 @@
> #define STATIC_EMP 0
> #define STATIC_ENT 3
> #define MT7530_ATA2 0x78
>+#define ATA2_IVL BIT(15)
>
> /* Register for address table write data */
> #define MT7530_ATWD 0x7c
>--
>2.30.2
More information about the Linux-mediatek
mailing list