linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: John Garry <john.garry@huawei.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Hanjun Guo <hanjun.guo@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Mark Rutland <mark.rutland@arm.com>,
	Olof Johansson <olof@lixom.net>,
	Dann Frazier <dann.frazier@canonical.com>,
	Rob Herring <robh@kernel.org>, Joe Perches <joe@perches.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linux-pci@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	Linuxarm <linuxarm@huawei.com>, Corey Minyard <minyard@acm.org>,
	devicetree <devicetree@vger.kernel.org>,
	Linux-Arch <linux-arch@vger.kernel.org>,
	Randy Dunlap <rdunlap@infradead.org>
Subject: Re: [PATCH v14 5/9] OF: Add missing I/O range exception for indirect-IO devices
Date: Tue, 20 Feb 2018 16:36:59 +0200	[thread overview]
Message-ID: <CAHp75VcS7zU=sefmMHHCSeOF14tw=hVysKHR78EazThBkHS-=g@mail.gmail.com> (raw)
In-Reply-To: <1519062520-198902-6-git-send-email-john.garry@huawei.com>

On Mon, Feb 19, 2018 at 7:48 PM, John Garry <john.garry@huawei.com> wrote:
> From: Zhichang Yuan <yuanzhichang@hisilicon.com>
>
> There are some special ISA/LPC devices that work on a specific I/O range
> where it is not correct to specify a 'ranges' property in DTS parent node
> as cpu addresses translated from DTS node are only for memory space on
> some architectures, such as Arm64. Without the parent 'ranges' property,
> current of_translate_address() return an error.
> Here we add special handlings for this case.
> During the OF address translation, some checkings will be perfromed to
> identify whether the device node is registered as indirect-IO. If yes,
> the I/O translation will be done in a different way from that one of PCI
> MMIO. In this way, the I/O 'reg' property of the special ISA/LPC devices
> will be parsed correctly.

> +               /*
> +                * For indirectIO device which has no ranges property, get
> +                * the address from reg directly.
> +                */
> +               iorange = find_io_range_by_fwnode(&dev->fwnode);
> +               if (iorange && (iorange->flags != PIO_CPU_MMIO)) {
> +                       result = of_read_number(addr + 1, na - 1);
> +                       pr_debug("indirectIO matched(%s) 0x%llx\n",
> +                                       of_node_full_name(dev), result);

%pOF ?

> +                       *host = of_node_get(dev);
> +                       break;
> +               }

> +static u64 of_translate_ioport(struct device_node *dev, const __be32 *in_addr,
> +                       u64 size)
> +{
> +       u64 taddr;
> +       unsigned long port;
> +       struct device_node *host;
> +
> +       taddr = __of_translate_address(dev, in_addr, "ranges", &host);
> +       if (host) {
> +               /* host specific port access */
> +               port = logic_pio_trans_hwaddr(&host->fwnode, taddr, size);
> +               of_node_put(host);
> +       } else {
> +               /* memory mapped I/O range */
> +               port = pci_address_to_pio(taddr);
> +       }
> +
> +       if (port == (unsigned long)-1)
> +               return OF_BAD_ADDR;

~0UL ?

Ah, okay, old code on plate.

> +
> +       return port;
> +}

-- 
With Best Regards,
Andy Shevchenko

  reply	other threads:[~2018-02-20 14:37 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-19 17:48 [PATCH v14 0/9] LPC: legacy ISA I/O support John Garry
2018-02-19 17:48 ` [PATCH v14 1/9] LIB: Introduce a generic PIO mapping method John Garry
2018-02-20 14:33   ` Andy Shevchenko
2018-02-20 15:06     ` John Garry
2018-02-19 17:48 ` [PATCH v14 2/9] PCI: Remove unused __weak attribute in pci_register_io_range() John Garry
2018-02-19 17:48 ` [PATCH v14 3/9] PCI: Add fwnode handler as input param of pci_register_io_range() John Garry
2018-02-19 17:48 ` [PATCH v14 4/9] PCI: Apply the new generic I/O management on PCI IO hosts John Garry
2018-02-19 17:48 ` [PATCH v14 5/9] OF: Add missing I/O range exception for indirect-IO devices John Garry
2018-02-20 14:36   ` Andy Shevchenko [this message]
2018-02-19 17:48 ` [PATCH v14 6/9] HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings John Garry
2018-02-20 14:50   ` Andy Shevchenko
2018-02-20 15:39     ` John Garry
2018-02-19 17:48 ` [PATCH v14 7/9] ACPI / scan: do not enumerate Indirect IO host children John Garry
2018-02-19 21:38   ` Rafael J. Wysocki
2018-02-19 17:48 ` [PATCH v14 8/9] HISI LPC: Add ACPI support John Garry
2018-02-20 14:52   ` Andy Shevchenko
2018-02-19 17:48 ` [PATCH v14 9/9] MAINTAINERS: Add maintainer for HiSilicon LPC driver John Garry
2018-02-20 14:54 ` [PATCH v14 0/9] LPC: legacy ISA I/O support Andy Shevchenko
2018-02-20 15:41   ` John Garry
2018-02-21 23:15 ` dann frazier
2018-02-22 10:10   ` 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='CAHp75VcS7zU=sefmMHHCSeOF14tw=hVysKHR78EazThBkHS-=g@mail.gmail.com' \
    --to=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=hanjun.guo@linaro.org \
    --cc=joe@perches.com \
    --cc=john.garry@huawei.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).