net: ar8327: modify some configuration of switch
Imported from https://source.codeaurora.org/quic/qsdk/system/openwrt/commit/?h=korg/linux-3.4.y/release/arugula_bb_cs&id=2be4f8a8b205ae1a37db44839864451ebe893e6e Signed-off-by: Pavel Kubelun <be.dissent@gmail.com> Enable flow control of LAN and WAN ports to get better performance. Setup pvid as 0 for all ports during initialisation to avoid confusion during system or switch INIT. Disable PORT MAC before config MAC to avoid it work abnormal. This change is for IR-054144, IR-057315. Change-Id: I345f3dffa59ad3f97150e09692723da12a7b1067 Signed-off-by: Zou Shunxiang <shunxian@codeaurora.org> Signed-off-by: xiaofeis <xiaofeis@codeaurora.org>
This commit is contained in:
parent
5a69f59602
commit
94e4ee5395
@ -154,6 +154,7 @@
|
||||
#define AR8216_PORT_STATUS_LINK_UP BIT(8)
|
||||
#define AR8216_PORT_STATUS_LINK_AUTO BIT(9)
|
||||
#define AR8216_PORT_STATUS_LINK_PAUSE BIT(10)
|
||||
#define AR8216_PORT_STATUS_FLOW_CONTROL BIT(12)
|
||||
|
||||
#define AR8216_REG_PORT_CTRL(_i) (AR8216_PORT_OFFSET(_i) + 0x0004)
|
||||
|
||||
|
@ -685,12 +685,20 @@ ar8327_init_port(struct ar8xxx_priv *priv, int port)
|
||||
else
|
||||
t = AR8216_PORT_STATUS_LINK_AUTO;
|
||||
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_STATUS(port), t);
|
||||
if (port != AR8216_PORT_CPU && port != 6) {
|
||||
/*hw limitation:if configure mac when there is traffic,
|
||||
port MAC may work abnormal. Need disable lan&wan mac at fisrt*/
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_STATUS(port), 0);
|
||||
msleep(100);
|
||||
t |= AR8216_PORT_STATUS_FLOW_CONTROL;
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_STATUS(port), t);
|
||||
} else {
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_STATUS(port), t);
|
||||
}
|
||||
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_HEADER(port), 0);
|
||||
|
||||
t = 1 << AR8327_PORT_VLAN0_DEF_SVID_S;
|
||||
t |= 1 << AR8327_PORT_VLAN0_DEF_CVID_S;
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_VLAN0(port), t);
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_VLAN0(port), 0);
|
||||
|
||||
t = AR8327_PORT_VLAN1_OUT_MODE_UNTOUCH << AR8327_PORT_VLAN1_OUT_MODE_S;
|
||||
ar8xxx_write(priv, AR8327_REG_PORT_VLAN1(port), t);
|
||||
|
Loading…
Reference in New Issue
Block a user