From patchwork Tue Aug 4 09:26:06 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike McCormack X-Patchwork-Id: 30713 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id C60DBB6F1F for ; Tue, 4 Aug 2009 19:29:12 +1000 (EST) Received: by ozlabs.org (Postfix) id B94C5DDD0C; Tue, 4 Aug 2009 19:29:12 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 3ABECDDD0B for ; Tue, 4 Aug 2009 19:29:12 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932716AbZHDJ3A (ORCPT ); Tue, 4 Aug 2009 05:29:00 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755320AbZHDJ3A (ORCPT ); Tue, 4 Aug 2009 05:29:00 -0400 Received: from mail-px0-f201.google.com ([209.85.216.201]:51004 "EHLO mail-px0-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755287AbZHDJ27 (ORCPT ); Tue, 4 Aug 2009 05:28:59 -0400 Received: by pxi39 with SMTP id 39so2801484pxi.4 for ; Tue, 04 Aug 2009 02:28:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:content-type :content-transfer-encoding; bh=bqoQA4GPsJa3bFuS4o5Ti4Ovm/Vp1YUZfco+X7aryL4=; b=iAULxTKgNlsGijw6yxUiX+HlZxmLDHOEmaERTQ9MSWvo/TKv2SGQlBDsuG6oAMRUu2 +E11rpXKFTMKt0C/hHuAMFL1oLZCo/JOkfVPPlegkRIfNk6S8jYX5WS2sN9WPJ0emPj9 t9fMxWj418mfyfWKSxVrkyOb+2mER/vY9nxQ8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :content-type:content-transfer-encoding; b=fLn4H2CoIuu/3vozvalc1Via3gpIdSPLCY2PyRme5Jb/brQ6FT7Ua1uMbm7WdKnkSK 7fZnLhjjV3ly5VwAx4H88+1UPNqE9RO0Rp2BENRnOhtUACnbuhlOmceY/c8LBlvCzVlx kmFsgvPWUlZRIsAm7wd9tfcI0MQc4iY3Tqs8s= Received: by 10.141.36.18 with SMTP id o18mr4852361rvj.233.1249378139560; Tue, 04 Aug 2009 02:28:59 -0700 (PDT) Received: from ?192.168.0.101? ([121.143.39.14]) by mx.google.com with ESMTPS id l31sm658081rvb.54.2009.08.04.02.28.57 (version=SSLv3 cipher=RC4-MD5); Tue, 04 Aug 2009 02:28:58 -0700 (PDT) Message-ID: <4A77FEAE.1080006@ring3k.org> Date: Tue, 04 Aug 2009 18:26:06 +0900 From: Mike McCormack User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090706) MIME-Version: 1.0 To: Stephen Hemminger CC: netdev@vger.kernel.org Subject: [PATCH 1/2] sky2: Move tx reset functionality to sky2_tx_reset() Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This is refactoring and should not affect functionality. Signed-off-by: Mike McCormack --- drivers/net/sky2.c | 44 ++++++++++++++++++++++++++------------------ 1 files changed, 26 insertions(+), 18 deletions(-) diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 1415a83..cb3412a 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -1809,6 +1809,31 @@ static void sky2_tx_clean(struct net_device *dev) netif_tx_unlock_bh(dev); } +static void sky2_tx_reset(struct sky2_port* sky2) +{ + unsigned port = sky2->port; + struct sky2_hw *hw = sky2->hw; + + /* Disable Force Sync bit and Enable Alloc bit */ + sky2_write8(hw, SK_REG(port, TXA_CTRL), + TXA_DIS_FSYNC | TXA_DIS_ALLOC | TXA_STOP_RC); + + /* Stop Interval Timer and Limit Counter of Tx Arbiter */ + sky2_write32(hw, SK_REG(port, TXA_ITI_INI), 0L); + sky2_write32(hw, SK_REG(port, TXA_LIM_INI), 0L); + + /* Reset the PCI FIFO of the async Tx queue */ + sky2_write32(hw, Q_ADDR(txqaddr[port], Q_CSR), + BMU_RST_SET | BMU_FIFO_RST); + + /* Reset the Tx prefetch units */ + sky2_write32(hw, Y2_QADDR(txqaddr[port], PREF_UNIT_CTRL), + PREF_UNIT_RST_SET); + + sky2_write32(hw, RB_ADDR(txqaddr[port], RB_CTRL), RB_RST_SET); + sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_SET); +} + /* Network shutdown */ static int sky2_down(struct net_device *dev) { @@ -1850,26 +1875,9 @@ static int sky2_down(struct net_device *dev) && port == 0 && hw->dev[1] && netif_running(hw->dev[1]))) sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_SET); - /* Disable Force Sync bit and Enable Alloc bit */ - sky2_write8(hw, SK_REG(port, TXA_CTRL), - TXA_DIS_FSYNC | TXA_DIS_ALLOC | TXA_STOP_RC); - - /* Stop Interval Timer and Limit Counter of Tx Arbiter */ - sky2_write32(hw, SK_REG(port, TXA_ITI_INI), 0L); - sky2_write32(hw, SK_REG(port, TXA_LIM_INI), 0L); - - /* Reset the PCI FIFO of the async Tx queue */ - sky2_write32(hw, Q_ADDR(txqaddr[port], Q_CSR), - BMU_RST_SET | BMU_FIFO_RST); - - /* Reset the Tx prefetch units */ - sky2_write32(hw, Y2_QADDR(txqaddr[port], PREF_UNIT_CTRL), - PREF_UNIT_RST_SET); - - sky2_write32(hw, RB_ADDR(txqaddr[port], RB_CTRL), RB_RST_SET); + sky2_tx_reset(sky2); sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET); - sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_SET); /* Force any delayed status interrrupt and NAPI */ sky2_write32(hw, STAT_LEV_TIMER_CNT, 0);