Received: by 2002:ac0:8c9a:0:0:0:0:0 with SMTP id r26csp1679625ima; Sat, 2 Feb 2019 05:31:40 -0800 (PST) X-Google-Smtp-Source: ALg8bN7g8ZyTHG1sZJAFqgCdK5eahJSoNlxP2rYbkDEtZNxAcT+qHRMGPM4bQXZ2qLByhasku6Zp X-Received: by 2002:a17:902:1d4a:: with SMTP id u10mr42018449plu.122.1549114300488; Sat, 02 Feb 2019 05:31:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549114300; cv=none; d=google.com; s=arc-20160816; b=SJJEm4py28rAj1lHvFjgpL4/3vTVh+ih6jRwSClIrj+TIp5le1dt9dp7TrXwMAM8A3 EKeJ2V03pz6ruHAOMrv7aTOqliKhuAldkn3FyJeG0YZ4R71buokJPehYMtSEghHjzyWJ xLF+ipTUeiElDr/3zyzCveCZaSj+TMbcLOZN9oXdr5lgiz8J38RzQya/MxPQNYQPlaAv WIPYXRUNzHkCkPV832n3/KWezj39BzWSDsQTdAv18ajCA7y7vtOMQXl+dplC1ypRvW0N 2EwoHm62luk2r9y2D1kEWOdNVHFETpFitO36eequtWS/vbKiJmr/xVz+rsqa2AM83sG0 TIaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=he0Bsw5Vf/wHkfN5Aamwi2JON0ksk4JP2uT5ckkPotU=; b=XvFpz3QXEDNz1rqWPSSxkLrI0SwmPsT5knMCg2LJJm5OjHcrk88Wue/PX9Hhnf7US4 gfQ82FDRX4cZHTUVBjcbqBo581bA+01uvVzwHNZlNEnkXydk5NBoU528fo1Voh6CQObG pB4njFkWzZ3fM53eXBbz0QfJbCooVwvcwVBFKWXUhXvDA97AVqU/uXXML4Mf8g/Ha5Sv dTTUtPo3dFzsTHwXVDy/pFkAJsJIug5xYXjFLq6K9D65h26k+94n3qq1ya2ehbnYZ0U1 iDeXEc6ooWYwsz01Wg1QDAJhmOXX2NrlnRocYmKncVkwnarEKXGABMUkSD/cfwKSx2BD d37g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=se9hoaNH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n16si1010222pgg.168.2019.02.02.05.31.25; Sat, 02 Feb 2019 05:31:40 -0800 (PST) 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=@kernel.org header.s=default header.b=se9hoaNH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728081AbfBBNXv (ORCPT + 99 others); Sat, 2 Feb 2019 08:23:51 -0500 Received: from mail.kernel.org ([198.145.29.99]:39046 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727627AbfBBNXv (ORCPT ); Sat, 2 Feb 2019 08:23:51 -0500 Received: from bbrezillon (91-160-177-164.subs.proxad.net [91.160.177.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 653382173B; Sat, 2 Feb 2019 13:23:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1549113829; bh=YYuVGPM0JmRr/Umuc+MgJly7841AA9DjCf5V59+o7Ac=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=se9hoaNHQ2E7qpQ4RKfZDAbyUs+bv2e+UQx+UgS9jh14h0ym6ZBgDUwFLiBiv1BA4 6inOl6dlMW/yKZ6MNceWGJN0Rtga5JZNSbIGMuym3Fkz+J1icASXDPRygX7Fx1p92h EyZCeGIuz4tgZEb+E8nwKIwuEbYt9JdJzs6p2jNY= Date: Sat, 2 Feb 2019 14:23:37 +0100 From: Boris Brezillon To: Cc: , , , , , , , , , , , , Subject: Re: [PATCH v3 03/13] spi: atmel-quadspi: drop wrappers for iomem accesses Message-ID: <20190202142337.3c51947e@bbrezillon> In-Reply-To: <53c9f4b2-7022-e13d-65a4-2e1bed4d76b1@microchip.com> References: <20190202040653.1217-1-tudor.ambarus@microchip.com> <20190202040653.1217-4-tudor.ambarus@microchip.com> <20190202081111.0bbc4443@bbrezillon> <53c9f4b2-7022-e13d-65a4-2e1bed4d76b1@microchip.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 2 Feb 2019 08:44:27 +0000 wrote: > On 02/02/2019 09:11 AM, Boris Brezillon wrote: > > On Sat, 2 Feb 2019 04:07:19 +0000 > > wrote: > > > >> From: Tudor Ambarus > >> > >> The wrappers hid that the accesses are relaxed. Drop them. > >> > >> Suggested-by: Boris Brezillon > >> Signed-off-by: Tudor Ambarus > >> --- > >> v3: no change > >> v2: new patch > >> > >> drivers/spi/atmel-quadspi.c | 47 +++++++++++++++++++-------------------------- > >> 1 file changed, 20 insertions(+), 27 deletions(-) > >> > >> diff --git a/drivers/spi/atmel-quadspi.c b/drivers/spi/atmel-quadspi.c > >> index feeddcb25e1f..131374db0db4 100644 > >> --- a/drivers/spi/atmel-quadspi.c > >> +++ b/drivers/spi/atmel-quadspi.c > >> @@ -175,17 +175,6 @@ static const struct qspi_mode sama5d2_qspi_modes[] = { > >> { 4, 4, 4, QSPI_IFR_WIDTH_QUAD_CMD }, > >> }; > >> > >> -/* Register access functions */ > >> -static inline u32 qspi_readl(struct atmel_qspi *aq, u32 reg) > >> -{ > >> - return readl_relaxed(aq->regs + reg); > >> -} > >> - > >> -static inline void qspi_writel(struct atmel_qspi *aq, u32 reg, u32 value) > >> -{ > >> - writel_relaxed(value, aq->regs + reg); > >> -} > >> - > >> static inline bool is_compatible(const struct spi_mem_op *op, > >> const struct qspi_mode *mode) > >> { > >> @@ -229,6 +218,7 @@ static bool atmel_qspi_supports_op(struct spi_mem *mem, > >> static int atmel_qspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) > >> { > >> struct atmel_qspi *aq = spi_controller_get_devdata(mem->spi->master); > >> + void __iomem *base = aq->regs; > > > > Can we name this variable regs instead of base or even get rid of it > > and dereference aq->regs in the xxx_relaxed() calls (doesn't look like > > the lines would be over 80 chars even when doing that). With this > > addressed, you can add: > > > > Reviewed-by: Boris Brezillon > > I chose to introduce the "base" variable when I have at least 2 dereferences in > a function, as an optimization. In exec_op() for example, there are 6 > dereferences of aq->reqs. Why do you prefer keeping aq->regs? I tend to not add local variables unless they help improve readability or optimize things. In this case, I'd expect the compiler to be smart enough to detect that aq->reqs is used several times and store it in a register. When it comes to readability, I don't think it improve things, but that's probably a matter of taste.