[PATCH 1/2] ibm_newemac: PowerPC 440GX EMAC PHY clock workaround

Previous thread: [PATCH 2/2] ibm_newemac: PowerPC 440EP/440GR EMAC PHY clock workaround by Valentine Barshak on Thursday, March 27, 2008 - 10:42 am. (1 message)

Next thread: Re: kernel 2.6.25-rc7 highly unstable on high load by Eric Dumazet on Thursday, March 27, 2008 - 12:07 pm. (19 messages)
To: <linuxppc-dev@...>
Cc: <benh@...>, <jwboyer@...>, <jeff@...>, <netdev@...>
Date: Thursday, March 27, 2008 - 10:40 am

The PowerPC 440GX Taishan board fails to reset EMAC3 (reset timeout error)
if there's no link. Because of that it fails to find PHY chip. The older ibm_emac
driver had a workaround for that: the EMAC_CLK_INTERNAL/EMAC_CLK_EXTERNAL macros,
which toggle the Ethernet Clock Select bit in the SDR0_MFR register. This patch
does the same for "ibm,emac-440gx" compatible chips. The workaround forces
clock on -all- EMACs, so we select clock under global emac_phy_map_lock.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
drivers/net/ibm_newemac/core.c | 16 +++++++++++++++-
drivers/net/ibm_newemac/core.h | 8 ++++++--
2 files changed, 21 insertions(+), 3 deletions(-)

diff -pruN linux-2.6.orig/drivers/net/ibm_newemac/core.c linux-2.6/drivers/net/ibm_newemac/core.c
--- linux-2.6.orig/drivers/net/ibm_newemac/core.c 2008-02-22 19:56:26.000000000 +0300
+++ linux-2.6/drivers/net/ibm_newemac/core.c 2008-02-22 20:38:47.000000000 +0300
@@ -43,6 +43,8 @@
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/uaccess.h>
+#include <asm/dcr.h>
+#include <asm/dcr-regs.h>

#include "core.h"

@@ -2323,6 +2325,10 @@ static int __devinit emac_init_phy(struc
dev->phy.mdio_read = emac_mdio_read;
dev->phy.mdio_write = emac_mdio_write;

+ /* Enable internal clock source */
+ if (emac_has_feature(dev, EMAC_FTR_440GX_PHY_CLK_FIX))
+ dcri_clrset(SDR0, SDR0_MFR, 0, SDR0_MFR_ECS);
+
/* Configure EMAC with defaults so we can at least use MDIO
* This is needed mostly for 440GX
*/
@@ -2355,6 +2361,11 @@ static int __devinit emac_init_phy(struc
if (!emac_mii_phy_probe(&dev->phy, i))
break;
}
+
+ /* Enable external clock source */
+ if (emac_has_feature(dev, EMAC_FTR_440GX_PHY_CLK_FIX))
+ dcri_clrset(SDR0, SDR0_MFR, SDR0_MFR_ECS, 0);
+
mutex_unlock(&emac_phy_map_lock);
if (i == 0x20) {
printk(KERN_WARNING "%s: can't find PHY!\n", np->full_name);
@@ -2480,8 +2491,11 @@ static int __devinit emac...

To: Valentine Barshak <vbarshak@...>
Cc: <linuxppc-dev@...>, <benh@...>, <jwboyer@...>, <netdev@...>
Date: Friday, March 28, 2008 - 10:18 pm

is this for 2.6.25-rc?

--

To: Jeff Garzik <jeff@...>
Cc: Valentine Barshak <vbarshak@...>, <linuxppc-dev@...>, <benh@...>, <netdev@...>
Date: Friday, April 11, 2008 - 10:24 am

On Fri, 28 Mar 2008 22:18:25 -0400

Jeff, can I get an ack from you on this patch, and patch 2 in this
set? They depend on a patch in my tree and I'd like to include them in
my next push to Paul for 2.6.26.

josh
--

To: Josh Boyer <jwboyer@...>
Cc: Valentine Barshak <vbarshak@...>, <linuxppc-dev@...>, <benh@...>, <netdev@...>
Date: Saturday, April 12, 2008 - 4:28 pm

ACK

I had queried the status of these patches, and didn't receive any reply
initially from my query...

--

To: Jeff Garzik <jeff@...>
Cc: <linuxppc-dev@...>, <netdev@...>
Date: Saturday, April 12, 2008 - 4:47 pm

Erm... you did.

http://ozlabs.org/pipermail/linuxppc-dev/2008-March/053737.html

No worries though. I lose email all the time.

josh

--

To: <jwboyer@...>
Cc: <linuxppc-dev@...>, <netdev@...>
Date: Saturday, April 12, 2008 - 5:13 pm

Whoops, sorry about that!

Jeff

--

To: Jeff Garzik <jeff@...>
Cc: Valentine Barshak <vbarshak@...>, <linuxppc-dev@...>, <jwboyer@...>, <netdev@...>
Date: Friday, March 28, 2008 - 11:28 pm

Nah, too late imho.

Ben.

--

To: Jeff Garzik <jeff@...>
Cc: Valentine Barshak <vbarshak@...>, <linuxppc-dev@...>, <benh@...>, <netdev@...>
Date: Friday, March 28, 2008 - 11:30 pm

On Fri, 28 Mar 2008 22:18:25 -0400

No. This, and patch 2/2, are for 2.6.26 and depend on a patch in my
tree. These are the two Ben asked about going through the powerpc tree
but naturally we wanted an Ack from you first.

thx,
josh
--

Previous thread: [PATCH 2/2] ibm_newemac: PowerPC 440EP/440GR EMAC PHY clock workaround by Valentine Barshak on Thursday, March 27, 2008 - 10:42 am. (1 message)

Next thread: Re: kernel 2.6.25-rc7 highly unstable on high load by Eric Dumazet on Thursday, March 27, 2008 - 12:07 pm. (19 messages)