From patchwork Mon May 5 19:20:51 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 345855 X-Patchwork-Delegate: davem@davemloft.net 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 B0A19140140 for ; Tue, 6 May 2014 05:21:26 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752636AbaEETVQ (ORCPT ); Mon, 5 May 2014 15:21:16 -0400 Received: from mail-ig0-f181.google.com ([209.85.213.181]:40129 "EHLO mail-ig0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752140AbaEETVO (ORCPT ); Mon, 5 May 2014 15:21:14 -0400 Received: by mail-ig0-f181.google.com with SMTP id h3so1921417igd.14 for ; Mon, 05 May 2014 12:21:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TbiHycJ4NPOe/WfCo8p4Y6/IlFrGR6vFy+1W5sA17n4=; b=we0EnLpCUxJOQW/0SHGIgZNK+bqp87HyXgue0R51w3XyTnlmFxxXLVVkVDscL6rg3L lDWccbVLNLWNqgrjNJJ8m2Gemw6MST71hkx+t7tRvha6ioUZO8X9BzRcrNDL/xLMbiDp Ra/fmO95/mML7VCivp54VqorRG1KnOj2fu/XEB3qUyzMcKun71vfbIb8Ak003tz6x4eT 71VcK/QFBcEXwR6mbOIwi62LkioE3ScMnZmdmiao+3R0ldYRgzs9A2MDWg8SOCef5oxc kjWvPSj5oT1e3Dextml551/4XUhoAvndOHGOkhL2WcMiR6H6Wm6q6gwfixxi9wbdAdyt Wq6w== X-Received: by 10.43.102.68 with SMTP id dd4mr5656739icc.69.1399317674439; Mon, 05 May 2014 12:21:14 -0700 (PDT) Received: from fainelli-desktop.broadcom.com (5520-maca-inet1-outside.broadcom.com. [216.31.211.11]) by mx.google.com with ESMTPSA id s8sm30233167ige.4.2014.05.05.12.21.13 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 05 May 2014 12:21:13 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: davem@davemloft.net, Florian Fainelli Subject: [PATCH net-next v2 1/2] net: systemport: only update UMAC_CMD if something changed Date: Mon, 5 May 2014 12:20:51 -0700 Message-Id: <1399317652-20078-2-git-send-email-f.fainelli@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1399317652-20078-1-git-send-email-f.fainelli@gmail.com> References: <1399317652-20078-1-git-send-email-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The link adjustment callback can be called as frequently as desired by the PHY library, as such, let's avoid doing a Read/Modify/Write sequence if nothing changed, which is more than likely since we are interfaced with a switch device. Signed-off-by: Florian Fainelli --- Changes in v2: - rebased against latest net-next/master drivers/net/ethernet/broadcom/bcmsysport.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c index 4dc8d1e9829b..e118e7411ca4 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -959,15 +959,16 @@ static void bcm_sysport_adj_link(struct net_device *dev) if (!phydev->pause) cmd_bits |= CMD_RX_PAUSE_IGNORE | CMD_TX_PAUSE_IGNORE; - reg = umac_readl(priv, UMAC_CMD); - reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) | - CMD_HD_EN | CMD_RX_PAUSE_IGNORE | - CMD_TX_PAUSE_IGNORE); - reg |= cmd_bits; - umac_writel(priv, reg, UMAC_CMD); + if (changed) { + reg = umac_readl(priv, UMAC_CMD); + reg &= ~((CMD_SPEED_MASK << CMD_SPEED_SHIFT) | + CMD_HD_EN | CMD_RX_PAUSE_IGNORE | + CMD_TX_PAUSE_IGNORE); + reg |= cmd_bits; + umac_writel(priv, reg, UMAC_CMD); - if (changed) phy_print_status(priv->phydev); + } } static int bcm_sysport_init_tx_ring(struct bcm_sysport_priv *priv,