* [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).