From patchwork Mon Dec 31 15:25:37 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Mohr X-Patchwork-Id: 208876 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 EEB7E2C00A9 for ; Tue, 1 Jan 2013 02:35:17 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751643Ab2LaPfL (ORCPT ); Mon, 31 Dec 2012 10:35:11 -0500 Received: from rhlx01.hs-esslingen.de ([129.143.116.10]:54114 "EHLO rhlx01.hs-esslingen.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751235Ab2LaPeo (ORCPT ); Mon, 31 Dec 2012 10:34:44 -0500 Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by rhlx01.hs-esslingen.de (Postfix) with ESMTPS id 58D1DA0880; Mon, 31 Dec 2012 16:25:52 +0100 (CET) From: Andreas Mohr To: andim2@users.sf.net Cc: Roger Luethi , netdev@vger.kernel.org, Francois Romieu Subject: [PATCH RFC 03/15] via-rhine: small rhine_wait_bit() improvement. Date: Mon, 31 Dec 2012 16:25:37 +0100 Message-Id: <1356967549-5056-4-git-send-email-andi@lisas.de> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1356967549-5056-1-git-send-email-andi@lisas.de> References: <1356967549-5056-1-git-send-email-andi@lisas.de> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Andreas Mohr Precalculate actual I/O address, make sure to remember value in helper variable, add a logging helper line. Signed-off-by: Andreas Mohr --- drivers/net/ethernet/via/via-rhine.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c index 928d96f..6be6566 100644 --- a/drivers/net/ethernet/via/via-rhine.c +++ b/drivers/net/ethernet/via/via-rhine.c @@ -505,11 +505,19 @@ static void rhine_restart_tx(struct net_device *dev); static void rhine_wait_bit(struct rhine_private *rp, u8 reg, u8 mask, bool low) { - void __iomem *ioaddr = rp->base; + void __iomem *ioaddr_reg = rp->base; int i; + ioaddr_reg += reg; for (i = 0; i < 1024; i++) { - bool has_mask_bits = !!(ioread8(ioaddr + reg) & mask); + u8 val = ioread8(ioaddr_reg); + bool has_mask_bits = !!(val & mask); + + if (i < 20 /* avoid log spew */) { + /* netif_err(rp, hw, rp->dev, + "wait_bit %02x val %02x mask %02x %s hmb %d\n", + reg, val, mask, low ? "low" : "high", has_mask_bits); */ + } if (low ^ has_mask_bits) break;