Re: [PATCH 01/11] ARM64 / PCI: introduce struct pci_controller for ACPI

From: Jiang Liu
Date: Wed May 27 2015 - 07:29:31 EST


On 2015/5/27 17:47, Liviu Dudau wrote:
> On Tue, May 26, 2015 at 06:20:40PM +0100, Jiang Liu wrote:
>> On 2015/5/27 0:58, Liviu Dudau wrote:
>>> On Tue, May 26, 2015 at 01:49:14PM +0100, Hanjun Guo wrote:
>>>> ARM64 ACPI based PCI host bridge init needs a arch dependent
>>>> struct pci_controller to accommodate common PCI host bridge
>>>> code which is introduced later, or it will lead to compile
>>>> errors on ARM64.
>>>
>>> Hi Hanjun,
>>>
>>> Two questions: why don't you introduce this patch next to the
>>> one that is going to make use of it (or even merge it there)?
>>> Second, why is the whole struct pci_controller not surrounded
>>> by #ifdef CONFIG_ACPI as you are implying that this is needed
>>> only for ACPI?
>>>
>>> Btw, looking through the whole series I'm not (yet) convinced
>>> that this is needed at all.
>> Hi Liviu,
>> This structure is required by the requested patch set
>> at http://patchwork.ozlabs.org/patch/472249/, which consolidates
>> the common code to support PCI host bridge into ACPI core.
>> Thanks!
>> Gerry
>
> Hi Jiang,
>
> Thanks for pointing me on the right answer, I've missed that series!
> Probably not the best place to comment on that series here, but I
> wonder why did you not made the pci_controller structure available
> in a more generic header file that can be included so that arches
> don't have to redefine the structure every time. After all, you are
> trying to consolidate things.
>
> Oh, and pci_controller name throws a lot of false negatives, maybe
> a more specific one (acpi_pci_controller?) would make things clear?
Hi Liviu,
It's a trade-off. Once I tried to rename it too, but gave up
later. There are several reasons to keep it as is:
1) Several architectures define pci_controller to support PCI
root bus.
2) struct pci_controller is a generic concept, I guess, and ACPI code
extends pci_controller to host some ACPI specific data on IA64 and
x86.
3) It will cause big code changes if we rename pci_controller to
something else.
Thanks!
Gerry

>
> Best regards,
> Liviu
>
>>
>>>
>>> Best regards,
>>> Liviu
>>>
>>>>
>>>> Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
>>>> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>
>>>> CC: Arnd Bergmann <arnd@xxxxxxxx>
>>>> CC: Catalin Marinas <catalin.marinas@xxxxxxx>
>>>> CC: Liviu Dudau <Liviu.Dudau@xxxxxxx>
>>>> CC: Lorenzo Pieralisi <Lorenzo.Pieralisi@xxxxxxx>
>>>> CC: Will Deacon <will.deacon@xxxxxxx>
>>>> ---
>>>> arch/arm64/include/asm/pci.h | 10 ++++++++++
>>>> 1 file changed, 10 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/include/asm/pci.h b/arch/arm64/include/asm/pci.h
>>>> index b008a72..7088495 100644
>>>> --- a/arch/arm64/include/asm/pci.h
>>>> +++ b/arch/arm64/include/asm/pci.h
>>>> @@ -10,6 +10,16 @@
>>>> #include <asm-generic/pci-bridge.h>
>>>> #include <asm-generic/pci-dma-compat.h>
>>>>
>>>> +struct acpi_device;
>>>> +
>>>> +struct pci_controller {
>>>> +#ifdef CONFIG_ACPI
>>>> + struct acpi_device *companion; /* ACPI companion device */
>>>> +#endif
>>>> + int segment; /* PCI domain */
>>>> + int node; /* NUMA node */
>>>> +};
>>>> +
>>>> #define PCIBIOS_MIN_IO 0x1000
>>>> #define PCIBIOS_MIN_MEM 0
>>>>
>>>> --
>>>> 1.9.1
>>>>
>>>
>>
>
--
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/