Re: [RFC PATCH 1/2] asm-generic: Remove pci.h copying code out to architectures

From: Arnd Bergmann
Date: Fri Jul 15 2022 - 03:40:36 EST


On Fri, Jul 15, 2022 at 3:45 AM Max Filippov <jcmvbkbc@xxxxxxxxx> wrote:
> On Thu, Jul 14, 2022 at 2:47 PM Stafford Horne <shorne@xxxxxxxxx> wrote:
>
> > +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
> > +{
> > + return channel ? 15 : 14;
> > +}
>
> This addition does not make sense for the xtensa as it isn't even possible
> to enable PNP support (the only user of this function) on xtensa.

Nice catch! I had looked at this function earlier and only tried to infer
which architectures might have this based on who has those interrupt
numbers reserved for ISA devices, but looking at CONFIG_PNP is clearly
better here.

PNP depends on "ISA || ACPI", and this already rules out most
architectures. The remaining ones are:

* x86, ia64, alpha: These clearly use PNP based on-board devices on
common machines, and use PC-style interrupts

* arm64, loongarch: These select PNP when ACPI is enabled. I don't
think they actually use PNP, but for the moment the function needs to
be defined, probably returning 0. Loongarch still lacks PCI support
though, so asm/pci.h is not yet there.

* arm, mips, powerpc: Only a few older machines in each of these
support ISA devices, and the function is probably machine specific.
These all have a custom pci.h already and don't use the asm-generic
version.

* m68k: there are two that enable CONFIG_ISA and one that enables
CONFIG_PCI, but nothing that has both, so we don't need this
function.

In summary, I think only x86 actually uses this function, and it is
correct there, everything else either has its own implementation
or does not need it, so the existing asm-generic/pci.h file can
just be folded into the x86 asm/pci.h. That is a great cleanup.

Arnd