{"id":1940988,"url":"http://patchwork.ozlabs.org/api/patches/1940988/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/ba2a681dc4e82e4f3c910855bf23d229f2289a45.1716965617.git.ysato@users.sourceforge.jp/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<ba2a681dc4e82e4f3c910855bf23d229f2289a45.1716965617.git.ysato@users.sourceforge.jp>","list_archive_url":null,"date":"2024-05-29T08:00:56","name":"[DO,NOT,MERGE,v8,10/36] sh: Common PCI Framework driver support.","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"d012f3ffbb80438d2be0f246a15c9d756fc59e46","submitter":{"id":7114,"url":"http://patchwork.ozlabs.org/api/people/7114/?format=json","name":"Yoshinori Sato","email":"ysato@users.sourceforge.jp"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/ba2a681dc4e82e4f3c910855bf23d229f2289a45.1716965617.git.ysato@users.sourceforge.jp/mbox/","series":[{"id":408652,"url":"http://patchwork.ozlabs.org/api/series/408652/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=408652","date":"2024-05-29T08:00:51","name":"Device Tree support for SH7751 based board","version":8,"mbox":"http://patchwork.ozlabs.org/series/408652/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/1940988/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/1940988/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-7964-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2604:1380:40f1:3f00::1; helo=sy.mirrors.kernel.org;\n envelope-from=linux-pci+bounces-7964-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=153.127.30.23","smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=users.sourceforge.jp","smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=users.sourceforge.jp"],"Received":["from sy.mirrors.kernel.org (sy.mirrors.kernel.org\n [IPv6:2604:1380:40f1:3f00::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature ECDSA (secp384r1))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4Vq22c6WlKz20Pc\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 May 2024 18:03:52 +1000 (AEST)","from smtp.subspace.kernel.org (wormhole.subspace.kernel.org\n [52.25.139.140])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby sy.mirrors.kernel.org (Postfix) with ESMTPS id A612CB25726\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 May 2024 08:03:52 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 91C9416E89B;\n\tWed, 29 May 2024 08:01:49 +0000 (UTC)","from sakura.ysato.name (ik1-413-38519.vs.sakura.ne.jp\n [153.127.30.23])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id D7C91168C15;\n\tWed, 29 May 2024 08:01:47 +0000 (UTC)","from SIOS1075.ysato.name (al128006.dynamic.ppp.asahi-net.or.jp\n [111.234.128.6])\n\tby sakura.ysato.name (Postfix) with ESMTPSA id EFE401C0940;\n\tWed, 29 May 2024 17:01:45 +0900 (JST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1716969709; cv=none;\n b=mAcGpB1Nf7ZVKZz2n9UluSoGZ32lqVGgtxuxXDpO2fdorMyl6TO2y/JSzDI1rSbZCewClc80KaQB+/4+BOft3YpKHIMbPFL37OrVxbFgDM+S/GGxP7V/ahsozD+YgEIFxP4ZLgUKXeuA0N/XUcOn/vO7DP28C/lk/DZ+R7bg+k4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1716969709; c=relaxed/simple;\n\tbh=Zl34havtMWRq2iGwzVo/GzpE+MdC5jA9xgxGJw9XNA0=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version;\n b=N7oat7bUd6nY/t8Ry6pAb+P33qH0VcUujoAm5wqieSDLhFR/elHxwf2w0f4ccQH2dTplp/l3izqlmP4poRM6yYMiBYrhpsXRmvMUlYtBf9OP+bJgDXescEKp6DUPeQ8uLMxd2bMh353dnQiJFzNJHQw1QoPOr+YuEB3wYgbvqqM=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=users.sourceforge.jp;\n spf=fail smtp.mailfrom=users.sourceforge.jp;\n arc=none smtp.client-ip=153.127.30.23","From":"Yoshinori Sato <ysato@users.sourceforge.jp>","To":"linux-sh@vger.kernel.org","Cc":"Yoshinori Sato <ysato@users.sourceforge.jp>,\n Damien Le Moal <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>,\n Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>,\n Conor Dooley <conor+dt@kernel.org>,\n Geert Uytterhoeven <geert+renesas@glider.be>,\n Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>,\n David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,\n Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,\n Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,\n Thomas Gleixner <tglx@linutronix.de>, Bjorn Helgaas <bhelgaas@google.com>,\n Lorenzo Pieralisi <lpieralisi@kernel.org>, =?utf-8?q?Krzysztof_Wilczy=C5=84?=\n\t=?utf-8?q?ski?= <kw@linux.com>,\n Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n Jiri Slaby <jirislaby@kernel.org>, Magnus Damm <magnus.damm@gmail.com>,\n Daniel Lezcano <daniel.lezcano@linaro.org>, Rich Felker <dalias@libc.org>,\n John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,\n Lee Jones <lee@kernel.org>, Helge Deller <deller@gmx.de>,\n Heiko Stuebner <heiko.stuebner@cherry.de>,\n Neil Armstrong <neil.armstrong@linaro.org>,\n Chris Morgan <macromorgan@hotmail.com>, Sebastian Reichel <sre@kernel.org>,\n Linus Walleij <linus.walleij@linaro.org>, Arnd Bergmann <arnd@arndb.de>,\n Masahiro Yamada <masahiroy@kernel.org>, Baoquan He <bhe@redhat.com>,\n Andrew Morton <akpm@linux-foundation.org>,\n Guenter Roeck <linux@roeck-us.net>, Kefeng Wang <wangkefeng.wang@huawei.com>,\n Stephen Rothwell <sfr@canb.auug.org.au>,\n Azeem Shaikh <azeemshaikh38@gmail.com>, Guo Ren <guoren@kernel.org>,\n Max Filippov <jcmvbkbc@gmail.com>, Jernej Skrabec <jernej.skrabec@gmail.com>,\n Herve Codina <herve.codina@bootlin.com>,\n Andy Shevchenko <andriy.shevchenko@linux.intel.com>,\n Anup Patel <apatel@ventanamicro.com>, Jacky Huang <ychuang3@nuvoton.com>,\n Hugo Villeneuve <hvilleneuve@dimonoff.com>, Jonathan Corbet <corbet@lwn.net>,\n Wolfram Sang <wsa+renesas@sang-engineering.com>, =?utf-8?q?Uwe_Kleine-K?=\n\t=?utf-8?q?=C3=B6nig?= <u.kleine-koenig@pengutronix.de>,\n Christophe JAILLET <christophe.jaillet@wanadoo.fr>,\n Sam Ravnborg <sam@ravnborg.org>,\n Javier Martinez Canillas <javierm@redhat.com>,\n Sergey Shtylyov <s.shtylyov@omp.ru>,\n Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,\n linux-ide@vger.kernel.org, devicetree@vger.kernel.org,\n linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org,\n linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org,\n linux-pci@vger.kernel.org, linux-serial@vger.kernel.org,\n linux-fbdev@vger.kernel.org","Subject":"[DO NOT MERGE v8 10/36] sh: Common PCI Framework driver support.","Date":"Wed, 29 May 2024 17:00:56 +0900","Message-Id":"\n <ba2a681dc4e82e4f3c910855bf23d229f2289a45.1716965617.git.ysato@users.sourceforge.jp>","X-Mailer":"git-send-email 2.39.2","In-Reply-To":"<cover.1716965617.git.ysato@users.sourceforge.jp>","References":"<cover.1716965617.git.ysato@users.sourceforge.jp>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"Add New OF based PCI Host driver.\nThis driver conflicts some point in legacy PCI driver.\nTo resolve the conflict, I made some changes to the legacy driver.\n\nSigned-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>\n---\n arch/sh/include/asm/io.h  |  6 ++++++\n arch/sh/include/asm/pci.h |  4 ++++\n arch/sh/kernel/iomap.c    | 18 ++++++++++++++++++\n 3 files changed, 28 insertions(+)","diff":"diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h\nindex 5c544cf5201b..29b5f996cde3 100644\n--- a/arch/sh/include/asm/io.h\n+++ b/arch/sh/include/asm/io.h\n@@ -20,6 +20,7 @@\n #include <asm/page.h>\n #include <linux/pgtable.h>\n #include <asm-generic/iomap.h>\n+#include <linux/ioport.h>\n \n #define __IO_PREFIX     generic\n #include <asm/io_generic.h>\n@@ -310,4 +311,9 @@ unsigned long long poke_real_address_q(unsigned long long addr,\n int valid_phys_addr_range(phys_addr_t addr, size_t size);\n int valid_mmap_phys_addr_range(unsigned long pfn, size_t size);\n \n+#if defined(CONFIG_PCI) && !defined(CONFIG_GENERIC_IOMAP)\n+#define pci_remap_iospace pci_remap_iospace\n+int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr);\n+#endif\n+\n #endif /* __ASM_SH_IO_H */\ndiff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h\nindex 54c30126ea17..92b3bd604319 100644\n--- a/arch/sh/include/asm/pci.h\n+++ b/arch/sh/include/asm/pci.h\n@@ -2,6 +2,7 @@\n #ifndef __ASM_SH_PCI_H\n #define __ASM_SH_PCI_H\n \n+#ifndef CONFIG_SH_DEVICE_TREE\n /* Can be used to override the logic in pci_scan_bus for skipping\n    already-configured bus numbers - to be used for buggy BIOSes\n    or architectures with incomplete PCI setup by the loader */\n@@ -88,4 +89,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)\n \treturn hose->need_domain_info;\n }\n \n+#else /* CONFIG_SH_DEVICE_TREE */\n+#include <asm-generic/pci.h>\n+#endif\n #endif /* __ASM_SH_PCI_H */\ndiff --git a/arch/sh/kernel/iomap.c b/arch/sh/kernel/iomap.c\nindex 0a0dff4e66de..d1b8e496ca23 100644\n--- a/arch/sh/kernel/iomap.c\n+++ b/arch/sh/kernel/iomap.c\n@@ -160,3 +160,21 @@ void iowrite32_rep(void __iomem *addr, const void *src, unsigned long count)\n \tmmio_outsl(addr, src, count);\n }\n EXPORT_SYMBOL(iowrite32_rep);\n+\n+#if defined(pci_remap_iospace)\n+int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)\n+{\n+\tunsigned long vaddr = res->start;\n+\n+\tif (!(res->flags & IORESOURCE_IO))\n+\t\treturn -EINVAL;\n+\n+\tif (res->end > IO_SPACE_LIMIT)\n+\t\treturn -EINVAL;\n+\n+\t__set_io_port_base(phys_addr);\n+\treturn vmap_page_range(vaddr, vaddr + resource_size(res), phys_addr,\n+\t\t\t       pgprot_device(PAGE_KERNEL));\n+}\n+EXPORT_SYMBOL(pci_remap_iospace);\n+#endif\n","prefixes":["DO","NOT","MERGE","v8","10/36"]}