From 809b2798849420e302b37de0b9be5a231220a60e Mon Sep 17 00:00:00 2001 From: Guo-Fu Tseng Date: Thu, 16 Dec 2010 21:23:51 +0800 Subject: [PATCH] jme: Fix hardware action of full-duplex Clear Transmit Timer/Retry setting while full-duplex. --- jme.c | 6 ++---- jme.h | 8 ++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/jme.c b/jme.c index 89c1ab7..ee39a05 100644 --- a/jme.c +++ b/jme.c @@ -442,16 +442,14 @@ jme_check_link(struct net_device *netdev, int testonly) if (phylink & PHY_LINK_DUPLEX) { jwrite32(jme, JME_TXMCS, TXMCS_DEFAULT); + jwrite32(jme, JME_TXTRHD, TXTRHD_FULLDUPLEX); ghc |= GHC_DPX; } else { jwrite32(jme, JME_TXMCS, TXMCS_DEFAULT | TXMCS_BACKOFF | TXMCS_CARRIERSENSE | TXMCS_COLLISION); - jwrite32(jme, JME_TXTRHD, TXTRHD_TXPEN | - ((0x2000 << TXTRHD_TXP_SHIFT) & TXTRHD_TXP) | - TXTRHD_TXREN | - ((8 << TXTRHD_TXRL_SHIFT) & TXTRHD_TXRL)); + jwrite32(jme, JME_TXTRHD, TXTRHD_HALFDUPLEX); } gpreg1 = GPREG1_DEFAULT; diff --git a/jme.h b/jme.h index 2ea3186..2011af2 100644 --- a/jme.h +++ b/jme.h @@ -798,6 +798,14 @@ enum jme_txtrhd_shifts { TXTRHD_TXRL_SHIFT = 0, }; +enum jme_txtrhd_values { + TXTRHD_FULLDUPLEX = 0x00000000, + TXTRHD_HALFDUPLEX = TXTRHD_TXPEN | + ((0x2000 << TXTRHD_TXP_SHIFT) & TXTRHD_TXP) | + TXTRHD_TXREN | + ((8 << TXTRHD_TXRL_SHIFT) & TXTRHD_TXRL), +}; + /* * RX Control/Status Bits */ -- 2.39.3