[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