* [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 [not found] <20220717033453.2896843-1-shorne@gmail.com> @ 2022-07-17 3:34 ` Stafford Horne 2022-07-17 9:23 ` Geert Uytterhoeven 2022-07-18 4:33 ` Christoph Hellwig 0 siblings, 2 replies; 6+ messages in thread From: Stafford Horne @ 2022-07-17 3:34 UTC (permalink / raw) To: LKML Cc: linux-ia64, Matthew Rosato, Dave Hansen, Max Filippov, Paul Mackerras, H. Peter Anvin, sparclinux, Alexander Gordeev, Stafford Horne, linux-arch, linux-s390, Arnd Bergmann, x86, linux-riscv, Ingo Molnar, Geert Uytterhoeven, linux-pci, Matt Turner, Christian Borntraeger, linux-xtensa, Albert Ou, Kees Cook, Vasily Gorbik, Niklas Schnelle, Heiko Carstens, linux-m68k, Borislav Petkov, Paul Walmsley, Bjorn Helgaas The generic pci.h header now only provides a definition of pci_get_legacy_ide_irq which is used by architectures that support PNP. Of the architectures that use asm-generic/pci.h this is only x86. This patch removes the old pci.h in order to make room for a new pci.h to be used by arm64, riscv, openrisc, etc. The existing code in pci.h is moved out to x86. On other architectures we clean up any outstanding references. Suggested-by: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/lkml/CAK8P3a0JmPeczfmMBE__vn=Jbvf=nkbpVaZCycyv40pZNCJJXQ@mail.gmail.com/ Signed-off-by: Stafford Horne <shorne@gmail.com> --- arch/alpha/include/asm/pci.h | 1 - arch/ia64/include/asm/pci.h | 1 - arch/m68k/include/asm/pci.h | 7 +++++-- arch/powerpc/include/asm/pci.h | 1 - arch/s390/include/asm/pci.h | 1 - arch/sparc/include/asm/pci.h | 9 --------- arch/x86/include/asm/pci.h | 6 ++++-- arch/xtensa/include/asm/pci.h | 3 --- include/asm-generic/pci.h | 17 ----------------- 9 files changed, 9 insertions(+), 37 deletions(-) delete mode 100644 include/asm-generic/pci.h diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h index cf6bc1e64d66..8ac5af0fc4da 100644 --- a/arch/alpha/include/asm/pci.h +++ b/arch/alpha/include/asm/pci.h @@ -56,7 +56,6 @@ struct pci_controller { /* IOMMU controls. */ -/* TODO: integrate with include/asm-generic/pci.h ? */ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { return channel ? 15 : 14; diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h index 8c163d1d0189..218412d963c2 100644 --- a/arch/ia64/include/asm/pci.h +++ b/arch/ia64/include/asm/pci.h @@ -63,7 +63,6 @@ static inline int pci_proc_domain(struct pci_bus *bus) return (pci_domain_nr(bus) != 0); } -#define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); diff --git a/arch/m68k/include/asm/pci.h b/arch/m68k/include/asm/pci.h index 5a4bc223743b..0c272ff515cc 100644 --- a/arch/m68k/include/asm/pci.h +++ b/arch/m68k/include/asm/pci.h @@ -2,11 +2,14 @@ #ifndef _ASM_M68K_PCI_H #define _ASM_M68K_PCI_H -#include <asm-generic/pci.h> - #define pcibios_assign_all_busses() 1 #define PCIBIOS_MIN_IO 0x00000100 #define PCIBIOS_MIN_MEM 0x02000000 +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) +{ + return channel ? 15 : 14; +} + #endif /* _ASM_M68K_PCI_H */ diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h index 915d6ee4b40a..f9da506751bb 100644 --- a/arch/powerpc/include/asm/pci.h +++ b/arch/powerpc/include/asm/pci.h @@ -39,7 +39,6 @@ #define pcibios_assign_all_busses() \ (pci_has_flag(PCI_REASSIGN_ALL_BUS)) -#define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { if (ppc_md.pci_get_legacy_ide_irq) diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h index fdb9745ee998..5889ddcbc374 100644 --- a/arch/s390/include/asm/pci.h +++ b/arch/s390/include/asm/pci.h @@ -6,7 +6,6 @@ #include <linux/mutex.h> #include <linux/iommu.h> #include <linux/pci_hotplug.h> -#include <asm-generic/pci.h> #include <asm/pci_clp.h> #include <asm/pci_debug.h> #include <asm/sclp.h> diff --git a/arch/sparc/include/asm/pci.h b/arch/sparc/include/asm/pci.h index 4deddf430e5d..0c58f65bd172 100644 --- a/arch/sparc/include/asm/pci.h +++ b/arch/sparc/include/asm/pci.h @@ -40,13 +40,4 @@ static inline int pci_proc_domain(struct pci_bus *bus) #define get_pci_unmapped_area get_fb_unmapped_area #endif /* CONFIG_SPARC64 */ -#if defined(CONFIG_SPARC64) || defined(CONFIG_LEON_PCI) -static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) -{ - return PCI_IRQ_NONE; -} -#else -#include <asm-generic/pci.h> -#endif - #endif /* ___ASM_SPARC_PCI_H */ diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index f3fd5928bcbb..7da27f665cfe 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -105,8 +105,10 @@ static inline void early_quirks(void) { } extern void pci_iommu_alloc(void); -/* generic pci stuff */ -#include <asm-generic/pci.h> +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) +{ + return channel ? 15 : 14; +} #ifdef CONFIG_NUMA /* Returns the node based on pci bus */ diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h index 8e2b48a268db..b56de9635b6c 100644 --- a/arch/xtensa/include/asm/pci.h +++ b/arch/xtensa/include/asm/pci.h @@ -43,7 +43,4 @@ #define ARCH_GENERIC_PCI_MMAP_RESOURCE 1 #define arch_can_pci_mmap_io() 1 -/* Generic PCI */ -#include <asm-generic/pci.h> - #endif /* _XTENSA_PCI_H */ diff --git a/include/asm-generic/pci.h b/include/asm-generic/pci.h deleted file mode 100644 index 6bb3cd3d695a..000000000000 --- a/include/asm-generic/pci.h +++ /dev/null @@ -1,17 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* - * linux/include/asm-generic/pci.h - * - * Copyright (C) 2003 Russell King - */ -#ifndef _ASM_GENERIC_PCI_H -#define _ASM_GENERIC_PCI_H - -#ifndef HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ -static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) -{ - return channel ? 15 : 14; -} -#endif /* HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ */ - -#endif /* _ASM_GENERIC_PCI_H */ -- 2.36.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 2022-07-17 3:34 ` [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 Stafford Horne @ 2022-07-17 9:23 ` Geert Uytterhoeven 2022-07-17 9:42 ` Stafford Horne 2022-07-18 4:33 ` Christoph Hellwig 1 sibling, 1 reply; 6+ messages in thread From: Geert Uytterhoeven @ 2022-07-17 9:23 UTC (permalink / raw) To: Stafford Horne Cc: linux-ia64@vger.kernel.org, Matthew Rosato, Dave Hansen, Gustavo A. R. Silva, Max Filippov, Paul Mackerras, H. Peter Anvin, sparclinux, Alexander Gordeev, linux-riscv, Linux-Arch, linux-s390, Arnd Bergmann, the arch/x86 maintainers, Ingo Molnar, linux-pci, Matt Turner, Christian Borntraeger, open list:TENSILICA XTENSA PORT (xtensa), Albert Ou, Kees Cook, Vasily Gorbik, Niklas Schnelle, Heiko Carstens Hi Stafford, On Sun, Jul 17, 2022 at 5:35 AM Stafford Horne <shorne@gmail.com> wrote: > The generic pci.h header now only provides a definition of > pci_get_legacy_ide_irq which is used by architectures that support PNP. > Of the architectures that use asm-generic/pci.h this is only x86. > > This patch removes the old pci.h in order to make room for a new > pci.h to be used by arm64, riscv, openrisc, etc. > > The existing code in pci.h is moved out to x86. On other architectures > we clean up any outstanding references. > > Suggested-by: Arnd Bergmann <arnd@arndb.de> > Link: https://lore.kernel.org/lkml/CAK8P3a0JmPeczfmMBE__vn=Jbvf=nkbpVaZCycyv40pZNCJJXQ@mail.gmail.com/ > Signed-off-by: Stafford Horne <shorne@gmail.com> Thanks for your patch! > --- a/arch/m68k/include/asm/pci.h > +++ b/arch/m68k/include/asm/pci.h > @@ -2,11 +2,14 @@ > #ifndef _ASM_M68K_PCI_H > #define _ASM_M68K_PCI_H > > -#include <asm-generic/pci.h> > - > #define pcibios_assign_all_busses() 1 > > #define PCIBIOS_MIN_IO 0x00000100 > #define PCIBIOS_MIN_MEM 0x02000000 > > +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) > +{ > + return channel ? 15 : 14; > +} > + I thought you were not going to add this? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 2022-07-17 9:23 ` Geert Uytterhoeven @ 2022-07-17 9:42 ` Stafford Horne 0 siblings, 0 replies; 6+ messages in thread From: Stafford Horne @ 2022-07-17 9:42 UTC (permalink / raw) To: Geert Uytterhoeven Cc: open list:IA64 (Itanium) PL..., Matthew Rosato, Dave Hansen, Gustavo A. R. Silva, Max Filippov, Paul Mackerras, H. Peter Anvin, sparclinux, Alexander Gordeev, linux-riscv, Linux-Arch, linux-s390, Arnd Bergmann, the arch/x86 maintainers, Ingo Molnar, linux-pci, Matt Turner, Christian Borntraeger, open list:TENSILICA XTENSA PORT (xtensa), Albert Ou, Kees Cook, Vasily Gorbik, Niklas Schnelle, Heiko Carstens, linux-m68k, Ivan Kokshaysky, Paul Walmsley, Bjorn Helgaas, Thomas Gleixner, Richard Henderson, Chris Zankel, Pierre Morel, Nick Child, LKML, Palmer Dabbelt, Sven Schnelle, alpha, Borislav Petkov, linuxppc-dev, David S. Miller [-- Attachment #1: Type: text/plain, Size: 1525 bytes --] On Sun, Jul 17, 2022, 6:23 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > Hi Stafford, > > On Sun, Jul 17, 2022 at 5:35 AM Stafford Horne <shorne@gmail.com> wrote: > > The generic pci.h header now only provides a definition of > > pci_get_legacy_ide_irq which is used by architectures that support PNP. > > Of the architectures that use asm-generic/pci.h this is only x86. > > > > This patch removes the old pci.h in order to make room for a new > > pci.h to be used by arm64, riscv, openrisc, etc. > > > > The existing code in pci.h is moved out to x86. On other architectures > > we clean up any outstanding references. > > > > Suggested-by: Arnd Bergmann <arnd@arndb.de> > > Link: > https://lore.kernel.org/lkml/CAK8P3a0JmPeczfmMBE__vn=Jbvf=nkbpVaZCycyv40pZNCJJXQ@mail.gmail.com/ > > Signed-off-by: Stafford Horne <shorne@gmail.com> > > Thanks for your patch! > > > --- a/arch/m68k/include/asm/pci.h > > +++ b/arch/m68k/include/asm/pci.h > > @@ -2,11 +2,14 @@ > > #ifndef _ASM_M68K_PCI_H > > #define _ASM_M68K_PCI_H > > > > -#include <asm-generic/pci.h> > > - > > #define pcibios_assign_all_busses() 1 > > > > #define PCIBIOS_MIN_IO 0x00000100 > > #define PCIBIOS_MIN_MEM 0x02000000 > > > > +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int > channel) > > +{ > > + return channel ? 15 : 14; > > +} > > + > > I thought you were not going to add this? > I though so too. Somehow I lost track of a fixup. I'll send a v3 tomorrow. -Stafford > [-- Attachment #2: Type: text/html, Size: 2745 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 2022-07-17 3:34 ` [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 Stafford Horne 2022-07-17 9:23 ` Geert Uytterhoeven @ 2022-07-18 4:33 ` Christoph Hellwig 2022-07-18 8:40 ` Arnd Bergmann 1 sibling, 1 reply; 6+ messages in thread From: Christoph Hellwig @ 2022-07-18 4:33 UTC (permalink / raw) To: Stafford Horne Cc: linux-ia64, Matthew Rosato, Dave Hansen, Gustavo A. R. Silva, Max Filippov, Paul Mackerras, H. Peter Anvin, sparclinux, Alexander Gordeev, linux-riscv, linux-arch, linux-s390, Arnd Bergmann, x86, Ingo Molnar, Geert Uytterhoeven, linux-pci, Matt Turner, Christian Borntraeger, linux-xtensa, Albert Ou, Kees Cook, Vasily Gorbik, Niklas Schnelle, Heiko Carstens, linux-m68k, Borislav Petkov, Paul Walmsley, Bjorn Helgaas, Thomas Gleixner, Richard Henderson, Chris Zankel, Pierre Morel, Nick Child, LKML, Palmer Dabbelt, Sven Schnelle, linux-alpha, Ivan Kokshaysky, linuxppc-dev, David S. Miller On Sun, Jul 17, 2022 at 12:34:52PM +0900, Stafford Horne wrote: > The generic pci.h header now only provides a definition of > pci_get_legacy_ide_irq which is used by architectures that support PNP. > Of the architectures that use asm-generic/pci.h this is only x86. Please move this into a separate header, ike legacy-ide.h. It doens't have anyting to do with actual PCI support. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 2022-07-18 4:33 ` Christoph Hellwig @ 2022-07-18 8:40 ` Arnd Bergmann 2022-07-19 10:51 ` Stafford Horne 0 siblings, 1 reply; 6+ messages in thread From: Arnd Bergmann @ 2022-07-18 8:40 UTC (permalink / raw) To: Christoph Hellwig Cc: open list:IA64 (Itanium) PLATFORM, Matthew Rosato, Dave Hansen, Gustavo A. R. Silva, Max Filippov, Paul Mackerras, H. Peter Anvin, sparclinux, Alexander Gordeev, Stafford Horne, linux-arch, linux-s390, Arnd Bergmann, the arch/x86 maintainers, linux-riscv, Ingo Molnar, Geert Uytterhoeven, linux-pci, Matt Turner, Christian Borntraeger, open list:TENSILICA XTENSA PORT (xtensa), Albert Ou, Kees Cook, Vasily Gorbik On Mon, Jul 18, 2022 at 6:33 AM Christoph Hellwig <hch@infradead.org> wrote: > > On Sun, Jul 17, 2022 at 12:34:52PM +0900, Stafford Horne wrote: > > The generic pci.h header now only provides a definition of > > pci_get_legacy_ide_irq which is used by architectures that support PNP. > > Of the architectures that use asm-generic/pci.h this is only x86. > > Please move this into a separate header, ike legacy-ide.h. It doens't > have anyting to do with actual PCI support. It looks like asm/libata-portmap.h is meant to have this information already, and this is what libata uses, while drivers/ide used the pci_get_legacy_ide_irq() function for the same purpose. Only ia64 and powerpc have interesting definitions of both, and they return the same thing, so I think this is sufficient to remove the last caller: diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index 2fa0f7d55259..d7a6250589d6 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c @@ -16,7 +16,7 @@ #include <asm/io.h> #include <asm/dma.h> #include <asm/irq.h> -#include <linux/pci.h> +#include <linux/libata.h> #include <linux/ioport.h> #include <linux/init.h> @@ -322,8 +322,8 @@ static int pci_dev_uses_irq(struct pnp_dev *pnp, struct pci_dev *pci, * treat the compatibility IRQs as busy. */ if ((progif & 0x5) != 0x5) - if (pci_get_legacy_ide_irq(pci, 0) == irq || - pci_get_legacy_ide_irq(pci, 1) == irq) { + if (ATA_PRIMARY_IRQ(pci) == irq || + ATA_SECONDARY_IRQ(pci) == irq) { pnp_dbg(&pnp->dev, " legacy IDE device %s " "using irq %d\n", pci_name(pci), irq); return 1; This is fine on the architectures that currently return an error from pci_get_legacy_ide_irq() but will change to returning 15/14 instead, because they do not support ISA devices, so pci_dev_uses_irq() will never be called either. Arnd ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 2022-07-18 8:40 ` Arnd Bergmann @ 2022-07-19 10:51 ` Stafford Horne 0 siblings, 0 replies; 6+ messages in thread From: Stafford Horne @ 2022-07-19 10:51 UTC (permalink / raw) To: Arnd Bergmann Cc: open list:IA64 (Itanium) PLATFORM, Matthew Rosato, Dave Hansen, Gustavo A. R. Silva, Max Filippov, Paul Mackerras, H. Peter Anvin, sparclinux, Alexander Gordeev, linux-riscv, linux-arch, linux-s390, the arch/x86 maintainers, Christoph Hellwig, Ingo Molnar, Geert Uytterhoeven, linux-pci, Matt Turner, Christian Borntraeger, open list:TENSILICA XTENSA PORT (xtensa), Albert Ou, Kees Cook, Vasily Gorbik, Niklas Schnel le, Heiko Carstens, linux-m68k, Borislav Petkov, Paul Walmsley, Bjorn Helgaas, Thomas Gleixner, Richard Henderson, Chris Zankel, Pierre Morel, Nick Child, LKML, Palmer Dabbelt, Sven Schnelle, alpha, Ivan Kokshaysky, linuxppc-dev, David S. Miller On Mon, Jul 18, 2022 at 10:40:34AM +0200, Arnd Bergmann wrote: > On Mon, Jul 18, 2022 at 6:33 AM Christoph Hellwig <hch@infradead.org> wrote: > > > > On Sun, Jul 17, 2022 at 12:34:52PM +0900, Stafford Horne wrote: > > > The generic pci.h header now only provides a definition of > > > pci_get_legacy_ide_irq which is used by architectures that support PNP. > > > Of the architectures that use asm-generic/pci.h this is only x86. > > > > Please move this into a separate header, ike legacy-ide.h. It doens't > > have anyting to do with actual PCI support. > > It looks like asm/libata-portmap.h is meant to have this information already, > and this is what libata uses, while drivers/ide used the > pci_get_legacy_ide_irq() > function for the same purpose. > > Only ia64 and powerpc have interesting definitions of both, and they > return the same thing, so I think this is sufficient to remove the last caller: > > diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c > index 2fa0f7d55259..d7a6250589d6 100644 > --- a/drivers/pnp/resource.c > +++ b/drivers/pnp/resource.c > @@ -16,7 +16,7 @@ > #include <asm/io.h> > #include <asm/dma.h> > #include <asm/irq.h> > -#include <linux/pci.h> > +#include <linux/libata.h> > #include <linux/ioport.h> > #include <linux/init.h> > > @@ -322,8 +322,8 @@ static int pci_dev_uses_irq(struct pnp_dev *pnp, > struct pci_dev *pci, > * treat the compatibility IRQs as busy. > */ > if ((progif & 0x5) != 0x5) > - if (pci_get_legacy_ide_irq(pci, 0) == irq || > - pci_get_legacy_ide_irq(pci, 1) == irq) { > + if (ATA_PRIMARY_IRQ(pci) == irq || > + ATA_SECONDARY_IRQ(pci) == irq) { > pnp_dbg(&pnp->dev, " legacy IDE device %s " > "using irq %d\n", pci_name(pci), irq); > return 1; > > This is fine on the architectures that currently return an error from > pci_get_legacy_ide_irq() but will change to returning 15/14 instead, > because they do not support ISA devices, so pci_dev_uses_irq() > will never be called either. I like this, I didn't know about the ATA_PRIMARY_IRQ/ATA_SECONDARY_IRQ macro. Let me add this to the series before 1/2. I will keep you as the author via Signed-off-by annotation. -Stafford ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-07-19 10:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220717033453.2896843-1-shorne@gmail.com>
2022-07-17 3:34 ` [PATCH v2 1/2] asm-generic: Remove pci.h copying remaining code to x86 Stafford Horne
2022-07-17 9:23 ` Geert Uytterhoeven
2022-07-17 9:42 ` Stafford Horne
2022-07-18 4:33 ` Christoph Hellwig
2022-07-18 8:40 ` Arnd Bergmann
2022-07-19 10:51 ` Stafford Horne
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).