diff options
| -rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366rb.c | 8 | ||||
| -rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366s.c | 7 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c index c006f73de..420a5523c 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c @@ -70,6 +70,8 @@  #define RTL8366RB_PHY_NO_OFFSET			9  #define RTL8366RB_PHY_NO_MASK			(0x1f << 9) +#define RTL8366RB_VLAN_INGRESS_CTRL2_REG	0x037f +  /* LED control registers */  #define RTL8366RB_LED_BLINKRATE_REG		0x0430  #define RTL8366RB_LED_BLINKRATE_BIT		0 @@ -288,6 +290,12 @@ static int rtl8366rb_hw_init(struct rtl8366_smi *smi)  	/* disable auto ageing for all ports */  	REG_WR(smi, RTL8366RB_SSCR1, RTL8366RB_PORT_ALL); +	/* +	 * discard VLAN tagged packets if the port is not a member of +	 * the VLAN with which the packets is associated. +	 */ +	REG_WR(smi, RTL8366RB_VLAN_INGRESS_CTRL2_REG, RTL8366RB_PORT_ALL); +  	/* don't drop packets whose DA has not been learned */  	REG_RMW(smi, RTL8366RB_SSCR2, RTL8366RB_SSCR2_DROP_UNKNOWN_DA, 0); diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c index 91030ac48..45da8fd8e 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c @@ -112,6 +112,7 @@  #define RTL8366S_VLAN_MEMCONF_BASE		0x0016 +#define RTL8366S_VLAN_MEMBERINGRESS_REG		0x0379  #define RTL8366S_PORT_LINK_STATUS_BASE		0x0060  #define RTL8366S_PORT_STATUS_SPEED_MASK		0x0003 @@ -299,6 +300,12 @@ static int rtl8366s_hw_init(struct rtl8366_smi *smi)  	/* disable auto ageing for all ports */  	REG_WR(smi, RTL8366S_SSCR1, RTL8366S_PORT_ALL); +	/* +	 * discard VLAN tagged packets if the port is not a member of +	 * the VLAN with which the packets is associated. +	 */ +	REG_WR(smi, RTL8366S_VLAN_MEMBERINGRESS_REG, RTL8366S_PORT_ALL); +  	/* don't drop packets whose DA has not been learned */  	REG_RMW(smi, RTL8366S_SSCR2, RTL8366S_SSCR2_DROP_UNKNOWN_DA, 0); | 
