diff mbox series

sparc: merge 32-bit and 64-bit version of pci.h

Message ID 20181207141048.2723-1-hch@lst.de
State Not Applicable
Delegated to: David Miller
Headers show
Series sparc: merge 32-bit and 64-bit version of pci.h | expand

Commit Message

Christoph Hellwig Dec. 7, 2018, 2:10 p.m. UTC
There are enough common defintions that a single header seems nicer.

Also drop the pointless <linux/dma-mapping.h> include.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/sparc/include/asm/pci.h    | 53 ++++++++++++++++++++++++++++++---
 arch/sparc/include/asm/pci_32.h | 41 -------------------------
 arch/sparc/include/asm/pci_64.h | 52 --------------------------------
 3 files changed, 49 insertions(+), 97 deletions(-)
 delete mode 100644 arch/sparc/include/asm/pci_32.h
 delete mode 100644 arch/sparc/include/asm/pci_64.h

Comments

Sam Ravnborg Dec. 8, 2018, 1:14 p.m. UTC | #1
Hi Christoph.

Nice simplification.

Your patch deletes the following nice comment:
> -/*
> - * On LEON PCI Memory space is mapped 1:1 with physical address space.
> - *
> - * I/O space is located at low 64Kbytes in PCI I/O space. The I/O addresses
> - * are converted into CPU addresses to virtual addresses that are mapped with
> - * MMU to the PCI Host PCI I/O space window which are translated to the low
> - * 64Kbytes by the Host controller.
> - */
Maybe this is obvious and not relevant to keep?

Other than that:
Acked-by: Sam Ravnborg <sam@ravnborg.org>

	Sam
Christoph Hellwig Dec. 8, 2018, 4:52 p.m. UTC | #2
On Sat, Dec 08, 2018 at 02:14:51PM +0100, Sam Ravnborg wrote:
> Hi Christoph.
> 
> Nice simplification.
> 
> Your patch deletes the following nice comment:
> > -/*
> > - * On LEON PCI Memory space is mapped 1:1 with physical address space.
> > - *
> > - * I/O space is located at low 64Kbytes in PCI I/O space. The I/O addresses
> > - * are converted into CPU addresses to virtual addresses that are mapped with
> > - * MMU to the PCI Host PCI I/O space window which are translated to the low
> > - * 64Kbytes by the Host controller.
> > - */
> Maybe this is obvious and not relevant to keep?

I could not find any code below it that this even seemed relevant to.
If it makes sense to you or other people actually involved with sparc
I can restore it.
Sam Ravnborg Dec. 8, 2018, 5:20 p.m. UTC | #3
Hi Christoph.

On Sat, Dec 08, 2018 at 05:52:06PM +0100, Christoph Hellwig wrote:
> On Sat, Dec 08, 2018 at 02:14:51PM +0100, Sam Ravnborg wrote:
> > Hi Christoph.
> > 
> > Nice simplification.
> > 
> > Your patch deletes the following nice comment:
> > > -/*
> > > - * On LEON PCI Memory space is mapped 1:1 with physical address space.
> > > - *
> > > - * I/O space is located at low 64Kbytes in PCI I/O space. The I/O addresses
> > > - * are converted into CPU addresses to virtual addresses that are mapped with
> > > - * MMU to the PCI Host PCI I/O space window which are translated to the low
> > > - * 64Kbytes by the Host controller.
> > > - */
> > Maybe this is obvious and not relevant to keep?
> 
> I could not find any code below it that this even seemed relevant to.
> If it makes sense to you or other people actually involved with sparc
> I can restore it.

Correct, tyhe comment is general and not tied to any specific code.

This is a general LEON specific comment, so lets move it to a LEON specific file.
I suggest arch/sparc/include/asm/leon.h

Seems easiest to do as part of your patchset rather than me submitting a new patch.

	Sam
diff mbox series

Patch

diff --git a/arch/sparc/include/asm/pci.h b/arch/sparc/include/asm/pci.h
index cad79a6ce0e4..cfec79bb1831 100644
--- a/arch/sparc/include/asm/pci.h
+++ b/arch/sparc/include/asm/pci.h
@@ -1,9 +1,54 @@ 
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef ___ASM_SPARC_PCI_H
 #define ___ASM_SPARC_PCI_H
-#if defined(__sparc__) && defined(__arch64__)
-#include <asm/pci_64.h>
+
+
+/* Can be used to override the logic in pci_scan_bus for skipping
+ * already-configured bus numbers - to be used for buggy BIOSes
+ * or architectures with incomplete PCI setup by the loader.
+ */
+#define pcibios_assign_all_busses()	0
+
+#define PCIBIOS_MIN_IO		0UL
+#define PCIBIOS_MIN_MEM		0UL
+
+#define PCI_IRQ_NONE		0xffffffff
+
+
+#ifdef CONFIG_SPARC64
+
+/* PCI IOMMU mapping bypass support. */
+
+/* PCI 64-bit addressing works for all slots on all controller
+ * types on sparc64.  However, it requires that the device
+ * can drive enough of the 64 bits.
+ */
+#define PCI64_REQUIRED_MASK	(~(u64)0)
+#define PCI64_ADDR_BASE		0xfffc000000000000UL
+
+/* Return the index of the PCI controller for device PDEV. */
+int pci_domain_nr(struct pci_bus *bus);
+static inline int pci_proc_domain(struct pci_bus *bus)
+{
+	return 1;
+}
+
+/* Platform support for /proc/bus/pci/X/Y mmap()s. */
+#define HAVE_PCI_MMAP
+#define arch_can_pci_mmap_io()	1
+#define HAVE_ARCH_PCI_GET_UNMAPPED_AREA
+#define get_pci_unmapped_area get_fb_unmapped_area
+
+#define HAVE_ARCH_PCI_RESOURCE_TO_USER
+#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/pci_32.h>
-#endif
+#include <asm-generic/pci.h>
 #endif
+
+#endif /* ___ASM_SPARC_PCI_H */
diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h
deleted file mode 100644
index cfc0ee9476c6..000000000000
--- a/arch/sparc/include/asm/pci_32.h
+++ /dev/null
@@ -1,41 +0,0 @@ 
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __SPARC_PCI_H
-#define __SPARC_PCI_H
-
-#ifdef __KERNEL__
-
-#include <linux/dma-mapping.h>
-
-/* Can be used to override the logic in pci_scan_bus for skipping
- * already-configured bus numbers - to be used for buggy BIOSes
- * or architectures with incomplete PCI setup by the loader.
- */
-#define pcibios_assign_all_busses()	0
-
-#define PCIBIOS_MIN_IO		0UL
-#define PCIBIOS_MIN_MEM		0UL
-
-#define PCI_IRQ_NONE		0xffffffff
-
-#endif /* __KERNEL__ */
-
-#ifndef CONFIG_LEON_PCI
-/* generic pci stuff */
-#include <asm-generic/pci.h>
-#else
-/*
- * On LEON PCI Memory space is mapped 1:1 with physical address space.
- *
- * I/O space is located at low 64Kbytes in PCI I/O space. The I/O addresses
- * are converted into CPU addresses to virtual addresses that are mapped with
- * MMU to the PCI Host PCI I/O space window which are translated to the low
- * 64Kbytes by the Host controller.
- */
-
-static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
-{
-	return PCI_IRQ_NONE;
-}
-#endif
-
-#endif /* __SPARC_PCI_H */
diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h
deleted file mode 100644
index fac77813402c..000000000000
--- a/arch/sparc/include/asm/pci_64.h
+++ /dev/null
@@ -1,52 +0,0 @@ 
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __SPARC64_PCI_H
-#define __SPARC64_PCI_H
-
-#ifdef __KERNEL__
-
-#include <linux/dma-mapping.h>
-
-/* Can be used to override the logic in pci_scan_bus for skipping
- * already-configured bus numbers - to be used for buggy BIOSes
- * or architectures with incomplete PCI setup by the loader.
- */
-#define pcibios_assign_all_busses()	0
-
-#define PCIBIOS_MIN_IO		0UL
-#define PCIBIOS_MIN_MEM		0UL
-
-#define PCI_IRQ_NONE		0xffffffff
-
-/* PCI IOMMU mapping bypass support. */
-
-/* PCI 64-bit addressing works for all slots on all controller
- * types on sparc64.  However, it requires that the device
- * can drive enough of the 64 bits.
- */
-#define PCI64_REQUIRED_MASK	(~(u64)0)
-#define PCI64_ADDR_BASE		0xfffc000000000000UL
-
-/* Return the index of the PCI controller for device PDEV. */
-
-int pci_domain_nr(struct pci_bus *bus);
-static inline int pci_proc_domain(struct pci_bus *bus)
-{
-	return 1;
-}
-
-/* Platform support for /proc/bus/pci/X/Y mmap()s. */
-
-#define HAVE_PCI_MMAP
-#define arch_can_pci_mmap_io()	1
-#define HAVE_ARCH_PCI_GET_UNMAPPED_AREA
-#define get_pci_unmapped_area get_fb_unmapped_area
-
-static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
-{
-	return PCI_IRQ_NONE;
-}
-
-#define HAVE_ARCH_PCI_RESOURCE_TO_USER
-#endif /* __KERNEL__ */
-
-#endif /* __SPARC64_PCI_H */