Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2883920ybl; Thu, 29 Aug 2019 14:28:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqzm660eqwuSe3psFZwkeLNmUzpSo4p85oFlcQHTVwqmgK0Tv76GPBL12ksonJxHktCnHvgk X-Received: by 2002:a63:9d8a:: with SMTP id i132mr10192555pgd.410.1567114102782; Thu, 29 Aug 2019 14:28:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567114102; cv=none; d=google.com; s=arc-20160816; b=Fxe96TeeHsv0WtpSytUHOttQMkPyVNNW9rINDLphchVDr7tCAH+jzLXt/Z4N3HGmV3 ZvTMDbcLZcSWHDY7xJMHBZDvGca5czaW8WPPbjRpEsn9zRMt+Rlm5vYiNVKGNE9chve9 TNtqvFxogYiigweoTkOHJyq98uugPQTP9xSk4RnVccsFha/94CK/N4LGVUs1n8kidcPy WCtaCyNFIFykEVBJe/K/UZ6ie8v2zp/rS4ywSKoaUt8OoRB6RESJaDWmq5S+j1fLKhoO ZMQ+cofLco171Drcscw7kki+SBx2tAeemrIODEZA3Gxdm4FI5YMocpcvAaBawIrFFIwE n/0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:dkim-signature; bh=GWW8DLxytIiCzhfA2BJxy+/D87jQXnHMbpMx/kGEXeU=; b=0rq7CJITWBDpc9M+9/dbpoFOR9OYAJxFxUIXO+27dBbz+/MeP0Q1sNHJBBQrV1JDts Ax/eLtEKCZsGPwNCZJShz2xyBwJU4qWZ/K7OkmQhJdnMCQNeYK+35NqbHv3bjyt8KwLT O8gPMKnygwQ6pe3qGyBv296YXactj4uFqi+uUu1P9xGmTdy+ujSlqDPoadt14r39vOqK pkwytTLknXH/M2Pus8mGCqb7Z+kv/o0ooVuofrHtkRs1lZOejYriGRyXLg4/G53A3Qtl VmI0q/68ZSCL0l8KLZMeDxT1wZUbyW8e1XK06zQONrie6RrIkvX0UR59hkn98dTLb5pm AmAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pensando.io header.s=google header.b=SZGvIs6E; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t6si2906842pjv.81.2019.08.29.14.28.07; Thu, 29 Aug 2019 14:28:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@pensando.io header.s=google header.b=SZGvIs6E; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728442AbfH2V0k (ORCPT + 99 others); Thu, 29 Aug 2019 17:26:40 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:33532 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727546AbfH2V0j (ORCPT ); Thu, 29 Aug 2019 17:26:39 -0400 Received: by mail-pg1-f193.google.com with SMTP id n190so2287653pgn.0 for ; Thu, 29 Aug 2019 14:26:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pensando.io; s=google; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=GWW8DLxytIiCzhfA2BJxy+/D87jQXnHMbpMx/kGEXeU=; b=SZGvIs6E9TskHAVTLovdtnJ3wivDhHJPTxAcX2m2/O1Wt5ZB7JkMLW3C/v0a5DlJxr kjzCc0WgKXUVgNOgxXOQ7+n9XK0EqyIfi5o5jL95OK457mBy/xfRT7k+/qgv7XA0NeDb y7kSQTHOux1UP/gcY1ok2//XPPs84aEiEh1sH34eRHiUcUxmdrxWoX9OlPh6xLAqUJ8+ 9EengEykizGIUvi9nrVmOWE0jEoiC7Hb5vnkHtIX4Tc989bmaW53jkxPE7c7C5hSquY/ 8uz2XnV9v7Rv7MZg+uWTtl6GYByJIbw4MFDqFTYOEJK5is/VxOuY3EEc38vbskFjl2I2 PDRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=GWW8DLxytIiCzhfA2BJxy+/D87jQXnHMbpMx/kGEXeU=; b=Hc2bUhthBwacvK6aMKvP8iiz3pJFKfIpCSei74WoR8Fl+YDh6eix+uVGUA/95RiViV gcuXk+gFn9qOr57MzhaaDJt7Gwv1d2zfjCH7v1JY/24ZVnsLVJpoFym1wBkMDw+3GvRe QUH17CmYl9YX973UhG4gFBC3rM+BhthyHbL4N47ypPbAZy7n2I/yhIOtALb7mXmJYO8a GCt36cBcpu2xbl9im+FUM5uB5H4TEDvrSIn+Kd69TNeSCoFilKHwP2LM9RyFvVTVbA7B KdkaknVXARbsPNKwyOCCJq4ofz7/WBjsrnVX81AfHgQDGhu1Q5paclr7GaIR5/joAbaQ evRg== X-Gm-Message-State: APjAAAUVIOc+ofSS6Ib7+/FlsJ6O3tbs3nGQYc/jxQfzG+dC8ahsSOJI BQReu5XBdXcDxyVzmM18PYMRRA== X-Received: by 2002:a63:4a51:: with SMTP id j17mr10144639pgl.284.1567113998895; Thu, 29 Aug 2019 14:26:38 -0700 (PDT) Received: from Shannons-MacBook-Pro.local ([12.1.37.26]) by smtp.gmail.com with ESMTPSA id v67sm6499918pfb.45.2019.08.29.14.26.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 29 Aug 2019 14:26:38 -0700 (PDT) Subject: Re: [PATCH v2 net-next 02/15] MIPS: SGI-IP27: restructure ioc3 register access To: Thomas Bogendoerfer , Ralf Baechle , Paul Burton , James Hogan , "David S. Miller" , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org References: <20190829155014.9229-1-tbogendoerfer@suse.de> <20190829155014.9229-3-tbogendoerfer@suse.de> From: Shannon Nelson Message-ID: Date: Thu, 29 Aug 2019 14:26:35 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190829155014.9229-3-tbogendoerfer@suse.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/29/19 8:50 AM, Thomas Bogendoerfer wrote: > Break up the big ioc3 register struct into functional pieces to > make use in sub-function drivers more straightforward. And while > doing that get rid of all volatile access by using readX/writeX. > > Signed-off-by: Thomas Bogendoerfer > --- > diff --git a/arch/mips/sgi-ip27/ip27-console.c b/arch/mips/sgi-ip27/ip27-console.c > index 6bdb48d41276..5886bee89d06 100644 > --- a/arch/mips/sgi-ip27/ip27-console.c > +++ b/arch/mips/sgi-ip27/ip27-console.c > @@ -35,6 +35,7 @@ void prom_putchar(char c) > { > struct ioc3_uartregs *uart = console_uart(); > > - while ((uart->iu_lsr & 0x20) == 0); > - uart->iu_thr = c; > + while ((readb(&uart->iu_lsr) & 0x20) == 0) > + ; > + writeb(c, &uart->iu_thr); > } Is it ever possible to never see your bit get set? Instead of a tight forever spin, you might add a short delay and a retry limit. I see this in several other times in the following code as well.  It might be interesting to see how many times through and perhaps how many usecs are normally spent in these loops. Not a binding request, just a thought... sln