From: John Garry <john.garry@huawei.com>
To: <mika.westerberg@linux.intel.com>, <rafael@kernel.org>,
<lorenzo.pieralisi@arm.com>, <rjw@rjwysocki.net>,
<hanjun.guo@linaro.org>, <robh+dt@kernel.org>,
<bhelgaas@google.com>, <arnd@arndb.de>, <mark.rutland@arm.com>,
<olof@lixom.net>, <dann.frazier@canonical.com>,
<andy.shevchenko@gmail.com>, <robh@kernel.org>,
<andriy.shevchenko@linux.intel.com>
Cc: <joe@perches.com>, <benh@kernel.crashing.org>,
<linux-pci@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-acpi@vger.kernel.org>, <linuxarm@huawei.com>,
<minyard@acm.org>, <devicetree@vger.kernel.org>,
<linux-arch@vger.kernel.org>, <rdunlap@infradead.org>,
<gregkh@linuxfoundation.org>, <akpm@linux-foundation.org>,
<frowand.list@gmail.com>, <agraf@suse.de>
Subject: [PATCH v16 3/9] PCI: Add fwnode handler as input param of pci_register_io_range()
Date: Tue, 6 Mar 2018 18:47:42 +0800 [thread overview]
Message-ID: <1520333268-82754-4-git-send-email-john.garry@huawei.com> (raw)
In-Reply-To: <1520333268-82754-1-git-send-email-john.garry@huawei.com>
From: Gabriele Paoloni <gabriele.paoloni@huawei.com>
In preparation for having the PCI MMIO helpers to use the new generic
I/O space management(logical PIO) we need to add the fwnode handler as
extra input parameter.
This patch changes the signature of pci_register_io_range() and of
its callers as needed.
Signed-off-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Tested-by: dann frazier <dann.frazier@canonical.com>
---
drivers/acpi/pci_root.c | 8 +++++---
drivers/of/address.c | 4 +++-
drivers/pci/pci.c | 3 ++-
include/linux/pci.h | 3 ++-
4 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 6fc204a..1213479 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -729,7 +729,8 @@ static void acpi_pci_root_validate_resources(struct device *dev,
}
}
-static void acpi_pci_root_remap_iospace(struct resource_entry *entry)
+static void acpi_pci_root_remap_iospace(struct fwnode_handle *fwnode,
+ struct resource_entry *entry)
{
#ifdef PCI_IOBASE
struct resource *res = entry->res;
@@ -738,7 +739,7 @@ static void acpi_pci_root_remap_iospace(struct resource_entry *entry)
resource_size_t length = resource_size(res);
unsigned long port;
- if (pci_register_io_range(cpu_addr, length))
+ if (pci_register_io_range(fwnode, cpu_addr, length))
goto err;
port = pci_address_to_pio(cpu_addr);
@@ -780,7 +781,8 @@ int acpi_pci_probe_root_resources(struct acpi_pci_root_info *info)
else {
resource_list_for_each_entry_safe(entry, tmp, list) {
if (entry->res->flags & IORESOURCE_IO)
- acpi_pci_root_remap_iospace(entry);
+ acpi_pci_root_remap_iospace(&device->fwnode,
+ entry);
if (entry->res->flags & IORESOURCE_DISABLED)
resource_list_destroy_entry(entry);
diff --git a/drivers/of/address.c b/drivers/of/address.c
index ce4d3d8..cdf047b 100644
--- a/drivers/of/address.c
+++ b/drivers/of/address.c
@@ -2,6 +2,7 @@
#define pr_fmt(fmt) "OF: " fmt
#include <linux/device.h>
+#include <linux/fwnode.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/module.h>
@@ -333,7 +334,8 @@ int of_pci_range_to_resource(struct of_pci_range *range,
if (res->flags & IORESOURCE_IO) {
unsigned long port;
- err = pci_register_io_range(range->cpu_addr, range->size);
+ err = pci_register_io_range(&np->fwnode, range->cpu_addr,
+ range->size);
if (err)
goto invalid_range;
port = pci_address_to_pio(range->cpu_addr);
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index ff41a64..3f30b7d 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3451,7 +3451,8 @@ struct io_range {
* Record the PCI IO range (expressed as CPU physical address + size).
* Return a negative value if an error has occured, zero otherwise
*/
-int pci_register_io_range(phys_addr_t addr, resource_size_t size)
+int pci_register_io_range(struct fwnode_handle *fwnode, phys_addr_t addr,
+ resource_size_t size)
{
int err = 0;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 25b7a35..17cc998 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1221,7 +1221,8 @@ int __must_check pci_bus_alloc_resource(struct pci_bus *bus,
void *alignf_data);
-int pci_register_io_range(phys_addr_t addr, resource_size_t size);
+int pci_register_io_range(struct fwnode_handle *fwnode, phys_addr_t addr,
+ resource_size_t size);
unsigned long pci_address_to_pio(phys_addr_t addr);
phys_addr_t pci_pio_to_address(unsigned long pio);
int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr);
--
1.9.1
next prev parent reply other threads:[~2018-03-06 10:48 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-06 10:47 [PATCH v16 0/9] LPC: legacy ISA I/O support John Garry
2018-03-06 10:47 ` [PATCH v16 1/9] LIB: Introduce a generic PIO mapping method John Garry
2018-03-06 10:47 ` [PATCH v16 2/9] PCI: Remove unused __weak attribute in pci_register_io_range() John Garry
2018-03-06 10:47 ` John Garry [this message]
2018-03-06 10:47 ` [PATCH v16 4/9] PCI: Apply the new generic I/O management on PCI IO hosts John Garry
2018-03-06 10:47 ` [PATCH v16 5/9] OF: Add missing I/O range exception for indirect-IO devices John Garry
2018-03-06 10:47 ` [PATCH v16 6/9] HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings John Garry
2018-03-06 10:47 ` [PATCH v16 7/9] ACPI / scan: do not enumerate Indirect IO host children John Garry
2018-03-06 10:47 ` [PATCH v16 8/9] HISI LPC: Add ACPI support John Garry
2018-03-06 10:47 ` [PATCH v16 9/9] MAINTAINERS: Add maintainer for HiSilicon LPC driver John Garry
2018-03-06 11:21 ` [PATCH v16 0/9] LPC: legacy ISA I/O support Andy Shevchenko
2018-03-06 11:36 ` John Garry
2018-03-06 15:30 ` Rafael J. Wysocki
2018-03-06 16:22 ` John Garry
2018-03-13 10:22 ` Rafael J. Wysocki
2018-03-13 10:42 ` John Garry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1520333268-82754-4-git-send-email-john.garry@huawei.com \
--to=john.garry@huawei.com \
--cc=agraf@suse.de \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=dann.frazier@canonical.com \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hanjun.guo@linaro.org \
--cc=joe@perches.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=mika.westerberg@linux.intel.com \
--cc=minyard@acm.org \
--cc=olof@lixom.net \
--cc=rafael@kernel.org \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).