From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CFCDC433EF for ; Wed, 24 Nov 2021 15:42:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345354AbhKXPpX (ORCPT ); Wed, 24 Nov 2021 10:45:23 -0500 Received: from mail.kernel.org ([198.145.29.99]:48560 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344439AbhKXPo4 (ORCPT ); Wed, 24 Nov 2021 10:44:56 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id C6EDF60FD9; Wed, 24 Nov 2021 15:41:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637768506; bh=dWjAjYTv1UJNuz4DlD4z4Q3QWuFZ2bz6r9JNBl8Oe8Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CJEc/g9s3M1t31hg6BTMpM9Qih98I29UPN+TCro87IWeQRjQHPkQatmiMwEk52okt QzBxwgD2jpwaDrH1I31gmMkKhRVi0dOO8aXbWFCxLPcTto9Q7LyOxj/lqJwNbtEdLp m/ftjBpEWPyXbwKv3u3OA25epyy/ULuTzgTRy22NlNKLh+LCAuh+LRb85llZWy72Pe u2pWSfGw5PBM6wzyuXXj1A5uLR9nzezKBIgYuhvRKyYntur0abMORJFaOnHRv3iluy uCfcUDi2KBKNLim/6zQ4OMxCS43jo0BUH+m+PPRBOMX5cGrkFO08Scp1TGo5lK5lKv H2Ha90ndMggEw== Received: by pali.im (Postfix) id EB6E5AFB; Wed, 24 Nov 2021 16:41:44 +0100 (CET) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Russell King , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement , Thomas Petazzoni , Lorenzo Pieralisi , Rob Herring , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Bjorn Helgaas , Dominik Brodowski , Nicolas Ferre , Alexandre Belloni , Ludovic Desroches , =?UTF-8?q?Marek=20Beh=C3=BAn?= Cc: linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] arm: ioremap: Implement standard PCI function pci_remap_iospace() Date: Wed, 24 Nov 2021 16:41:12 +0100 Message-Id: <20211124154116.916-2-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20211124154116.916-1-pali@kernel.org> References: <20211124154116.916-1-pali@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pci_remap_iospace() is standard PCI core function. Architecture code can reimplement default core implementation if needs custom arch specific functionality. ARM needs custom implementation due to pci_ioremap_set_mem_type() hook which allows ARM platforms to change mem type for iospace. Implement this pci_remap_iospace() function for ARM architecture to correctly handle pci_ioremap_set_mem_type() hook, which allows usage of this standard PCI core function also for platforms which needs different mem type (e.g. Marvell Armada 375, 38x and 39x). Signed-off-by: Pali Rohár --- arch/arm/include/asm/io.h | 5 +++++ arch/arm/mm/ioremap.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index c576fa7d9bf8..12eca75bdee9 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h @@ -182,6 +182,11 @@ static inline void pci_ioremap_set_mem_type(int mem_type) {} extern int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr); +struct resource; + +#define pci_remap_iospace pci_remap_iospace +int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr); + /* * PCI configuration space mapping function. * diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index 6e830b9418c9..fa3bde48d6a7 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c @@ -459,6 +459,21 @@ void pci_ioremap_set_mem_type(int mem_type) pci_ioremap_mem_type = mem_type; } +int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr) +{ + unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start; + + if (!(res->flags & IORESOURCE_IO)) + return -EINVAL; + + if (res->end > IO_SPACE_LIMIT) + return -EINVAL; + + return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr, + __pgprot(get_mem_type(pci_ioremap_mem_type)->prot_pte)); +} +EXPORT_SYMBOL(pci_remap_iospace); + int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr) { BUG_ON(offset + SZ_64K - 1 > IO_SPACE_LIMIT); -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DD6E3C433EF for ; Wed, 24 Nov 2021 15:43:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xLlvuHDOdqBae+aDOqqBzXzFAdYEtwtVIgArAj4KRcs=; b=yr+5QLa1xJn6gi iPxuDCcOOrl/D4XhDAufwJgues7RaT9w8rS4CBbQYW80WkFUHt7DliGp2xIjywnLyohVeLVn2spDP 1jNPBuvFM7c+qrE0yqkOwqY9X0B1+nS1eyGv85R8t9J69I3DgNtnA5UcAXEpLoA3HwD68C0ihnGnt y6lQACrc8R56XM8j5KD3ydJ5r5gZKNah3AvZwvJSdj8HTP74fKUigmByROZeMF6GRTb8CImG/HrVY 7lIK/FDpqNOOixDcRhALb8Qf98iKJM9kkgnO122A5Ts0hfILpO4cjgmXQ21iQMkVnmg1OY3Xg93HU RCp0atK7LXel7VjAHAng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mpuPK-0057EV-18; Wed, 24 Nov 2021 15:42:02 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mpuP5-00578m-8J for linux-arm-kernel@lists.infradead.org; Wed, 24 Nov 2021 15:41:48 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id C6EDF60FD9; Wed, 24 Nov 2021 15:41:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1637768506; bh=dWjAjYTv1UJNuz4DlD4z4Q3QWuFZ2bz6r9JNBl8Oe8Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CJEc/g9s3M1t31hg6BTMpM9Qih98I29UPN+TCro87IWeQRjQHPkQatmiMwEk52okt QzBxwgD2jpwaDrH1I31gmMkKhRVi0dOO8aXbWFCxLPcTto9Q7LyOxj/lqJwNbtEdLp m/ftjBpEWPyXbwKv3u3OA25epyy/ULuTzgTRy22NlNKLh+LCAuh+LRb85llZWy72Pe u2pWSfGw5PBM6wzyuXXj1A5uLR9nzezKBIgYuhvRKyYntur0abMORJFaOnHRv3iluy uCfcUDi2KBKNLim/6zQ4OMxCS43jo0BUH+m+PPRBOMX5cGrkFO08Scp1TGo5lK5lKv H2Ha90ndMggEw== Received: by pali.im (Postfix) id EB6E5AFB; Wed, 24 Nov 2021 16:41:44 +0100 (CET) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Russell King , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement , Thomas Petazzoni , Lorenzo Pieralisi , Rob Herring , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Bjorn Helgaas , Dominik Brodowski , Nicolas Ferre , Alexandre Belloni , Ludovic Desroches , =?UTF-8?q?Marek=20Beh=C3=BAn?= Cc: linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] arm: ioremap: Implement standard PCI function pci_remap_iospace() Date: Wed, 24 Nov 2021 16:41:12 +0100 Message-Id: <20211124154116.916-2-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20211124154116.916-1-pali@kernel.org> References: <20211124154116.916-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211124_074147_357100_07A49A5E X-CRM114-Status: GOOD ( 12.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org cGNpX3JlbWFwX2lvc3BhY2UoKSBpcyBzdGFuZGFyZCBQQ0kgY29yZSBmdW5jdGlvbi4gQXJjaGl0 ZWN0dXJlIGNvZGUgY2FuCnJlaW1wbGVtZW50IGRlZmF1bHQgY29yZSBpbXBsZW1lbnRhdGlvbiBp ZiBuZWVkcyBjdXN0b20gYXJjaCBzcGVjaWZpYwpmdW5jdGlvbmFsaXR5LgoKQVJNIG5lZWRzIGN1 c3RvbSBpbXBsZW1lbnRhdGlvbiBkdWUgdG8gcGNpX2lvcmVtYXBfc2V0X21lbV90eXBlKCkgaG9v awp3aGljaCBhbGxvd3MgQVJNIHBsYXRmb3JtcyB0byBjaGFuZ2UgbWVtIHR5cGUgZm9yIGlvc3Bh Y2UuCgpJbXBsZW1lbnQgdGhpcyBwY2lfcmVtYXBfaW9zcGFjZSgpIGZ1bmN0aW9uIGZvciBBUk0g YXJjaGl0ZWN0dXJlIHRvCmNvcnJlY3RseSBoYW5kbGUgcGNpX2lvcmVtYXBfc2V0X21lbV90eXBl KCkgaG9vaywgd2hpY2ggYWxsb3dzIHVzYWdlIG9mCnRoaXMgc3RhbmRhcmQgUENJIGNvcmUgZnVu Y3Rpb24gYWxzbyBmb3IgcGxhdGZvcm1zIHdoaWNoIG5lZWRzIGRpZmZlcmVudAptZW0gdHlwZSAo ZS5nLiBNYXJ2ZWxsIEFybWFkYSAzNzUsIDM4eCBhbmQgMzl4KS4KClNpZ25lZC1vZmYtYnk6IFBh bGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Ci0tLQogYXJjaC9hcm0vaW5jbHVkZS9hc20vaW8u aCB8ICA1ICsrKysrCiBhcmNoL2FybS9tbS9pb3JlbWFwLmMgICAgIHwgMTUgKysrKysrKysrKysr KysrCiAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9hcmNo L2FybS9pbmNsdWRlL2FzbS9pby5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vaW8uaAppbmRleCBj NTc2ZmE3ZDliZjguLjEyZWNhNzViZGVlOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9h c20vaW8uaAorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pby5oCkBAIC0xODIsNiArMTgyLDEx IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwY2lfaW9yZW1hcF9zZXRfbWVtX3R5cGUoaW50IG1lbV90 eXBlKSB7fQogCiBleHRlcm4gaW50IHBjaV9pb3JlbWFwX2lvKHVuc2lnbmVkIGludCBvZmZzZXQs IHBoeXNfYWRkcl90IHBoeXNfYWRkcik7CiAKK3N0cnVjdCByZXNvdXJjZTsKKworI2RlZmluZSBw Y2lfcmVtYXBfaW9zcGFjZSBwY2lfcmVtYXBfaW9zcGFjZQoraW50IHBjaV9yZW1hcF9pb3NwYWNl KGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzLCBwaHlzX2FkZHJfdCBwaHlzX2FkZHIpOworCiAv KgogICogUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgbWFwcGluZyBmdW5jdGlvbi4KICAqCmRpZmYg LS1naXQgYS9hcmNoL2FybS9tbS9pb3JlbWFwLmMgYi9hcmNoL2FybS9tbS9pb3JlbWFwLmMKaW5k ZXggNmU4MzBiOTQxOGM5Li5mYTNiZGU0OGQ2YTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2lv cmVtYXAuYworKysgYi9hcmNoL2FybS9tbS9pb3JlbWFwLmMKQEAgLTQ1OSw2ICs0NTksMjEgQEAg dm9pZCBwY2lfaW9yZW1hcF9zZXRfbWVtX3R5cGUoaW50IG1lbV90eXBlKQogCXBjaV9pb3JlbWFw X21lbV90eXBlID0gbWVtX3R5cGU7CiB9CiAKK2ludCBwY2lfcmVtYXBfaW9zcGFjZShjb25zdCBz dHJ1Y3QgcmVzb3VyY2UgKnJlcywgcGh5c19hZGRyX3QgcGh5c19hZGRyKQoreworCXVuc2lnbmVk IGxvbmcgdmFkZHIgPSAodW5zaWduZWQgbG9uZylQQ0lfSU9CQVNFICsgcmVzLT5zdGFydDsKKwor CWlmICghKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0lPKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisK KwlpZiAocmVzLT5lbmQgPiBJT19TUEFDRV9MSU1JVCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwly ZXR1cm4gaW9yZW1hcF9wYWdlX3JhbmdlKHZhZGRyLCB2YWRkciArIHJlc291cmNlX3NpemUocmVz KSwgcGh5c19hZGRyLAorCQkJCSAgX19wZ3Byb3QoZ2V0X21lbV90eXBlKHBjaV9pb3JlbWFwX21l bV90eXBlKS0+cHJvdF9wdGUpKTsKK30KK0VYUE9SVF9TWU1CT0wocGNpX3JlbWFwX2lvc3BhY2Up OworCiBpbnQgcGNpX2lvcmVtYXBfaW8odW5zaWduZWQgaW50IG9mZnNldCwgcGh5c19hZGRyX3Qg cGh5c19hZGRyKQogewogCUJVR19PTihvZmZzZXQgKyBTWl82NEsgLSAxID4gSU9fU1BBQ0VfTElN SVQpOwotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=