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...
is this for 2.6.25-rc?
--
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
--
ACK
I had queried the status of these patches, and didn't receive any reply
initially from my query...--
Erm... you did.
http://ozlabs.org/pipermail/linuxppc-dev/2008-March/053737.html
No worries though. I lose email all the time.
josh
--
Whoops, sorry about that!
Jeff
--
Nah, too late imho.
Ben.
--
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
--
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Amit K. Arora | [RFC] Heads up on sys_fallocate() |
| Laurent Riffard | Re: 2.6.25-rc2-mm1: WARNING at arch/x86/mm/ioremap.c:129 |
| Alan Cox | Re: x86: 4kstacks default |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 34/37] dccp: Auto-load (when supported) CCID plugins for negotiation |
| Maciej W. Rozycki | Re: [PATCH] PHYLIB: IRQ event workqueue handling fixes |
| John P Poet | Realtek 8111C transmit timed out |
git: | |
