Skip to contentSkip to conversation

ibm_emac: Correctly detect old link speed

PATCH Applied Stefan Roese 3 participants 4 messages May 16, 2007 – May 21, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ibm_emac: Correctly detect old link speed

This patch fixes a bug where the link speed change was not detected correctly. This occured on a 440SPe (EMAC4) system where the old link speed was 100Mbps and the new link speed is 1000Mbps.

---
commit 1e2a6085bbb6bd384e0812b6e9c62d18d14e1c0f
tree f441a914c9d66fb00fcde1e4bd7e02effba20dc7
parent 7b104bcb8e460e45a1aebe3da9b86aacdb4cab12
author Stefan Roese <[email protected]> Wed, 16 May 2007 12:54:40 +0200 committer Stefan Roese <[email protected]> Wed, 16 May 2007 12:54:40 +0200

 drivers/net/ibm_emac/ibm_emac_core.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)
drivers/net/ibm_emac/ibm_emac_core.c +12 -6
index 50035eb..ab38727 100644
@@ -926,12 +926,18 @@ static int emac_link_differs(struct ocp_enet_private *dev)
 	int duplex = r & EMAC_MR1_FDE ? DUPLEX_FULL : DUPLEX_HALF;
 	int speed, pause, asym_pause;
 
-	if (r & (EMAC_MR1_MF_1000 | EMAC_MR1_MF_1000GPCS))
-		speed = SPEED_1000;
-	else if (r & EMAC_MR1_MF_100)
-		speed = SPEED_100;
-	else
-		speed = SPEED_10;
+	switch (r & EMAC_MR1_MF_MASK) {
+	case EMAC_MR1_MF_1000:
+	case EMAC_MR1_MF_1000GPCS:
+		speed = 1000;
+		break;
+	case EMAC_MR1_MF_10:
+		speed = 10;
+		break;
+	case EMAC_MR1_MF_100:
+	default:
+		speed = 100;
+	}
 
 	switch (r & (EMAC_MR1_EIFC | EMAC_MR1_APP)) {
 	case (EMAC_MR1_EIFC | EMAC_MR1_APP):
#1 lore raw
Quoted 4 lines · Stefan Roese

This patch fixes a bug where the link speed change was not detected correctly. This occured on a 440SPe (EMAC4) system where the old link speed was 100Mbps and the new link speed is 1000Mbps.

Good catch, Stefan. Unfortunately, I have to NACK your patch - you broke non EMAC4 builds.

Correct fix is just to remove EMAC_MR1_MF_1000GPCS from the first if condition.

I'll send correct fix shortly along with other queued patches.

Signature · 1 line
Eugene
#2 lore raw
Quoted 8 lines · Eugene Surovegin
Quoted 4 lines · Stefan Roese

This patch fixes a bug where the link speed change was not detected correctly. This occured on a 440SPe (EMAC4) system where the old link speed was 100Mbps and the new link speed is 1000Mbps.

Good catch, Stefan. Unfortunately, I have to NACK your patch - you broke non EMAC4 builds.

Yes, you're right of course.

Quoted 2 lines

Correct fix is just to remove EMAC_MR1_MF_1000GPCS from the first if condition.

Yep.

Quoted 1 line

I'll send correct fix shortly along with other queued patches.

Thanks.

Best regards,
Stefan

Applied
#3 lore raw
Quoted 12 lines · Stefan Roese
Quoted 8 lines · Eugene Surovegin
Quoted 4 lines · Stefan Roese

This patch fixes a bug where the link speed change was not detected correctly. This occured on a 440SPe (EMAC4) system where the old link speed was 100Mbps and the new link speed is 1000Mbps.

Good catch, Stefan. Unfortunately, I have to NACK your patch - you broke non EMAC4 builds.

Yes, you're right of course.

Quoted 8 lines
Quoted 2 lines

Correct fix is just to remove EMAC_MR1_MF_1000GPCS from the first if condition.

Yep.

Quoted 1 line

I'll send correct fix shortly along with other queued patches.

Thanks.

I've merged essentially the same fix into the device tree aware "new_emac" driver.

Signature · 4 lines
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson