[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6122131.ozzYjjjRQi@wuerfel>
Date: Sat, 05 Jul 2014 22:46:09 +0200
From: Arnd Bergmann <arnd@...db.de>
To: linux-arm-kernel@...ts.infradead.org
Cc: Rob Herring <robherring2@...il.com>,
Liviu Dudau <Liviu.Dudau@....com>,
Sinan Kaya <okaya@...eaurora.org>,
linaro-kernel <linaro-kernel@...ts.linaro.org>,
Catalin Marinas <Catalin.Marinas@....com>,
Device Tree ML <devicetree@...r.kernel.org>,
linux-pci <linux-pci@...r.kernel.org>,
Jingoo Han <jg1.han@...sung.com>,
Will Deacon <Will.Deacon@....com>,
LKML <linux-kernel@...r.kernel.org>,
Grant Likely <grant.likely@...retlab.ca>,
Kukjin Kim <kgene.kim@...sung.com>,
Tanmay Inamdar <tinamdar@....com>,
Suravee Suthikulanit <suravee.suthikulpanit@....com>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Bjorn Helgaas <bhelgaas@...gle.com>
Subject: Re: [PATCH v8 4/9] pci: OF: Fix the conversion of IO ranges into IO resources.
On Saturday 05 July 2014 14:25:52 Rob Herring wrote:
> On Tue, Jul 1, 2014 at 1:43 PM, Liviu Dudau <Liviu.Dudau@....com> wrote:
> > 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.
>
> I don't think this change is right. There are 2 resources: the PCI bus
> addresses and cpu addresses. This function deals with the cpu
> addresses. Returning pci addresses for i/o and cpu addresses for
> memory is going to be error prone. We probably need both cpu and pci
> resources exposed to host controllers.
>
> Making the new function only deal with i/o bus resources and naming it
> of_pci_range_to_io_resource would be better.
I think you are correct that this change by itself is will break existing
drivers that rely on the current behavior of of_pci_range_to_resource,
but there is also something wrong with the existing implementation:
of_pci_range_to_resource() at the moment returns a the address in
cpu address space (i.e. IORESOURCE_MEM) but sets the res->flags
value to IORESOURCE_IO, which means it doesn't fit into the resource
tree. Liviu's version gets that part right, and it would be nice
to fix that eventually, however we do it here.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists