From patchwork Fri Aug 14 15:15:13 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: stephen hemminger X-Patchwork-Id: 31415 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 4BA02B70CF for ; Sat, 15 Aug 2009 01:20:35 +1000 (EST) Received: by ozlabs.org (Postfix) id 3F3A1DDDA0; Sat, 15 Aug 2009 01:20:35 +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 940E1DDD04 for ; Sat, 15 Aug 2009 01:20:34 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932576AbZHNPUL (ORCPT ); Fri, 14 Aug 2009 11:20:11 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932570AbZHNPUH (ORCPT ); Fri, 14 Aug 2009 11:20:07 -0400 Received: from suva.vyatta.com ([76.74.103.44]:44124 "EHLO suva.vyatta.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932559AbZHNPUG (ORCPT ); Fri, 14 Aug 2009 11:20:06 -0400 Received: from suva.vyatta.com (suva [127.0.0.1]) by suva.vyatta.com (8.13.7/8.13.7) with ESMTP id n7EFJpKS015880; Fri, 14 Aug 2009 08:19:51 -0700 Received: (from shemminger@localhost) by suva.vyatta.com (8.13.7/8.13.7/Submit) id n7EFJp1Q015879; Fri, 14 Aug 2009 08:19:51 -0700 Message-Id: <20090814151608.032131764@vyatta.com> References: <20090814151511.992669598@vyatta.com> User-Agent: quilt/0.46-1 Date: Fri, 14 Aug 2009 08:15:13 -0700 From: Stephen Hemminger To: David Miller Cc: netdev@vger.kernel.org, Mike McCormack Subject: [PATCH 2/9] sky2: Move tx reset functionality to sky2_tx_reset() Content-Disposition: inline; filename=sky2-tx2.patch Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mike McCormack This is pure refactoring. Signed-off-by: Mike McCormack Acked-by: Stephen Hemminger --- drivers/net/sky2.c | 44 ++++++++++++++++++++++++++------------------ 1 files changed, 26 insertions(+), 18 deletions(-) --- a/drivers/net/sky2.c 2009-08-14 07:58:43.806126697 -0700 +++ b/drivers/net/sky2.c 2009-08-14 07:58:44.833439109 -0700 @@ -1804,6 +1804,31 @@ static void sky2_tx_clean(struct net_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) { @@ -1841,26 +1866,9 @@ static int sky2_down(struct net_device * && 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);