Skip to contentSkip to conversation

drivers: net: vsc9953: Fix bug when PVID is shown for disabled ports only

PATCH New Codrin Ciubotariu 3 participants 9 messages Mar 14, 2016 – Apr 8, 2016 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers: net: vsc9953: Fix bug when PVID is shown for disabled ports only

---
 drivers/net/vsc9953.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/vsc9953.c +1 -1
index 44afe14..ef1435f 100644
@@ -335,7 +335,7 @@ static int vsc9953_port_vlan_pvid_get(int port_nr, int *pvid)
 	struct vsc9953_analyzer *l2ana_reg;
 
 	/* Administrative down */
-	if (vsc9953_l2sw.port[port_nr].enabled) {
+	if (!vsc9953_l2sw.port[port_nr].enabled) {
 		printf("Port %d is administrative down\n", port_nr);
 		return -1;
 	}
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/1 powerpc: t1040qds: Use generic ethsw commands

The commands for the VSC9953 l2 switch from T1040 became generic in patch https://patchwork.ozlabs.org/patch/499748/ and the define was renamed.

---
 include/configs/T1040QDS.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/T1040QDS.h +1 -1
index 2e7892f..15ae390 100644
@@ -686,7 +686,7 @@ unsigned long get_board_ddr_clk(void);
 
 /* Enable VSC9953 L2 Switch driver */
 #define CONFIG_VSC9953
-#define CONFIG_VSC9953_CMD
+#define CONFIG_CMD_ETHSW
 #define CONFIG_SYS_FM1_QSGMII11_PHY_ADDR	0x14
 #define CONFIG_SYS_FM1_QSGMII21_PHY_ADDR	0x18
 
Signature · 1 line
1.9.3
#3 lore raw

PATCH 1/1 powerpc: t1040qds: Use generic ethsw commands

In reply to Codrin Ciubotariu
Quoted 9 lines · Codrin Ciubotariu

The commands for the VSC9953 l2 switch from T1040 became generic in patch https://patchwork.ozlabs.org/patch/499748/ and the define was renamed.

---
 include/configs/T1040QDS.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to u-boot-mpc85xx master. Awaiting upstream.

Thanks.

York

#4 lore raw

PATCH 1/1 drivers: net: vsc9953: Do not configure disabled ports

In reply to Codrin Ciubotariu

Some SerDes protocols might not enable all l2switch ports. In this case, these ports should not be configured to perform Rx/Tx operations. This also fixes an issue when flooded frames were also switched to disabled ports and frames start to accumulate, consuming memory and eventually causing head-of-line blocking for other frames.

---
 drivers/net/vsc9953.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
drivers/net/vsc9953.c +8 -4
index ef1435f..2388438 100644
@@ -2525,6 +2525,9 @@ void vsc9953_init(bd_t *bis)
 		if (vsc9953_port_init(i))
 			printf("Failed to initialize l2switch port %d\n", i);
 
+		if (!vsc9953_l2sw.port[i].enabled)
+			continue;
+
 		/* Enable VSC9953 GMII Ports Port ID 0 - 7 */
 		if (VSC9953_INTERNAL_PORT_CHECK(i)) {
 			out_le32(&l2ana_reg->pfc[i].pfc_cfg,
@@ -2537,6 +2540,11 @@ void vsc9953_init(bd_t *bis)
 			out_le32(&l2sys_reg->pause_cfg.mac_fc_cfg[i],
 				 VSC9953_MAC_FC_CFG);
 		}
+
+		l2dev_gmii_reg = (struct vsc9953_dev_gmii *)
+				 (VSC9953_OFFSET + VSC9953_DEV_GMII_OFFSET +
+				 T1040_SWITCH_GMII_DEV_OFFSET * i);
+
 		out_le32(&l2dev_gmii_reg->port_mode.clock_cfg,
 			 VSC9953_CLOCK_CFG);
 		out_le32(&l2dev_gmii_reg->mac_cfg_status.mac_ena_cfg,
@@ -2559,10 +2567,6 @@ void vsc9953_init(bd_t *bis)
 		/* WAIT FOR 2 us*/
 		udelay(2);
 
-		l2dev_gmii_reg = (struct vsc9953_dev_gmii *)(
-				(char *)l2dev_gmii_reg
-				+ T1040_SWITCH_GMII_DEV_OFFSET);
-
 		/* Initialize Lynx PHY Wrappers */
 		phy_addr = 0;
 		if (vsc9953_l2sw.port[i].enet_if ==
Signature · 1 line
1.9.3
#5 lore raw

PATCH 1/1 drivers: net: vsc9953: Do not configure disabled ports

Quoted 7 lines · Codrin Ciubotariu

Some SerDes protocols might not enable all l2switch ports. In this case, these ports should not be configured to perform Rx/Tx operations. This also fixes an issue when flooded frames were also switched to disabled ports and frames start to accumulate, consuming memory and eventually causing head-of-line blocking for other frames.

#6 lore raw

PATCH 1/1 drivers: net: vsc9953: Do not configure disabled ports

In reply to Codrin Ciubotariu
Quoted 11 lines · Codrin Ciubotariu

Some SerDes protocols might not enable all l2switch ports. In this case, these ports should not be configured to perform Rx/Tx operations. This also fixes an issue when flooded frames were also switched to disabled ports and frames start to accumulate, consuming memory and eventually causing head-of-line blocking for other frames.

---
 drivers/net/vsc9953.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Applied to u-boot-fsl-qoriq master. Awaiting upstream. Thanks.

York