[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210921223615.GA137894@bhelgaas>
Date: Tue, 21 Sep 2021 17:36:15 -0500
From: Bjorn Helgaas <helgaas@...nel.org>
To: Huacai Chen <chenhuacai@...il.com>, a@...lgaas
Cc: Arnd Bergmann <arnd@...db.de>,
Huacai Chen <chenhuacai@...ngson.cn>,
Andy Lutomirski <luto@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Peter Zijlstra <peterz@...radead.org>,
Andrew Morton <akpm@...ux-foundation.org>,
David Airlie <airlied@...ux.ie>,
Jonathan Corbet <corbet@....net>,
Linus Torvalds <torvalds@...ux-foundation.org>,
linux-arch <linux-arch@...r.kernel.org>,
"open list:DOCUMENTATION" <linux-doc@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Xuefeng Li <lixuefeng@...ngson.cn>,
Yanteng Si <siyanteng@...ngson.cn>,
Jiaxun Yang <jiaxun.yang@...goat.com>,
Jianmin Lv <lvjianmin@...ngson.cn>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Len Brown <lenb@...nel.org>,
linux-pci <linux-pci@...r.kernel.org>,
Will Deacon <will@...nel.org>,
Krzysztof WilczyĆski <kw@...ux.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Rob Herring <robh@...nel.org>,
Bjorn Helgaas <bhelgaas@...gle.com>
Subject: Re: [PATCH V3 18/22] LoongArch: Add PCI controller support
On Sat, Sep 18, 2021 at 03:36:52PM +0800, Huacai Chen wrote:
> On Fri, Sep 17, 2021 at 5:02 PM Arnd Bergmann <arnd@...db.de> wrote:
> > On Fri, Sep 17, 2021 at 5:57 AM Huacai Chen <chenhuacai@...ngson.cn> wrote:
> > >
> > > Loongson64 based systems are PC-like systems which use PCI/PCIe as its
> > > I/O bus, This patch adds the PCI host controller support for LoongArch.
> > >
> > > Signed-off-by: Jianmin Lv <lvjianmin@...ngson.cn>
> > > Signed-off-by: Huacai Chen <chenhuacai@...ngson.cn>
> >
> > As discussed before, I think the PCI support should not be part of the
> > architecture code or this patch series. The headers are ok, but the pci.c
> > and acpi.c files have nothing loongarch specific in them, and you clearly
> > just copied most of this from arm64 or x86.
>
> In V2 part of the PCI code (pci-loongson.c) has moved to
> drivers/pci/controllers. For pci.c and acpi.c, I agree that "the thing
> should be like that", but have some different ideas about "the way to
> arrive at that". In my opinion, we can let this series be merged at
> first, and then do another series to "restructure the files and move
> common parts to the drivers directory". That way looks more natural to
> me (doing the other series at first may block the whole thing).
>
> > What I would suggest you do instead is:
> >
> > - start a separate patch series, addressed to the ACPI, PCI host driver
> > and ARM64 maintainers.
> >
> > - Move all the bits you need from arch/{arm64,ia64,x86} into
> > drivers/acpi/pci/pci_root.c, duplicating them with #if/#elif/#else
> > where they are too different, making the #else path the
> > default that can be shared with loongarch.
> >
> > - Move the bits from pci_root_info/acpi_pci_root_info that are
> > always needed into struct pci_host_bridge, with an
> > #ifdef CONFIG_ACPI where appropriate.
> >
> > - Simplify as much as you can easily do.
I would love to see this done.
But we already have this kind of redundant code for arm64/ia64/x86.
Arguably, we should have refactored it for ia64 or arm64. It's
unfortunate to add loongarch to that list, but why should we penalize
loongarch more than arm64 and ia64?
Bjorn
Powered by blists - more mailing lists