Message ID | 1432644564-24746-2-git-send-email-hanjun.guo@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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. Best regards, Liviu > > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> > Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> > CC: Arnd Bergmann <arnd@arndb.de> > CC: Catalin Marinas <catalin.marinas@arm.com> > CC: Liviu Dudau <Liviu.Dudau@arm.com> > CC: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com> > CC: Will Deacon <will.deacon@arm.com> > --- > 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 >
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 > > Best regards, > Liviu > >> >> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> >> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> >> CC: Arnd Bergmann <arnd@arndb.de> >> CC: Catalin Marinas <catalin.marinas@arm.com> >> CC: Liviu Dudau <Liviu.Dudau@arm.com> >> CC: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com> >> CC: Will Deacon <will.deacon@arm.com> >> --- >> 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 >> >
Hi Liviu, On 2015?05?27? 01:20, 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)? this is because of this patch is needed by Jiang Liu's patch set to fix the compile error on ARM64, I'd rather do that, but It's better to let Jiang Liu's patch goes in, and then this one, that's why I prepared a single patch for the struct. (I mentioned it in the cover letter) >> 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? I hope it can be reused, since the NUMA node and segment (domain) is both needed for DT and ACPI, if it's not the case foe now, I can surrounded them all by #ifdef CONFIG_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. Jiang, thanks for the explanation :) Thanks Hanjun
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? Best regards, Liviu > > > > > Best regards, > > Liviu > > > >> > >> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> > >> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> > >> CC: Arnd Bergmann <arnd@arndb.de> > >> CC: Catalin Marinas <catalin.marinas@arm.com> > >> CC: Liviu Dudau <Liviu.Dudau@arm.com> > >> CC: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com> > >> CC: Will Deacon <will.deacon@arm.com> > >> --- > >> 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 > >> > > >
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@linaro.org> >>>> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> >>>> CC: Arnd Bergmann <arnd@arndb.de> >>>> CC: Catalin Marinas <catalin.marinas@arm.com> >>>> CC: Liviu Dudau <Liviu.Dudau@arm.com> >>>> CC: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com> >>>> CC: Will Deacon <will.deacon@arm.com> >>>> --- >>>> 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 >>>> >>> >> >
Hi Hanjun, On Wed, May 27, 2015 at 1:51 PM, Hanjun Guo <hanjun.guo@linaro.org> wrote: > Hi Liviu, > > On 2015?05?27? 01:20, 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)? > > > this is because of this patch is needed by Jiang Liu's patch set > to fix the compile error on ARM64, I'd rather do that, but It's > better to let Jiang Liu's patch goes in, and then this one, that's > why I prepared a single patch for the struct. (I mentioned it > in the cover letter) > >>> 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? > > > I hope it can be reused, since the NUMA node and segment (domain) > is both needed for DT and ACPI, if it's not the case foe now, I > can surrounded them all by #ifdef CONFIG_ACPI. we can make use of this structure to hold pci to numa node mapping(pcibus_to_node). can you please pull node member out of CONFIG_ACPI ifdef. or you can put only acpi_device under ifdef. > >>> >>> 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. > > > Jiang, thanks for the explanation :) > > Thanks > Hanjun thanks Ganapat > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Mon, Sep 07, 2015 at 05:14:22AM +0100, Ganapatrao Kulkarni wrote: > Hi Hanjun, > > On Wed, May 27, 2015 at 1:51 PM, Hanjun Guo <hanjun.guo@linaro.org> wrote: > > Hi Liviu, > > > > On 2015???05???27??? 01:20, 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)? > > > > > > this is because of this patch is needed by Jiang Liu's patch set > > to fix the compile error on ARM64, I'd rather do that, but It's > > better to let Jiang Liu's patch goes in, and then this one, that's > > why I prepared a single patch for the struct. (I mentioned it > > in the cover letter) > > > >>> 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? > > > > > > I hope it can be reused, since the NUMA node and segment (domain) > > is both needed for DT and ACPI, if it's not the case foe now, I > > can surrounded them all by #ifdef CONFIG_ACPI. > we can make use of this structure to hold pci to numa node > mapping(pcibus_to_node). > can you please pull node member out of CONFIG_ACPI ifdef. > or you can put only acpi_device under ifdef. That struct disappeared in the latest series: https://lkml.org/lkml/2015/6/8/443 we have to have a common way to handle the NUMA info in DT and ACPI so we should still find a solution that can be shared between the two, it is yet another thing to take into account for PCI ACPI on arm64. Thanks, Lorenzo
On 09/07/2015 04:45 PM, Lorenzo Pieralisi wrote: > On Mon, Sep 07, 2015 at 05:14:22AM +0100, Ganapatrao Kulkarni wrote: >> Hi Hanjun, >> >> On Wed, May 27, 2015 at 1:51 PM, Hanjun Guo <hanjun.guo@linaro.org> wrote: >>> Hi Liviu, >>> >>> On 2015???05???27??? 01:20, 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)? >>> >>> >>> this is because of this patch is needed by Jiang Liu's patch set >>> to fix the compile error on ARM64, I'd rather do that, but It's >>> better to let Jiang Liu's patch goes in, and then this one, that's >>> why I prepared a single patch for the struct. (I mentioned it >>> in the cover letter) >>> >>>>> 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? >>> >>> >>> I hope it can be reused, since the NUMA node and segment (domain) >>> is both needed for DT and ACPI, if it's not the case foe now, I >>> can surrounded them all by #ifdef CONFIG_ACPI. >> we can make use of this structure to hold pci to numa node >> mapping(pcibus_to_node). >> can you please pull node member out of CONFIG_ACPI ifdef. >> or you can put only acpi_device under ifdef. > > That struct disappeared in the latest series: > > https://lkml.org/lkml/2015/6/8/443 Yes, I think that is the right direction going. > > we have to have a common way to handle the NUMA info in DT and ACPI > so we should still find a solution that can be shared between the two, > it is yet another thing to take into account for PCI ACPI on arm64. Agreed, we can take that into account when finished the basic support. Thanks Hanjun
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