linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/6] [POWERPC] create and use set_pci_dma_ops
@ 2007-03-04  5:58 Stephen Rothwell
  2007-03-04  6:02 ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Stephen Rothwell
  0 siblings, 1 reply; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-04  5:58 UTC (permalink / raw)
  To: paulus; +Cc: ppc-dev

This will allow us to build without PCI easier.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/kernel/pci_64.c           |    5 +++++
 arch/powerpc/platforms/cell/iommu.c    |    4 ++--
 arch/powerpc/platforms/celleb/iommu.c  |    2 +-
 arch/powerpc/platforms/iseries/iommu.c |    2 +-
 arch/powerpc/platforms/pasemi/iommu.c  |    4 ++--
 arch/powerpc/platforms/pseries/iommu.c |    4 ++--
 arch/powerpc/sysdev/dart_iommu.c       |    4 ++--
 include/asm-powerpc/pci.h              |    6 +++++-
 8 files changed, 20 insertions(+), 11 deletions(-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 7e97d71..73d5093 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -70,6 +70,11 @@ int global_phb_number;		/* Global phb counter */
 struct pci_dev *ppc64_isabridge_dev = NULL;
 EXPORT_SYMBOL_GPL(ppc64_isabridge_dev);
 
+void set_pci_dma_ops(struct dma_mapping_ops *dma_ops)
+{
+	pci_dma_ops = dma_ops;
+}
+
 static void fixup_broken_pcnet32(struct pci_dev* dev)
 {
 	if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) {
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 67d617b..d0e02ea 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -646,7 +646,7 @@ static int __init cell_iommu_init_disabled(void)
 	unsigned long base = 0, size;
 
 	/* When no iommu is present, we use direct DMA ops */
-	pci_dma_ops = &dma_direct_ops;
+	set_pci_dma_ops(&dma_direct_ops);
 
 	/* First make sure all IOC translation is turned off */
 	cell_disable_iommus();
@@ -734,7 +734,7 @@ static int __init cell_iommu_init(void)
 	}
 
 	/* Setup default PCI iommu ops */
-	pci_dma_ops = &dma_iommu_ops;
+	set_pci_dma_ops(&dma_iommu_ops);
 
  bail:
 	/* Register callbacks on OF platform device addition/removal
diff --git a/arch/powerpc/platforms/celleb/iommu.c b/arch/powerpc/platforms/celleb/iommu.c
index f63b94c..fecc4ff 100644
--- a/arch/powerpc/platforms/celleb/iommu.c
+++ b/arch/powerpc/platforms/celleb/iommu.c
@@ -95,7 +95,7 @@ static int __init celleb_init_iommu(void)
 		return -ENODEV;
 
 	celleb_init_direct_mapping();
-	pci_dma_ops = &dma_direct_ops;
+	set_pci_dma_ops(&dma_direct_ops);
 	bus_register_notifier(&of_platform_bus_type, &celleb_of_bus_notifier);
 
 	return 0;
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index d7a756d..7df2902 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -194,5 +194,5 @@ void iommu_init_early_iSeries(void)
 	ppc_md.tce_build = tce_build_iSeries;
 	ppc_md.tce_free  = tce_free_iSeries;
 
-	pci_dma_ops = &dma_iommu_ops;
+	set_pci_dma_ops(&dma_iommu_ops);
 }
diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c
index 459a53b..4587c1d 100644
--- a/arch/powerpc/platforms/pasemi/iommu.c
+++ b/arch/powerpc/platforms/pasemi/iommu.c
@@ -255,7 +255,7 @@ void iommu_init_early_pasemi(void)
 		/* Direct I/O, IOMMU off */
 		ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_null;
 		ppc_md.pci_dma_bus_setup = pci_dma_bus_setup_null;
-		pci_dma_ops = &dma_direct_ops;
+		set_pci_dma_ops(&dma_direct_ops);
 
 		return;
 	}
@@ -266,7 +266,7 @@ void iommu_init_early_pasemi(void)
 	ppc_md.pci_dma_bus_setup = pci_dma_bus_setup_pasemi;
 	ppc_md.tce_build = iobmap_build;
 	ppc_md.tce_free  = iobmap_free;
-	pci_dma_ops = &dma_iommu_ops;
+	set_pci_dma_ops(&dma_iommu_ops);
 }
 
 void __init alloc_iobmap_l2(void)
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index e6653a8..9322f74 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -562,7 +562,7 @@ void iommu_init_early_pSeries(void)
 		/* Direct I/O, IOMMU off */
 		ppc_md.pci_dma_dev_setup = NULL;
 		ppc_md.pci_dma_bus_setup = NULL;
-		pci_dma_ops = &dma_direct_ops;
+		set_pci_dma_ops(&dma_direct_ops);
 		return;
 	}
 
@@ -588,6 +588,6 @@ void iommu_init_early_pSeries(void)
 
 	pSeries_reconfig_notifier_register(&iommu_reconfig_nb);
 
-	pci_dma_ops = &dma_iommu_ops;
+	set_pci_dma_ops(&dma_iommu_ops);
 }
 
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c
index 1488535..336186d 100644
--- a/arch/powerpc/sysdev/dart_iommu.c
+++ b/arch/powerpc/sysdev/dart_iommu.c
@@ -333,7 +333,7 @@ void iommu_init_early_dart(void)
 		ppc_md.pci_dma_bus_setup = pci_dma_bus_setup_dart;
 
 		/* Setup pci_dma ops */
-		pci_dma_ops = &dma_iommu_ops;
+		set_pci_dma_ops(&dma_iommu_ops);
 		return;
 	}
 
@@ -343,7 +343,7 @@ void iommu_init_early_dart(void)
 	ppc_md.pci_dma_bus_setup = NULL;
 
 	/* Setup pci_dma ops */
-	pci_dma_ops = &dma_direct_ops;
+	set_pci_dma_ops(&dma_direct_ops);
 }
 
 
diff --git a/include/asm-powerpc/pci.h b/include/asm-powerpc/pci.h
index ac656ee..ebf31f1 100644
--- a/include/asm-powerpc/pci.h
+++ b/include/asm-powerpc/pci.h
@@ -70,8 +70,11 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
  */
 #define PCI_DISABLE_MWI
 
+#ifdef CONFIG_PCI
 extern struct dma_mapping_ops *pci_dma_ops;
 
+extern void set_pci_dma_ops(struct dma_mapping_ops *dma_ops);
+
 /* For DAC DMA, we currently don't support it by default, but
  * we let 64-bit platforms override this.
  */
@@ -82,7 +85,6 @@ static inline int pci_dac_dma_supported(struct pci_dev *hwdev,u64 mask)
 	return 0;
 }
 
-#ifdef CONFIG_PCI
 static inline void pci_dma_burst_advice(struct pci_dev *pdev,
 					enum pci_dma_burst_strategy *strat,
 					unsigned long *strategy_parameter)
@@ -99,6 +101,8 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev,
 	*strat = PCI_DMA_BURST_MULTIPLE;
 	*strategy_parameter = cacheline_size;
 }
+#else	/* CONFIG_PCI */
+#define set_pci_dma_ops(d)
 #endif
 
 extern int pci_domain_nr(struct pci_bus *bus);
-- 
1.5.0.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops(
  2007-03-04  5:58 [PATCH 1/6] [POWERPC] create and use set_pci_dma_ops Stephen Rothwell
@ 2007-03-04  6:02 ` Stephen Rothwell
  2007-03-04  6:03   ` [PATCH 3/6] [POWERPC] make iSeries build without CONFIG_PCI Stephen Rothwell
  2007-03-05 16:31   ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Will Schmidt
  0 siblings, 2 replies; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-04  6:02 UTC (permalink / raw)
  To: paulus; +Cc: ppc-dev

This allows us to hide pci_dma_ops.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/kernel/pci_64.c          |    9 +++++++--
 arch/powerpc/platforms/cell/iommu.c   |    4 ++--
 arch/powerpc/platforms/celleb/iommu.c |    2 +-
 include/asm-powerpc/pci.h             |   10 ++++++----
 4 files changed, 16 insertions(+), 9 deletions(-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 73d5093..db1d40e 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -61,8 +61,7 @@ void iSeries_pcibios_init(void);
 
 LIST_HEAD(hose_list);
 
-struct dma_mapping_ops *pci_dma_ops;
-EXPORT_SYMBOL(pci_dma_ops);
+static struct dma_mapping_ops *pci_dma_ops;
 
 int global_phb_number;		/* Global phb counter */
 
@@ -75,6 +74,12 @@ void set_pci_dma_ops(struct dma_mapping_ops *dma_ops)
 	pci_dma_ops = dma_ops;
 }
 
+struct dma_mapping_ops *get_pci_dma_ops(void)
+{
+	return pci_dma_ops;
+}
+EXPORT_SYMBOL(get_pci_dma_ops);
+
 static void fixup_broken_pcnet32(struct pci_dev* dev)
 {
 	if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) {
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index d0e02ea..7c953cc 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -496,7 +496,7 @@ static void cell_dma_dev_setup(struct device *dev)
 	struct dev_archdata *archdata = &dev->archdata;
 
 	/* If we run without iommu, no need to do anything */
-	if (pci_dma_ops == &dma_direct_ops)
+	if (get_pci_dma_ops() == &dma_direct_ops)
 		return;
 
 	/* Current implementation uses the first window available in that
@@ -530,7 +530,7 @@ static int cell_of_bus_notify(struct notifier_block *nb, unsigned long action,
 		return 0;
 
 	/* We use the PCI DMA ops */
-	dev->archdata.dma_ops = pci_dma_ops;
+	dev->archdata.dma_ops = get_pci_dma_ops();
 
 	cell_dma_dev_setup(dev);
 
diff --git a/arch/powerpc/platforms/celleb/iommu.c b/arch/powerpc/platforms/celleb/iommu.c
index fecc4ff..e94de6a 100644
--- a/arch/powerpc/platforms/celleb/iommu.c
+++ b/arch/powerpc/platforms/celleb/iommu.c
@@ -80,7 +80,7 @@ static int celleb_of_bus_notify(struct notifier_block *nb,
 	if (action != BUS_NOTIFY_ADD_DEVICE)
 		return 0;
 
-	dev->archdata.dma_ops = pci_dma_ops;
+	dev->archdata.dma_ops = get_pci_dma_ops();
 
 	return 0;
 }
diff --git a/include/asm-powerpc/pci.h b/include/asm-powerpc/pci.h
index ebf31f1..ce0f13e 100644
--- a/include/asm-powerpc/pci.h
+++ b/include/asm-powerpc/pci.h
@@ -71,17 +71,18 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
 #define PCI_DISABLE_MWI
 
 #ifdef CONFIG_PCI
-extern struct dma_mapping_ops *pci_dma_ops;
-
 extern void set_pci_dma_ops(struct dma_mapping_ops *dma_ops);
+extern struct dma_mapping_ops *get_pci_dma_ops(void);
 
 /* For DAC DMA, we currently don't support it by default, but
  * we let 64-bit platforms override this.
  */
 static inline int pci_dac_dma_supported(struct pci_dev *hwdev,u64 mask)
 {
-	if (pci_dma_ops && pci_dma_ops->dac_dma_supported)
-		return pci_dma_ops->dac_dma_supported(&hwdev->dev, mask);
+	struct dma_mapping_ops *d = get_pci_dma_ops();
+
+	if (d && d->dac_dma_supported)
+		return d->dac_dma_supported(&hwdev->dev, mask);
 	return 0;
 }
 
@@ -103,6 +104,7 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev,
 }
 #else	/* CONFIG_PCI */
 #define set_pci_dma_ops(d)
+#define get_pci_dma_ops()	NULL
 #endif
 
 extern int pci_domain_nr(struct pci_bus *bus);
-- 
1.5.0.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/6] [POWERPC] make iSeries build without CONFIG_PCI
  2007-03-04  6:02 ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Stephen Rothwell
@ 2007-03-04  6:03   ` Stephen Rothwell
  2007-03-04  6:04     ` [PATCH 4/6] [POWERPC] allow pSeries to " Stephen Rothwell
  2007-03-05 16:31   ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Will Schmidt
  1 sibling, 1 reply; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-04  6:03 UTC (permalink / raw)
  To: paulus; +Cc: ppc-dev


Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/platforms/iseries/irq.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
index 5225abf..9f9972b 100644
--- a/arch/powerpc/platforms/iseries/irq.c
+++ b/arch/powerpc/platforms/iseries/irq.c
@@ -337,6 +337,8 @@ unsigned int iSeries_get_irq(void)
 	return irq;
 }
 
+#ifdef CONFIG_PCI
+
 static int iseries_irq_host_map(struct irq_host *h, unsigned int virq,
 				irq_hw_number_t hw)
 {
@@ -384,3 +386,4 @@ void __init iSeries_init_IRQ(void)
 				"failed with rc 0x%x\n", ret);
 }
 
+#endif	/* CONFIG_PCI */
-- 
1.5.0.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-04  6:03   ` [PATCH 3/6] [POWERPC] make iSeries build without CONFIG_PCI Stephen Rothwell
@ 2007-03-04  6:04     ` Stephen Rothwell
  2007-03-04  6:05       ` [PATCH 5/6] [POWERPC] allow xmon to build without CONFIG_DEBUG_BUGVERBOSE Stephen Rothwell
  2007-03-04 14:07       ` [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI Arnd Bergmann
  0 siblings, 2 replies; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-04  6:04 UTC (permalink / raw)
  To: paulus; +Cc: ppc-dev


Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/Kconfig                    |    5 ++-
 arch/powerpc/kernel/Makefile            |    4 +-
 arch/powerpc/platforms/pseries/Makefile |    5 ++-
 arch/powerpc/platforms/pseries/iommu.c  |   53 +++++++++++++++++-------------
 arch/powerpc/platforms/pseries/setup.c  |    5 +++
 drivers/video/Kconfig                   |    2 +-
 include/asm-powerpc/ppc-pci.h           |    7 ++++
 7 files changed, 51 insertions(+), 30 deletions(-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 6dfbd52..e720527 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -89,7 +89,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
 
 config ARCH_MAY_HAVE_PC_FDC
 	bool
-	default y
+	default !PPC_PSERIES || PCI
 
 config PPC_OF
 	def_bool y
@@ -1028,7 +1028,8 @@ config MCA
 
 config PCI
 	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
-		|| PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3
+		|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
+		|| MPC7448HPC2 || PPC_PS3
 	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
 		&& !PPC_85xx && !PPC_86xx
 	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 8120d42..e0fa80e 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -25,8 +25,8 @@ obj-$(CONFIG_PPC_970_NAP)	+= idle_power4.o
 obj-$(CONFIG_PPC_OF)		+= of_device.o of_platform.o prom_parse.o
 procfs-$(CONFIG_PPC64)		:= proc_ppc64.o
 obj-$(CONFIG_PROC_FS)		+= $(procfs-y)
-rtaspci-$(CONFIG_PPC64)		:= rtas_pci.o
-obj-$(CONFIG_PPC_RTAS)		+= rtas.o rtas-rtc.o $(rtaspci-y)
+rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI)	:= rtas_pci.o
+obj-$(CONFIG_PPC_RTAS)		+= rtas.o rtas-rtc.o $(rtaspci-y-y)
 obj-$(CONFIG_RTAS_FLASH)	+= rtas_flash.o
 obj-$(CONFIG_RTAS_PROC)		+= rtas-proc.o
 obj-$(CONFIG_LPARCFG)		+= lparcfg.o
diff --git a/arch/powerpc/platforms/pseries/Makefile b/arch/powerpc/platforms/pseries/Makefile
index 2dfd050..90235d5 100644
--- a/arch/powerpc/platforms/pseries/Makefile
+++ b/arch/powerpc/platforms/pseries/Makefile
@@ -2,14 +2,15 @@ ifeq ($(CONFIG_PPC64),y)
 EXTRA_CFLAGS		+= -mno-minimal-toc
 endif
 
-obj-y			:= pci.o lpar.o hvCall.o nvram.o reconfig.o \
-			   setup.o iommu.o ras.o rtasd.o pci_dlpar.o \
+obj-y			:= lpar.o hvCall.o nvram.o reconfig.o \
+			   setup.o iommu.o ras.o rtasd.o \
 			   firmware.o power.o
 obj-$(CONFIG_SMP)	+= smp.o
 obj-$(CONFIG_XICS)	+= xics.o
 obj-$(CONFIG_SCANLOG)	+= scanlog.o
 obj-$(CONFIG_EEH)	+= eeh.o eeh_cache.o eeh_driver.o eeh_event.o
 obj-$(CONFIG_KEXEC)	+= kexec.o
+obj-$(CONFIG_PCI)	+= pci.o pci_dlpar.o
 
 obj-$(CONFIG_HOTPLUG_CPU)	+= hotplug-cpu.o
 
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index 9322f74..f9510a5 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -242,6 +242,7 @@ static unsigned long tce_get_pSeriesLP(struct iommu_table *tbl, long tcenum)
 	return tce_ret;
 }
 
+#ifdef CONFIG_PCI
 static void iommu_table_setparms(struct pci_controller *phb,
 				 struct device_node *dn,
 				 struct iommu_table *tbl)
@@ -478,29 +479,6 @@ static void pci_dma_dev_setup_pSeries(struct pci_dev *dev)
 		       pci_name(dev));
 }
 
-static int iommu_reconfig_notifier(struct notifier_block *nb, unsigned long action, void *node)
-{
-	int err = NOTIFY_OK;
-	struct device_node *np = node;
-	struct pci_dn *pci = PCI_DN(np);
-
-	switch (action) {
-	case PSERIES_RECONFIG_REMOVE:
-		if (pci && pci->iommu_table &&
-		    get_property(np, "ibm,dma-window", NULL))
-			iommu_free_table(np);
-		break;
-	default:
-		err = NOTIFY_DONE;
-		break;
-	}
-	return err;
-}
-
-static struct notifier_block iommu_reconfig_nb = {
-	.notifier_call = iommu_reconfig_notifier,
-};
-
 static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev)
 {
 	struct device_node *pdn, *dn;
@@ -554,6 +532,35 @@ static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev)
 
 	dev->dev.archdata.dma_data = pci->iommu_table;
 }
+#else  /* CONFIG_PCI */
+#define pci_dma_bus_setup_pSeries	NULL
+#define pci_dma_dev_setup_pSeries	NULL
+#define pci_dma_bus_setup_pSeriesLP	NULL
+#define pci_dma_dev_setup_pSeriesLP	NULL
+#endif /* !CONFIG_PCI */
+
+static int iommu_reconfig_notifier(struct notifier_block *nb, unsigned long action, void *node)
+{
+	int err = NOTIFY_OK;
+	struct device_node *np = node;
+	struct pci_dn *pci = PCI_DN(np);
+
+	switch (action) {
+	case PSERIES_RECONFIG_REMOVE:
+		if (pci && pci->iommu_table &&
+		    get_property(np, "ibm,dma-window", NULL))
+			iommu_free_table(np);
+		break;
+	default:
+		err = NOTIFY_DONE;
+		break;
+	}
+	return err;
+}
+
+static struct notifier_block iommu_reconfig_nb = {
+	.notifier_call = iommu_reconfig_notifier,
+};
 
 /* These are called very early. */
 void iommu_init_early_pSeries(void)
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 34aff47..ff87b1a 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -65,6 +65,7 @@
 #include <asm/udbg.h>
 #include <asm/smp.h>
 #include <asm/firmware.h>
+#include <asm/eeh.h>
 
 #include "plpar_wrappers.h"
 #include "pseries.h"
@@ -514,6 +515,10 @@ void pSeries_power_off(void)
 	for (;;);
 }
 
+#ifndef CONFIG_PCI
+void pSeries_final_fixup(void) { }
+#endif
+
 define_machine(pseries) {
 	.name			= "pSeries",
 	.probe			= pSeries_probe,
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 8874cf2..9478ad9 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -388,7 +388,7 @@ config FB_ATARI
 
 config FB_OF
 	bool "Open Firmware frame buffer device support"
-	depends on (FB = y) && (PPC64 || PPC_OF)
+	depends on (FB = y) && (PPC64 || PPC_OF) && (!PPC_PSERIES || PCI)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h
index ab6eddb..4a05340 100644
--- a/include/asm-powerpc/ppc-pci.h
+++ b/include/asm-powerpc/ppc-pci.h
@@ -10,6 +10,8 @@
 #define _ASM_POWERPC_PPC_PCI_H
 #ifdef __KERNEL__
 
+#ifdef CONFIG_PCI
+
 #include <linux/pci.h>
 #include <asm/pci-bridge.h>
 
@@ -126,5 +128,10 @@ struct device_node * find_device_pe(struct device_node *dn);
 
 #endif
 
+#else /* CONFIG_PCI */
+static inline void find_and_init_phbs(void) { }
+static inline void init_pci_config_tokens(void) { }
+#endif /* !CONFIG_PCI */
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_PPC_PCI_H */
-- 
1.5.0.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/6] [POWERPC] allow xmon to build without CONFIG_DEBUG_BUGVERBOSE
  2007-03-04  6:04     ` [PATCH 4/6] [POWERPC] allow pSeries to " Stephen Rothwell
@ 2007-03-04  6:05       ` Stephen Rothwell
  2007-03-04  6:07         ` [PATCH 6/6] [POWERPC] make find_and_init_pbs() a void function Stephen Rothwell
  2007-03-04 14:07       ` [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI Arnd Bergmann
  1 sibling, 1 reply; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-04  6:05 UTC (permalink / raw)
  To: paulus; +Cc: ppc-dev


Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/xmon/xmon.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 0183e5f..450f2d3 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1360,8 +1360,12 @@ static void print_bug_trap(struct pt_regs *regs)
 	if (is_warning_bug(bug))
 		return;
 
+#ifdef CONFIG_DEBUG_BUGVERBOSE
 	printf("kernel BUG at %s:%u!\n",
 	       bug->file, bug->line);
+#else
+	printf("kernel BUG at %p!\n", (void *)bug->bug_addr);
+#endif
 }
 
 void excprint(struct pt_regs *fp)
-- 
1.5.0.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 6/6] [POWERPC] make find_and_init_pbs() a void function
  2007-03-04  6:05       ` [PATCH 5/6] [POWERPC] allow xmon to build without CONFIG_DEBUG_BUGVERBOSE Stephen Rothwell
@ 2007-03-04  6:07         ` Stephen Rothwell
  0 siblings, 0 replies; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-04  6:07 UTC (permalink / raw)
  To: paulus; +Cc: ppc-dev

It always returned 0 and noone checked.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/kernel/rtas_pci.c |    4 +---
 include/asm-powerpc/ppc-pci.h  |    2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/arch/powerpc/kernel/rtas_pci.c b/arch/powerpc/kernel/rtas_pci.c
index ace9f4c..1616a44 100644
--- a/arch/powerpc/kernel/rtas_pci.c
+++ b/arch/powerpc/kernel/rtas_pci.c
@@ -274,7 +274,7 @@ int __devinit rtas_setup_phb(struct pci_controller *phb)
 	return 0;
 }
 
-unsigned long __init find_and_init_phbs(void)
+void __init find_and_init_phbs(void)
 {
 	struct device_node *node;
 	struct pci_controller *phb;
@@ -319,8 +319,6 @@ unsigned long __init find_and_init_phbs(void)
 		if (prop)
 			pci_assign_all_buses = *prop;
 	}
-
-	return 0;
 }
 
 /* RPA-specific bits for removing PHBs */
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h
index 4a05340..f186720 100644
--- a/include/asm-powerpc/ppc-pci.h
+++ b/include/asm-powerpc/ppc-pci.h
@@ -24,7 +24,7 @@ extern void pci_setup_phb_io_dynamic(struct pci_controller *hose, int primary);
 extern struct list_head hose_list;
 extern int global_phb_number;
 
-extern unsigned long find_and_init_phbs(void);
+extern void find_and_init_phbs(void);
 
 extern struct pci_dev *ppc64_isabridge_dev;	/* may be NULL if no ISA bus */
 
-- 
1.5.0.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-04  6:04     ` [PATCH 4/6] [POWERPC] allow pSeries to " Stephen Rothwell
  2007-03-04  6:05       ` [PATCH 5/6] [POWERPC] allow xmon to build without CONFIG_DEBUG_BUGVERBOSE Stephen Rothwell
@ 2007-03-04 14:07       ` Arnd Bergmann
  2007-03-04 16:37         ` Anton Blanchard
  2007-03-04 18:43         ` Benjamin Herrenschmidt
  1 sibling, 2 replies; 17+ messages in thread
From: Arnd Bergmann @ 2007-03-04 14:07 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Stephen Rothwell, paulus

On Sunday 04 March 2007 07:04:44 Stephen Rothwell wrote:
> =A0config PCI
> =A0=A0=A0=A0=A0=A0=A0=A0bool "PCI support" if 40x || CPM2 || PPC_83xx || =
PPC_85xx || PPC_86xx \=20
> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0|| PPC_MPC52xx || (EMBEDDED=
 && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3=20
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0|| PPC_MPC52xx || (EMBEDDED=
 &&  (PPC_PSERIES || PPC_ISERIES)) \=20
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0|| MPC7448HPC2 || PPC_PS3=20

This may be a dumb question, but system would you want to run a pSeries
kernel without PCI on? Is this just for build tests, or is there an
actual application for this?

>  procfs-$(CONFIG_PPC64)         :=3D proc_ppc64.o
>  obj-$(CONFIG_PROC_FS)          +=3D $(procfs-y)
> -rtaspci-$(CONFIG_PPC64)                :=3D rtas_pci.o
> -obj-$(CONFIG_PPC_RTAS)         +=3D rtas.o rtas-rtc.o $(rtaspci-y)
> +rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI)  :=3D rtas_pci.o
> +obj-$(CONFIG_PPC_RTAS)         +=3D rtas.o rtas-rtc.o $(rtaspci-y-y)
>  obj-$(CONFIG_RTAS_FLASH)       +=3D rtas_flash.o
>  obj-$(CONFIG_RTAS_PROC)                +=3D rtas-proc.o

The double -y suffix always confuses me. Do you mind turning this
into a Kconfig symbol instead?

config RTAS_PCI
	default y
	depends on PCI && PPC64 && PPC_RTAS

obj-$(CONFIG_RTAS_PCI)	+=3D rtas_pci.o

	Arnd <><

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-04 14:07       ` [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI Arnd Bergmann
@ 2007-03-04 16:37         ` Anton Blanchard
  2007-03-04 18:43         ` Benjamin Herrenschmidt
  1 sibling, 0 replies; 17+ messages in thread
From: Anton Blanchard @ 2007-03-04 16:37 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linuxppc-dev, paulus, Stephen Rothwell

 
Hi,

> This may be a dumb question, but system would you want to run a pSeries
> kernel without PCI on? Is this just for build tests, or is there an
> actual application for this?

We have disabled it to build cut down kernels during bringup, and when
using things like mambo when you dont care about IO.

Anton

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-04 14:07       ` [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI Arnd Bergmann
  2007-03-04 16:37         ` Anton Blanchard
@ 2007-03-04 18:43         ` Benjamin Herrenschmidt
  2007-03-04 18:59           ` Arnd Bergmann
  2007-03-07  5:47           ` [POWERPC] Clean up deciding when PCI is selectable Stephen Rothwell
  1 sibling, 2 replies; 17+ messages in thread
From: Benjamin Herrenschmidt @ 2007-03-04 18:43 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linuxppc-dev, paulus, Stephen Rothwell

On Sun, 2007-03-04 at 15:07 +0100, Arnd Bergmann wrote:
> On Sunday 04 March 2007 07:04:44 Stephen Rothwell wrote:
> >  config PCI
> >         bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \ 
> > -               || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3 
> > +               || PPC_MPC52xx || (EMBEDDED &&  (PPC_PSERIES || PPC_ISERIES)) \ 
> > +               || MPC7448HPC2 || PPC_PS3 
> 
> This may be a dumb question, but system would you want to run a pSeries
> kernel without PCI on? Is this just for build tests, or is there an
> actual application for this?

When running in an LPAR, it's fairly common to have no PCI devices, and
it's thus possible to imagine somebody wanting to build something
without PCI.

I dislike the giant conditional though.

Ben.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-04 18:43         ` Benjamin Herrenschmidt
@ 2007-03-04 18:59           ` Arnd Bergmann
  2007-03-05  9:02             ` Benjamin Herrenschmidt
  2007-03-07  5:47           ` [POWERPC] Clean up deciding when PCI is selectable Stephen Rothwell
  1 sibling, 1 reply; 17+ messages in thread
From: Arnd Bergmann @ 2007-03-04 18:59 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, paulus, Stephen Rothwell

On Sunday 04 March 2007, Benjamin Herrenschmidt wrote:
> On Sun, 2007-03-04 at 15:07 +0100, Arnd Bergmann wrote:
> > On Sunday 04 March 2007 07:04:44 Stephen Rothwell wrote:
> > > =A0config PCI
> > > =A0 =A0 =A0 =A0 bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_=
85xx || PPC_86xx \=20
> > > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 || PPC_MPC52xx || (EMBEDDED && PPC_ISER=
IES) || MPC7448HPC2 || PPC_PS3=20
> > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 || PPC_MPC52xx || (EMBEDDED && =A0(PPC_=
PSERIES || PPC_ISERIES)) \=20
> > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 || MPC7448HPC2 || PPC_PS3=20
> >=20
> I dislike the giant conditional though.

How about changing it to

config PCI_ENABLE
	bool

config PCI
	bool "PCI support" if PCI_ENABLE

config PPC_PSERIES
	select PCI_ENABLE
	select PCI if !EMBEDDED

config PPC_PS3
	select PCI_ENABLE

config PPC_PMAC
	select PCI

	Arnd <><

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-04 18:59           ` Arnd Bergmann
@ 2007-03-05  9:02             ` Benjamin Herrenschmidt
  2007-03-05  9:06               ` Geert Uytterhoeven
  0 siblings, 1 reply; 17+ messages in thread
From: Benjamin Herrenschmidt @ 2007-03-05  9:02 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linuxppc-dev, paulus, Stephen Rothwell

On Sun, 2007-03-04 at 19:59 +0100, Arnd Bergmann wrote:
> On Sunday 04 March 2007, Benjamin Herrenschmidt wrote:
> > On Sun, 2007-03-04 at 15:07 +0100, Arnd Bergmann wrote:
> > > On Sunday 04 March 2007 07:04:44 Stephen Rothwell wrote:
> > > >  config PCI
> > > >         bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \ 
> > > > -               || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3 
> > > > +               || PPC_MPC52xx || (EMBEDDED &&  (PPC_PSERIES || PPC_ISERIES)) \ 
> > > > +               || MPC7448HPC2 || PPC_PS3 
> > > 
> > I dislike the giant conditional though.
> 
> How about changing it to
> 
> config PCI_ENABLE
> 	bool

Call it PCI_CAPABLE rather...

Ben.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-05  9:02             ` Benjamin Herrenschmidt
@ 2007-03-05  9:06               ` Geert Uytterhoeven
  2007-03-06  1:57                 ` Stephen Rothwell
  0 siblings, 1 reply; 17+ messages in thread
From: Geert Uytterhoeven @ 2007-03-05  9:06 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linuxppc-dev, paulus, Arnd Bergmann, Stephen Rothwell

On Mon, 5 Mar 2007, Benjamin Herrenschmidt wrote:
> On Sun, 2007-03-04 at 19:59 +0100, Arnd Bergmann wrote:
> > On Sunday 04 March 2007, Benjamin Herrenschmidt wrote:
> > > On Sun, 2007-03-04 at 15:07 +0100, Arnd Bergmann wrote:
> > > > On Sunday 04 March 2007 07:04:44 Stephen Rothwell wrote:
> > > > >  config PCI
> > > > >         bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \ 
> > > > > -               || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3 
> > > > > +               || PPC_MPC52xx || (EMBEDDED &&  (PPC_PSERIES || PPC_ISERIES)) \ 
> > > > > +               || MPC7448HPC2 || PPC_PS3 
> > > > 
> > > I dislike the giant conditional though.
> > 
> > How about changing it to
> > 
> > config PCI_ENABLE
> > 	bool
> 
> Call it PCI_CAPABLE rather...

And I guess PS3 can be removed from the list, as we don't use fake PCI anymore.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops(
  2007-03-04  6:02 ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Stephen Rothwell
  2007-03-04  6:03   ` [PATCH 3/6] [POWERPC] make iSeries build without CONFIG_PCI Stephen Rothwell
@ 2007-03-05 16:31   ` Will Schmidt
  2007-03-05 22:55     ` Stephen Rothwell
  1 sibling, 1 reply; 17+ messages in thread
From: Will Schmidt @ 2007-03-05 16:31 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: ppc-dev, paulus

On Sun, 2007-04-03 at 17:02 +1100, Stephen Rothwell wrote:
> This allows us to hide pci_dma_ops.
> 

<snippage>

> -EXPORT_SYMBOL(pci_dma_ops);

> +EXPORT_SYMBOL(get_pci_dma_ops);

should this one be EXPORT_SYMBOL_GPL(get_pci_dma_ops);
        
or is it grandfathered in because it is replacing and renaming
EXPORT_SYMBOL(pci_dma_ops);   ?
        
-Will
        
        
> +
>  static void fixup_broken_pcnet32(struct pci_dev* dev)
>  {
>  	if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) {
> diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
> index d0e02ea..7c953cc 100644
> --- a/arch/powerpc/platforms/cell/iommu.c
> +++ b/arch/powerpc/platforms/cell/iommu.c
> @@ -496,7 +496,7 @@ static void cell_dma_dev_setup(struct device *dev)
>  	struct dev_archdata *archdata = &dev->archdata;
> 
>  	/* If we run without iommu, no need to do anything */
> -	if (pci_dma_ops == &dma_direct_ops)
> +	if (get_pci_dma_ops() == &dma_direct_ops)
>  		return;
> 
>  	/* Current implementation uses the first window available in that
> @@ -530,7 +530,7 @@ static int cell_of_bus_notify(struct notifier_block *nb, unsigned long action,
>  		return 0;
> 
>  	/* We use the PCI DMA ops */
> -	dev->archdata.dma_ops = pci_dma_ops;
> +	dev->archdata.dma_ops = get_pci_dma_ops();
> 
>  	cell_dma_dev_setup(dev);
> 
> diff --git a/arch/powerpc/platforms/celleb/iommu.c b/arch/powerpc/platforms/celleb/iommu.c
> index fecc4ff..e94de6a 100644
> --- a/arch/powerpc/platforms/celleb/iommu.c
> +++ b/arch/powerpc/platforms/celleb/iommu.c
> @@ -80,7 +80,7 @@ static int celleb_of_bus_notify(struct notifier_block *nb,
>  	if (action != BUS_NOTIFY_ADD_DEVICE)
>  		return 0;
> 
> -	dev->archdata.dma_ops = pci_dma_ops;
> +	dev->archdata.dma_ops = get_pci_dma_ops();
> 
>  	return 0;
>  }
> diff --git a/include/asm-powerpc/pci.h b/include/asm-powerpc/pci.h
> index ebf31f1..ce0f13e 100644
> --- a/include/asm-powerpc/pci.h
> +++ b/include/asm-powerpc/pci.h
> @@ -71,17 +71,18 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
>  #define PCI_DISABLE_MWI
> 
>  #ifdef CONFIG_PCI
> -extern struct dma_mapping_ops *pci_dma_ops;
> -
>  extern void set_pci_dma_ops(struct dma_mapping_ops *dma_ops);
> +extern struct dma_mapping_ops *get_pci_dma_ops(void);
> 
>  /* For DAC DMA, we currently don't support it by default, but
>   * we let 64-bit platforms override this.
>   */
>  static inline int pci_dac_dma_supported(struct pci_dev *hwdev,u64 mask)
>  {
> -	if (pci_dma_ops && pci_dma_ops->dac_dma_supported)
> -		return pci_dma_ops->dac_dma_supported(&hwdev->dev, mask);
> +	struct dma_mapping_ops *d = get_pci_dma_ops();
> +
> +	if (d && d->dac_dma_supported)
> +		return d->dac_dma_supported(&hwdev->dev, mask);
>  	return 0;
>  }
> 
> @@ -103,6 +104,7 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev,
>  }
>  #else	/* CONFIG_PCI */
>  #define set_pci_dma_ops(d)
> +#define get_pci_dma_ops()	NULL
>  #endif
> 
>  extern int pci_domain_nr(struct pci_bus *bus);

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops(
  2007-03-05 16:31   ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Will Schmidt
@ 2007-03-05 22:55     ` Stephen Rothwell
  0 siblings, 0 replies; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-05 22:55 UTC (permalink / raw)
  To: will_schmidt; +Cc: ppc-dev, paulus

[-- Attachment #1: Type: text/plain, Size: 501 bytes --]

On Mon, 05 Mar 2007 10:31:11 -0600 Will Schmidt <will_schmidt@vnet.ibm.com> wrote:
>
> > -EXPORT_SYMBOL(pci_dma_ops);
>
> > +EXPORT_SYMBOL(get_pci_dma_ops);
>
> should this one be EXPORT_SYMBOL_GPL(get_pci_dma_ops);
>
> or is it grandfathered in because it is replacing and renaming
> EXPORT_SYMBOL(pci_dma_ops);   ?

Yes, I don't know if there are any out of tree uses, but there could
easily be.

--
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI
  2007-03-05  9:06               ` Geert Uytterhoeven
@ 2007-03-06  1:57                 ` Stephen Rothwell
  0 siblings, 0 replies; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-06  1:57 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: paulus, Arnd Bergmann, linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 1787 bytes --]

On Mon, 5 Mar 2007 10:06:06 +0100 (CET) Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> wrote:
>
> On Mon, 5 Mar 2007, Benjamin Herrenschmidt wrote:
> > On Sun, 2007-03-04 at 19:59 +0100, Arnd Bergmann wrote:
> > > On Sunday 04 March 2007, Benjamin Herrenschmidt wrote:
> > > > On Sun, 2007-03-04 at 15:07 +0100, Arnd Bergmann wrote:
> > > > > On Sunday 04 March 2007 07:04:44 Stephen Rothwell wrote:
> > > > > >  config PCI
> > > > > >         bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
> > > > > > -               || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2 || PPC_PS3
> > > > > > +               || PPC_MPC52xx || (EMBEDDED &&  (PPC_PSERIES || PPC_ISERIES)) \
> > > > > > +               || MPC7448HPC2 || PPC_PS3
> > > > >
> > > > I dislike the giant conditional though.
> > >
> > > How about changing it to
> > >
> > > config PCI_ENABLE
> > > 	bool
> >
> > Call it PCI_CAPABLE rather...
>
> And I guess PS3 can be removed from the list, as we don't use fake PCI anymore.

The list above is really the list of platforms on which the person compiling the kernel get a choice about having PCI support.  Whether PCI is enabled or not by default is decided by the (unquoted) following lines:

        default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
                && !PPC_85xx && !PPC_86xx
        default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
        default PCI_QSPAN if !4xx && !CPM2 && 8xx

Which is a whole different can of worms :-)

So if PS3 doesn't use PCI at all then it should be removed from the above list and
	default n if PPC_PS3
should be added ..

Let me try to do a patch on top of the current set.
--
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [POWERPC] Clean up deciding when PCI is selectable
  2007-03-04 18:43         ` Benjamin Herrenschmidt
  2007-03-04 18:59           ` Arnd Bergmann
@ 2007-03-07  5:47           ` Stephen Rothwell
  2007-03-07  6:53             ` Benjamin Herrenschmidt
  1 sibling, 1 reply; 17+ messages in thread
From: Stephen Rothwell @ 2007-03-07  5:47 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, paulus, Arnd Bergmann


Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/powerpc/Kconfig                       |   18 +++++++++++++++---
 arch/powerpc/platforms/85xx/Kconfig        |    1 +
 arch/powerpc/platforms/embedded6xx/Kconfig |    2 ++
 3 files changed, 18 insertions(+), 3 deletions(-)

On Sun, 04 Mar 2007 19:43:46 +0100 Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> I dislike the giant conditional though.

How about this (only tested on a couple of configs).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index e720527..d7c447f 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -157,12 +157,14 @@ config PPC_83xx
 	select FSL_SOC
 	select 83xx
 	select PPC_FPU
+	select PCI_SELECTABLE
 
 config PPC_85xx
 	bool "Freescale 85xx"
 	select E500
 	select FSL_SOC
 	select 85xx
+	select PCI_SELECTABLE
 
 config PPC_86xx
 	bool "Freescale 86xx"
@@ -170,6 +172,7 @@ config PPC_86xx
 	select FSL_SOC
 	select PPC_FPU
 	select ALTIVEC
+	select PCI_SELECTABLE
 	help
 	  The Freescale E600 SoCs have 74xx cores.
 
@@ -181,6 +184,7 @@ config PPC_8xx
 config 40x
 	bool "AMCC 40x"
 	select PPC_DCR_NATIVE
+	select PCI_SELECTABLE
 
 config 44x
 	bool "AMCC 44x"
@@ -413,12 +417,14 @@ config PPC_PSERIES
 	select RTAS_ERROR_LOGGING
 	select PPC_UDBG_16550
 	select PPC_NATIVE
+	select PCI_SELECTABLE if EMBEDDED
 	default y
 
 config PPC_ISERIES
 	bool "IBM Legacy iSeries"
 	depends on PPC_MULTIPLATFORM && PPC64
 	select PPC_INDIRECT_IO
+	select PCI_SELECTABLE if EMBEDDED
 
 config PPC_CHRP
 	bool "Common Hardware Reference Platform (CHRP) based machines"
@@ -434,6 +440,7 @@ config PPC_CHRP
 
 config PPC_MPC52xx
 	bool
+	select PCI_SELECTABLE
 	default n
 
 config PPC_MPC5200
@@ -557,6 +564,7 @@ config PPC_PS3
 	select USB_OHCI_BIG_ENDIAN_MMIO
 	select USB_ARCH_HAS_EHCI
 	select USB_EHCI_BIG_ENDIAN_MMIO
+	select PCI_SELECTABLE
 	help
 	  This option enables support for the Sony PS3 game console
 	  and other platforms using the PS3 hypervisor.
@@ -1026,10 +1034,14 @@ config FSL_SOC
 config MCA
 	bool
 
+config PCI_SELECTABLE
+	def_bool n
+	help
+	  A platform should select this if the builder of the kernel may
+	  choose whether CONFIG_PCI is set or not.
+
 config PCI
-	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
-		|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
-		|| MPC7448HPC2 || PPC_PS3
+	bool "PCI support" if PCI_SELECTABLE
 	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
 		&& !PPC_85xx && !PPC_86xx
 	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index eb661cc..67af06d 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -60,6 +60,7 @@ config MPIC
 
 config CPM2
 	bool
+	select PCI_SELECTABLE
 	depends on MPC8560
 	default y
 	help
diff --git a/arch/powerpc/platforms/embedded6xx/Kconfig b/arch/powerpc/platforms/embedded6xx/Kconfig
index 886c522..b659515 100644
--- a/arch/powerpc/platforms/embedded6xx/Kconfig
+++ b/arch/powerpc/platforms/embedded6xx/Kconfig
@@ -93,6 +93,7 @@ config MPC7448HPC2
 	select PPC_UDBG_16550
 	select MPIC
 	select MPIC_WEIRD
+	select PCI_SELECTABLE
 	help
 	  Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga)
 	  platform
@@ -187,6 +188,7 @@ config 8272
 config CPM2
 	bool
 	depends on 8260 || MPC8560 || MPC8555
+	select PCI_SELECTABLE
 	default y
 	help
 	  The CPM2 (Communications Processor Module) is a coprocessor on
-- 
1.5.0.2

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [POWERPC] Clean up deciding when PCI is selectable
  2007-03-07  5:47           ` [POWERPC] Clean up deciding when PCI is selectable Stephen Rothwell
@ 2007-03-07  6:53             ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 17+ messages in thread
From: Benjamin Herrenschmidt @ 2007-03-07  6:53 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linuxppc-dev, paulus, Arnd Bergmann

On Wed, 2007-03-07 at 16:47 +1100, Stephen Rothwell wrote:
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>  arch/powerpc/Kconfig                       |   18 +++++++++++++++---
>  arch/powerpc/platforms/85xx/Kconfig        |    1 +
>  arch/powerpc/platforms/embedded6xx/Kconfig |    2 ++
>  3 files changed, 18 insertions(+), 3 deletions(-)
> 
> On Sun, 04 Mar 2007 19:43:46 +0100 Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> >
> > I dislike the giant conditional though.
> 
> How about this (only tested on a couple of configs).

I much prefer this one yes.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2007-03-07  6:53 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-04  5:58 [PATCH 1/6] [POWERPC] create and use set_pci_dma_ops Stephen Rothwell
2007-03-04  6:02 ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Stephen Rothwell
2007-03-04  6:03   ` [PATCH 3/6] [POWERPC] make iSeries build without CONFIG_PCI Stephen Rothwell
2007-03-04  6:04     ` [PATCH 4/6] [POWERPC] allow pSeries to " Stephen Rothwell
2007-03-04  6:05       ` [PATCH 5/6] [POWERPC] allow xmon to build without CONFIG_DEBUG_BUGVERBOSE Stephen Rothwell
2007-03-04  6:07         ` [PATCH 6/6] [POWERPC] make find_and_init_pbs() a void function Stephen Rothwell
2007-03-04 14:07       ` [PATCH 4/6] [POWERPC] allow pSeries to build without CONFIG_PCI Arnd Bergmann
2007-03-04 16:37         ` Anton Blanchard
2007-03-04 18:43         ` Benjamin Herrenschmidt
2007-03-04 18:59           ` Arnd Bergmann
2007-03-05  9:02             ` Benjamin Herrenschmidt
2007-03-05  9:06               ` Geert Uytterhoeven
2007-03-06  1:57                 ` Stephen Rothwell
2007-03-07  5:47           ` [POWERPC] Clean up deciding when PCI is selectable Stephen Rothwell
2007-03-07  6:53             ` Benjamin Herrenschmidt
2007-03-05 16:31   ` [PATCH 2/6] [POWERPC] create and use get_pci_dma_ops( Will Schmidt
2007-03-05 22:55     ` Stephen Rothwell

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