Re: [PATCH v2 03/18] PCI: designware: Configuration space should be specified in 'reg'

From: Kumar Gala
Date: Thu May 29 2014 - 12:03:49 EST



On May 29, 2014, at 10:18 AM, Liviu Dudau <liviu@xxxxxxxxxxx> wrote:

> On Thu, May 29, 2014 at 10:03:54AM -0500, Kumar Gala wrote:
>>
>> On May 29, 2014, at 1:38 AM, Kishon Vijay Abraham I <kishon@xxxxxx> wrote:
>>
>>> The configuration address space has so far been specified in *ranges*,
>>> however it should be specified in *reg* making it a platform MEM resource.
>>> Hence used 'platform_get_resource_*' API to get configuration address
>>> space in the designware driver.
>>>
>>> Cc: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
>>> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
>>> Cc: Mohit Kumar <mohit.kumar@xxxxxx>
>>> Cc: Jingoo Han <jg1.han@xxxxxxxxxxx>
>>> Cc: Marek Vasut <marex@xxxxxxx>
>>> Cc: Arnd Bergmann <arnd@xxxxxxxx>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
>>> ---
>>> .../devicetree/bindings/pci/designware-pcie.txt | 1 +
>>> drivers/pci/host/pcie-designware.c | 17 +++++++++++++++--
>>> 2 files changed, 16 insertions(+), 2 deletions(-)
>>
>> Why should the cfg space be defined in *reg* instead of ranges?
>
> Because what you end up using is a struct resource to represent the cfg space and
> the conversion between ranges and resources breaks down for CFG space (we don't
> have a flag in the resource flags to say this is CFG resource). Specifying it
> as a *reg* property makes it a MEM resource and no special casing is needed.
>
> Best regards,
> Liviu

Just because the kernel doesn’t handle this is NO reason to change the way the DT works.

We are probably better of changing of_bus_pci_get_flags() to set IORESOURCE_MEM for cfg type. Will send a patch for this.

- k

--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/