<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/of/address.c, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-07-21T17:10:15Z</updated>
<entry>
<title>of/pci: Fix pci_address_to_pio() conversion of CPU address to I/O port</title>
<updated>2015-07-21T17:10:15Z</updated>
<author>
<name>Zhichang Yuan</name>
</author>
<published>2015-04-24T09:05:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=19478e63465fc22e74ab08e2a238efae7c65bb00'/>
<id>urn:sha1:19478e63465fc22e74ab08e2a238efae7c65bb00</id>
<content type='text'>
commit 5dbb4c6167229c8d4f528e8ec26699a7305000a3 upstream.

41f8bba7f555 ("of/pci: Add pci_register_io_range() and
pci_pio_to_address()") added support for systems with several I/O ranges
described by OF bindings.  It modified pci_address_to_pio() look up the
io_range for a given CPU physical address, but the conversion was wrong.

Fix the conversion of address to I/O port.

[bhelgaas: changelog]
Fixes: 41f8bba7f555 ("of/pci: Add pci_register_io_range() and pci_pio_to_address()")
Signed-off-by: Zhichang Yuan &lt;yuanzhichang@hisilicon.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drivers/of: Add empty ranges quirk for PA-Semi</title>
<updated>2015-03-28T02:31:16Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2015-03-23T03:16:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41d9489319f28f06cf51731131bc353d5a6bce59'/>
<id>urn:sha1:41d9489319f28f06cf51731131bc353d5a6bce59</id>
<content type='text'>
The "sdc" node is missing the ranges property, it needs to be treated
as having an empty one otherwise translation fails for its children.

Fixes 746c9e9f92dd, "of/base: Fix PowerPC address parsing hack"

Tested-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@linaro.org&gt;
Cc: Stable &lt;stable@vger.kernel.org&gt; # v3.18+
</content>
</entry>
<entry>
<title>Merge tag 'v3.18-rc6' into devicetree/next</title>
<updated>2014-11-24T14:50:07Z</updated>
<author>
<name>Grant Likely</name>
</author>
<published>2014-11-24T14:50:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=66e6a5a1fcd2f3e05f4d499b539a1f77ceb52d1d'/>
<id>urn:sha1:66e6a5a1fcd2f3e05f4d499b539a1f77ceb52d1d</id>
<content type='text'>
v3.18-rc6 contains an important DT bug fix, c1a2086e2d, "of/selftest:
Fix off-by-one error in removal path" which affects testing of the
overlay patch series. Merge it into the devicetree/next staging branch
so that the overlay patches are applied on top of a known working tree.

Linux 3.18-rc6

Conflicts:
	drivers/of/address.c
</content>
</entry>
<entry>
<title>of/base: Fix PowerPC address parsing hack</title>
<updated>2014-11-18T17:46:44Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2014-11-14T06:55:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=746c9e9f92dde2789908e51a354ba90a1962a2eb'/>
<id>urn:sha1:746c9e9f92dde2789908e51a354ba90a1962a2eb</id>
<content type='text'>
We have a historical hack that treats missing ranges properties as the
equivalent of an empty one. This is needed for ancient PowerMac "bad"
device-trees, and shouldn't be enabled for any other PowerPC platform,
otherwise we get some nasty layout of devices in sysfs or even
duplication when a set of otherwise identically named devices is
created multiple times under a different parent node with no ranges
property.

This fix is needed for the PowerNV i2c busses to be exposed properly
and will fix a number of other embedded cases.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
CC: &lt;stable@vger.kernel.org&gt;
Acked-by: Grant Likely &lt;grant.likely@linaro.org&gt;
Signed-off-by: Rob Herring &lt;robh@kernel.org&gt;
</content>
</entry>
<entry>
<title>of/address: Don't throw errors on absent ranges properties</title>
<updated>2014-11-18T16:59:06Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2014-11-14T06:58:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0212ae0be5ba10b6e01b7121f86e391ae1927ae'/>
<id>urn:sha1:a0212ae0be5ba10b6e01b7121f86e391ae1927ae</id>
<content type='text'>
The core always tries to translate any "reg" property to construct the platform
device names. This results in a pile of "OF: no ranges; cannot translate" errors
in dmesg whenever we expose things like i2c devices that cannot directly translate
to the MMIO space.

Turn this into a pr_debug instead

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@linaro.org&gt;
</content>
</entry>
<entry>
<title>of: Request and map make argument name constant</title>
<updated>2014-11-04T16:43:08Z</updated>
<author>
<name>Matthias Brugger</name>
</author>
<published>2014-10-21T16:27:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b75b276bead4850c86e60747babe09be5c13d4d1'/>
<id>urn:sha1:b75b276bead4850c86e60747babe09be5c13d4d1</id>
<content type='text'>
This patch makes the name argument from of_io_request_and_map constant.

Signed-off-by: Matthias Brugger &lt;matthias.bgg@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@linaro.org&gt;
</content>
</entry>
<entry>
<title>of/pci: Fix the conversion of IO ranges into IO resources</title>
<updated>2014-09-30T23:08:40Z</updated>
<author>
<name>Liviu Dudau</name>
</author>
<published>2014-09-29T14:29:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b0b0893d49b34201a6c4416b1a707b580b91e3d'/>
<id>urn:sha1:0b0b0893d49b34201a6c4416b1a707b580b91e3d</id>
<content type='text'>
The ranges property for a host bridge controller in DT describes the
mapping between the PCI bus address and the CPU physical address.  The
resources framework however expects that the IO resources start at a pseudo
"port" address 0 (zero) and have a maximum size of IO_SPACE_LIMIT.  The
conversion from PCI ranges to resources failed to take that into account,
returning a CPU physical address instead of a port number.

Also fix all the drivers that depend on the old behaviour by fetching the
CPU physical address based on the port number where it is being needed.

Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
CC: Grant Likely &lt;grant.likely@linaro.org&gt;
CC: Rob Herring &lt;robh+dt@kernel.org&gt;
CC: Arnd Bergmann &lt;arnd@arndb.de&gt;
CC: Thierry Reding &lt;thierry.reding@gmail.com&gt;
CC: Simon Horman &lt;horms@verge.net.au&gt;
CC: Catalin Marinas &lt;catalin.marinas@arm.com&gt;</content>
</entry>
<entry>
<title>of/pci: Move of_pci_range_to_resource() to of/address.c</title>
<updated>2014-09-30T19:29:09Z</updated>
<author>
<name>Liviu Dudau</name>
</author>
<published>2014-09-29T14:29:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=83bbde1cc0ec9d156b9271e29ffe0dc89c687feb'/>
<id>urn:sha1:83bbde1cc0ec9d156b9271e29ffe0dc89c687feb</id>
<content type='text'>
We need to enhance of_pci_range_to_resources() enough that it won't make
sense for it to be inline anymore.  Move it to drivers/of/address.c, under
#ifdef CONFIG_PCI.

of_address.h previously implemented of_pci_range_to_resources()
unconditionally, regardless of any config options.  The implementation in
address.c is defined only when CONFIG_OF_ADDRESS=y and CONFIG_PCI=y,
so add a dummy version to avoid build errors when CONFIG_OF or
CONFIG_OF_ADDRESS is not defined.

[bhelgaas: drop extra detail from changelog, move def under CONFIG_PCI,
add dummy of_pci_range_to_resource() for build errors (from Arnd)]
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
CC: Grant Likely &lt;grant.likely@linaro.org&gt;
CC: Rob Herring &lt;robh+dt@kernel.org&gt;
CC: Arnd Bergmann &lt;arnd@arndb.de&gt;
CC: Catalin Marinas &lt;catalin.marinas@arm.com&gt;</content>
</entry>
<entry>
<title>of/pci: Add pci_register_io_range() and pci_pio_to_address()</title>
<updated>2014-09-30T15:42:45Z</updated>
<author>
<name>Liviu Dudau</name>
</author>
<published>2014-09-29T14:29:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41f8bba7f5552d033583777dede2df7c36e7853d'/>
<id>urn:sha1:41f8bba7f5552d033583777dede2df7c36e7853d</id>
<content type='text'>
Some architectures do not have a simple view of the PCI I/O space and
instead use a range of CPU addresses that map to bus addresses.  For some
architectures these ranges will be expressed by OF bindings in a device
tree file.

This patch introduces a pci_register_io_range() helper function with a
generic implementation that can be used by such architectures to keep track
of the I/O ranges described by the PCI bindings.  If the PCI_IOBASE macro
is not defined, that signals lack of support for PCI and we return an
error.

In order to retrieve the CPU address associated with an I/O port, a new
helper function pci_pio_to_address() is introduced.  This will search in
the list of ranges registered with pci_register_io_range() and return the
CPU address that corresponds to the given port.

[arnd: add dummy !CONFIG_OF pci_pio_to_address() to fix build errors]
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Acked-by: Rob Herring &lt;robh@kernel.org&gt;
CC: Grant Likely &lt;grant.likely@linaro.org&gt;</content>
</entry>
<entry>
<title>of: Provide a function to request and map memory</title>
<updated>2014-07-23T10:02:30Z</updated>
<author>
<name>Matthias Brugger</name>
</author>
<published>2014-07-18T09:36:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=efd342fb0031a17758571dce42e3f373d94e2fec'/>
<id>urn:sha1:efd342fb0031a17758571dce42e3f373d94e2fec</id>
<content type='text'>
A call to of_iomap does not request the memory region. This patch adds the
function of_io_request_and_map which requests the memory region before
mapping it.

Signed-off-by: Matthias Brugger &lt;matthias.bgg@gmail.com&gt;
Suggested-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Suggested-by: Rob Herring &lt;robh@kernel.org&gt;
Acked-by: Rob Herring &lt;robh@kernel.org&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
</feed>
