[POWERPC] Allow pSeries to build without CONFIG_PCI
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
be9e95b17e
commit
bed5927581
7 changed files with 51 additions and 30 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -396,7 +396,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
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue