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