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:
		 Pavel Kubelun
					Pavel Kubelun
				
			
				
					committed by
					
						 John Crispin
						John Crispin
					
				
			
			
				
	
			
			
			 John Crispin
						John Crispin
					
				
			
						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; | ||||
|  | ||||
| 	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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user