From 062819b9cb1abcc20133a87434c1b07a3a82ef94 Mon Sep 17 00:00:00 2001
From: juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sat, 26 Jun 2010 19:15:48 +0000
Subject: [PATCH] generic: rtl8366: don't show link parameters if the link is
 down

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21908 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 .../files/drivers/net/phy/rtl8366rb.c         | 29 +++++++++++--------
 .../files/drivers/net/phy/rtl8366s.c          | 29 +++++++++++--------
 2 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366rb.c
index 98c5a0ba8..1069225d2 100644
--- a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366rb.c
+++ b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366rb.c
@@ -1119,19 +1119,24 @@ static int rtl8366rb_sw_get_port_link(struct switch_dev *dev,
 	if (val->port_vlan % 2)
 		data = data >> 8;
 
-	len = snprintf(rtl->buf, sizeof(rtl->buf),
-			"port:%d link:%s speed:%s %s-duplex %s%s%s",
-			val->port_vlan,
-			(data & RTL8366S_PORT_STATUS_LINK_MASK) ? "up" : "down",
-			rtl8366rb_speed_str(data &
+	if (data & RTL8366S_PORT_STATUS_LINK_MASK) {
+		len = snprintf(rtl->buf, sizeof(rtl->buf),
+				"port:%d link:up speed:%s %s-duplex %s%s%s",
+				val->port_vlan,
+				rtl8366rb_speed_str(data &
 					  RTL8366S_PORT_STATUS_SPEED_MASK),
-			(data & RTL8366S_PORT_STATUS_DUPLEX_MASK) ?
-				"full" : "half",
-			(data & RTL8366S_PORT_STATUS_TXPAUSE_MASK) ?
-				"tx-pause ": "",
-			(data & RTL8366S_PORT_STATUS_RXPAUSE_MASK) ?
-				"rx-pause " : "",
-			(data & RTL8366S_PORT_STATUS_AN_MASK) ? "nway ": "");
+				(data & RTL8366S_PORT_STATUS_DUPLEX_MASK) ?
+					"full" : "half",
+				(data & RTL8366S_PORT_STATUS_TXPAUSE_MASK) ?
+					"tx-pause ": "",
+				(data & RTL8366S_PORT_STATUS_RXPAUSE_MASK) ?
+					"rx-pause " : "",
+				(data & RTL8366S_PORT_STATUS_AN_MASK) ?
+					"nway ": "");
+	} else {
+		len = snprintf(rtl->buf, sizeof(rtl->buf), "port:%d link: down",
+				val->port_vlan);
+	}
 
 	val->value.s = rtl->buf;
 	val->len = len;
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366s.c b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366s.c
index 26d5c7880..f30a5a3c6 100644
--- a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366s.c
+++ b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366s.c
@@ -1087,19 +1087,24 @@ static int rtl8366s_sw_get_port_link(struct switch_dev *dev,
 	if (val->port_vlan % 2)
 		data = data >> 8;
 
-	len = snprintf(rtl->buf, sizeof(rtl->buf),
-			"port:%d link:%s speed:%s %s-duplex %s%s%s",
-			val->port_vlan,
-			(data & RTL8366S_PORT_STATUS_LINK_MASK) ? "up" : "down",
-			rtl8366s_speed_str(data &
+	if (data & RTL8366S_PORT_STATUS_LINK_MASK) {
+		len = snprintf(rtl->buf, sizeof(rtl->buf),
+				"port:%d link:up speed:%s %s-duplex %s%s%s",
+				val->port_vlan,
+				rtl8366s_speed_str(data &
 					  RTL8366S_PORT_STATUS_SPEED_MASK),
-			(data & RTL8366S_PORT_STATUS_DUPLEX_MASK) ?
-				"full" : "half",
-			(data & RTL8366S_PORT_STATUS_TXPAUSE_MASK) ?
-				"tx-pause ": "",
-			(data & RTL8366S_PORT_STATUS_RXPAUSE_MASK) ?
-				"rx-pause " : "",
-			(data & RTL8366S_PORT_STATUS_AN_MASK) ? "nway ": "");
+				(data & RTL8366S_PORT_STATUS_DUPLEX_MASK) ?
+					"full" : "half",
+				(data & RTL8366S_PORT_STATUS_TXPAUSE_MASK) ?
+					"tx-pause ": "",
+				(data & RTL8366S_PORT_STATUS_RXPAUSE_MASK) ?
+					"rx-pause " : "",
+				(data & RTL8366S_PORT_STATUS_AN_MASK) ?
+					"nway ": "");
+	} else {
+		len = snprintf(rtl->buf, sizeof(rtl->buf), "port:%d link: down",
+				val->port_vlan);
+	}
 
 	val->value.s = rtl->buf;
 	val->len = len;
-- 
2.20.1