Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4375939pxb; Tue, 2 Mar 2021 13:37:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJzAJBiadJgmCSJtX3QLRQqn29nrKj9GsqXUpJMXphMDieQHrK65s1iJvR9jsjbcNXm70juE X-Received: by 2002:aa7:cb4d:: with SMTP id w13mr9208135edt.249.1614721064148; Tue, 02 Mar 2021 13:37:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614721064; cv=none; d=google.com; s=arc-20160816; b=y2MLPTi+1wQdHewIpe1DZbZYLS9MOzIo1xPeTc+EkhlRcodFAEIlsUHDHhT9ygX+8B 6DnwM8V+f322s+PFEyz0N7Jsi7CcAeIscnE8UYacq5stQylGn+P9NTNvGTVspVkWcgmu Cf9Z345Tcc1SDHA+KbGfZn2qOWmPhW0CHJnq7kQBTBs8DNCiDzZusRHNCPK5tLOTPAqK Cjg9AaFFk0xXyVpHuXJ9lKBMoJt0ps4rk4JzYr668XtuJcY/6eLZxQETioALMw7X60ua Bz8wHhpZ8Cq41K+rhDJeOh52/8YESmQf02RdWY3iK4eu3cHY+lSm4YxpCTheLTV0zBuC BHOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=G6F4Bli11RLWW6f1MF99CcqtY9u4xD61ZViKqHy0j0A=; b=HiJE6IdT5g/z4HyxGOo47zsGVuRCoXH7c90E0qqCHGlgHSiupma+/WEhOILD2bunKR 1nldnYNStltrxWjk/VSS++7k5e4Lk6c85OEJ1TKwTHOr/YTFTRpPn8x+aaVW8C0q1Cjp b+++g39JUey8aTi/+RWc+MMtFaZNeHOMZxVl8jO1m+vLXH8d0rIV6uy4bZKzl4Mua4yZ Qnnbh2sx3B0AnNhNQvY3rT1yPlijhOijRVLr+awcpW2DTpKSeiSJkFyOUkRUK9CwkVzq MGznFdxj+IuWR7lkPDAMGvdHefwTUGZSIngxW7ygHpSvrUfcCP/W1U466sOXUWfCfA8y IB+A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k12si9436486eds.217.2021.03.02.13.37.21; Tue, 02 Mar 2021 13:37:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1577776AbhCBJww (ORCPT + 99 others); Tue, 2 Mar 2021 04:52:52 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:57169 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238168AbhCBJgU (ORCPT ); Tue, 2 Mar 2021 04:36:20 -0500 Received: from mail-oi1-f175.google.com ([209.85.167.175]) by mrelayeu.kundenserver.de (mreue012 [213.165.67.97]) with ESMTPSA (Nemesis) id 1MZSJa-1lJswr442A-00WXqO; Tue, 02 Mar 2021 10:32:24 +0100 Received: by mail-oi1-f175.google.com with SMTP id 21so11704221oiq.7; Tue, 02 Mar 2021 01:32:23 -0800 (PST) X-Gm-Message-State: AOAM531hF36/sThj2owRkXrHWycqP6E58oQ72Gtd09/crl6sgULoNidy xbqaI+a6gfGt6u3woA6Wy30SzN8uOAzTUeF4/IM= X-Received: by 2002:aca:4fd3:: with SMTP id d202mr2418133oib.11.1614677542554; Tue, 02 Mar 2021 01:32:22 -0800 (PST) MIME-Version: 1.0 References: <20210226140305.26356-1-nsaenzjulienne@suse.de> <20210226140305.26356-10-nsaenzjulienne@suse.de> In-Reply-To: <20210226140305.26356-10-nsaenzjulienne@suse.de> From: Arnd Bergmann Date: Tue, 2 Mar 2021 10:32:06 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC 09/13] iommu/arm-smmu: Make use of dev_64bit_mmio_supported() To: Nicolas Saenz Julienne Cc: Linux ARM , DTML , "linux-kernel@vger.kernel.org" , Florian Fainelli , Rob Herring , Robin Murphy , Ard Biesheuvel , Christoph Hellwig , Neil Armstrong , David Woodhouse , Russell King - ARM Linux , Catalin Marinas , Will Deacon Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:legnmUJMED7xyeS16jB9arlUrQNnIgwgh0Z/SL2rsGfiqTRbTOf NtLEy8RNEn3XAqm45/VVsbBmfEhlqKHUNMatEBQRFkw+fk/l4iQTqfr/y/pY660ApdUonl1 u5t9+H1J39ZVaEgGEudbaI6UPC19yGDsriGVsyDm7Jv2e8Raqqn+gjb4N3Y41W2xyPOVgZR jUN3F9jgyIQY2/SHGhpBw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:0C2k/V7y7uE=:fNubMXZuJeLDiEayPIlmPO T9mI1e+Jz0jaPmEc7aGXw1MNZbKVyXPCcVgIgdlodX4XiHJQsstiDKmhfoeJhgEGpqtiMEB0H TEcW9tKynn5Bo3J6DUx+DqtEZyAA3o3KqkRxnC90+eCsZlgMuW9Q6/576B2gmtfPliJZ1LKhF N5odR4H0+kEqMatbPIuOVMHO2pkigboCgPcjOe9b0J1J1R09+EYW/cQuFYGUrVkYxk4GUi7eR xP4NycU9z8xkNpqw7mW5/9wEC/sbq89xg5KiG9sgsJlSg0qv+xiiGUypQ1bAah2JYf/m3/Obs UTuDlVEWk2tq+Mltn1BIE8vgvBsGoYK2R2Wbs1kL08KSaw1nflMqLF/Vg4pSNeY1gPXBFNrCB 7TYXVVMVYBNehSzpl7KJatUDVYtlxvZ7eRGZiV8v0Y0U77tLjNUWhayAY4n8WUZG5LrBXAY0v DSr8r/vYhuWlpajUAqeL+86aMoqIr2Fx8i69ovGUcRR8bzs2UZTkf884XjzHPu1pQAZtoQRWD bby7RVVLkA3/KzImJCypKlV5wsNhXNG7TxZSHRyMdMqPxHVeBLLaoNdMJgvXg6UkojOGZGows ncSjhSEEcarsD+Vi6q82Y11V9578RYmeeQ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 26, 2021 at 3:03 PM Nicolas Saenz Julienne wrote: > if (smmu->impl && unlikely(smmu->impl->write_reg)) > smmu->impl->write_reg(smmu, page, offset, val); > - else > + else if (dev_64bit_mmio_supported(smmu->dev)) > writel_relaxed(val, arm_smmu_page(smmu, page) + offset); > + else > + hi_lo_writeq_relaxed(val, arm_smmu_page(smmu, page) + offset); > } This is a writel_relaxed(), not a writeq_relaxed(), so I suppose you don't have to change it at all. > + else if (dev_64bit_mmio_supported(smmu->dev)) > + return readq_relaxed(arm_smmu_page(smmu, page) + offset); > + else > + return hi_lo_readq_relaxed(arm_smmu_page(smmu, page) + offset); > } I see this pattern repeat across multiple drivers. I think Christoph had originally suggested folding the if/else logic into the writel_relaxed() that is defined in include/linux/io-64-nonatomic-hi-lo.h, but of course that doesn't work if you need to pass a device pointer. It might still make sense to have another wrapper in that same file though, something like static inline hi_lo_writeq_relaxed_if_possible(struct device *dev, __u64 val, volatile void __iomem *addr) { if (dev_64bit_mmio_supported(smmu->dev)) { readq_relaxed(arm_smmu_page(smmu, page) + offset); } else { writel_relaxed(val >> 32, addr + 4); writel_relaxed(val, addr); } } Arnd