From patchwork Mon Feb 14 04:27:38 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guo-Fu Tseng X-Patchwork-Id: 83035 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40F97B7120 for ; Mon, 14 Feb 2011 15:28:33 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755479Ab1BNE23 (ORCPT ); Sun, 13 Feb 2011 23:28:29 -0500 Received: from cooldavid.org ([114.33.45.68]:48728 "EHLO cooldavid.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755474Ab1BNE22 (ORCPT ); Sun, 13 Feb 2011 23:28:28 -0500 Received: from kh (cooldavid-1-pt.tunnel.tserv3.fmt2.ipv6.he.net [IPv6:2001:470:1f04:16bf::2]) by cooldavid.org (Postfix) with SMTP id 7B696247C72; Mon, 14 Feb 2011 12:28:27 +0800 (CST) Received: by kh (sSMTP sendmail emulation); Mon, 14 Feb 2011 12:28:13 +0800 From: "Guo-Fu Tseng" To: "David Miller" Cc: Guo-Fu Tseng , "linux-netdev" , "Aries Lee" , "Devinchiu" , "Ethan Hsiao" Subject: [PATCH net-next-2.6 5/9] jme: Fix hardware action of full-duplex Date: Mon, 14 Feb 2011 12:27:38 +0800 Message-Id: <1297657662-30289-5-git-send-email-cooldavid@cooldavid.org> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <1297657662-30289-1-git-send-email-cooldavid@cooldavid.org> References: <1297657662-30289-1-git-send-email-cooldavid@cooldavid.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Guo-Fu Tseng Clear Transmit Timer/Retry setting while full-duplex. Signed-off-by: Guo-Fu Tseng --- drivers/net/jme.c | 6 ++---- drivers/net/jme.h | 8 ++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/jme.c b/drivers/net/jme.c index 490bc0f..6996d04 100644 --- a/drivers/net/jme.c +++ b/drivers/net/jme.c @@ -439,16 +439,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/drivers/net/jme.h b/drivers/net/jme.h index dc4af57..b33bc5b 100644 --- a/drivers/net/jme.h +++ b/drivers/net/jme.h @@ -658,6 +658,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 */