Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 145d01e4 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Linus Torvalds
Browse files

[PATCH] ppc64 iSeries: allow build with no PCI



This patch allows iSeries to build with CONFIG_PCI=n.  This is useful for
partitions that have only virtual I/O.

Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 7f74e79f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -323,7 +323,7 @@ config EISA
	bool

config PCI
	bool
	bool "support for PCI devices" if (EMBEDDED && PPC_ISERIES)
	default y
	help
	  Find out whether your system includes a PCI bus. PCI is the name of
+3 −3
Original line number Diff line number Diff line
@@ -16,13 +16,13 @@ obj-y += vdso32/ vdso64/

obj-$(CONFIG_PPC_OF) +=	of_device.o

pci-obj-$(CONFIG_PPC_ISERIES)	+= iSeries_pci.o iSeries_VpdInfo.o
pci-obj-$(CONFIG_PPC_ISERIES)	+= iSeries_pci.o iSeries_irq.o \
				iSeries_VpdInfo.o
pci-obj-$(CONFIG_PPC_MULTIPLATFORM)	+= pci_dn.o pci_direct_iommu.o

obj-$(CONFIG_PCI)	+= pci.o pci_iommu.o iomap.o $(pci-obj-y)

obj-$(CONFIG_PPC_ISERIES) += iSeries_irq.o \
			     HvCall.o HvLpConfig.o LparData.o \
obj-$(CONFIG_PPC_ISERIES) += HvCall.o HvLpConfig.o LparData.o \
			     iSeries_setup.o ItLpQueue.o hvCall.o \
			     mf.o HvLpEvent.o iSeries_proc.o iSeries_htab.o \
			     iSeries_iommu.o
+4 −0
Original line number Diff line number Diff line
@@ -15,8 +15,10 @@

static struct dma_mapping_ops *get_dma_ops(struct device *dev)
{
#ifdef CONFIG_PCI
	if (dev->bus == &pci_bus_type)
		return &pci_dma_ops;
#endif
#ifdef CONFIG_IBMVIO
	if (dev->bus == &vio_bus_type)
		return &vio_dma_ops;
@@ -37,8 +39,10 @@ EXPORT_SYMBOL(dma_supported);

int dma_set_mask(struct device *dev, u64 dma_mask)
{
#ifdef CONFIG_PCI
	if (dev->bus == &pci_bus_type)
		return pci_set_dma_mask(to_pci_dev(dev), dma_mask);
#endif
#ifdef CONFIG_IBMVIO
	if (dev->bus == &vio_bus_type)
		return -EIO;
+2 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ static void tce_free_iSeries(struct iommu_table *tbl, long index, long npages)
	}
}


#ifdef CONFIG_PCI
/*
 * This function compares the known tables to find an iommu_table
 * that has already been built for hardware TCEs.
@@ -159,6 +159,7 @@ void iommu_devnode_init_iSeries(struct iSeries_Device_Node *dn)
	else
		kfree(tbl);
}
#endif

static void iommu_dev_setup_iSeries(struct pci_dev *dev) { }
static void iommu_bus_setup_iSeries(struct pci_bus *bus) { }
+8 −0
Original line number Diff line number Diff line
@@ -76,7 +76,11 @@ extern void ppcdbg_initialize(void);
static void build_iSeries_Memory_Map(void);
static void setup_iSeries_cache_sizes(void);
static void iSeries_bolt_kernel(unsigned long saddr, unsigned long eaddr);
#ifdef CONFIG_PCI
extern void iSeries_pci_final_fixup(void);
#else
static void iSeries_pci_final_fixup(void) { }
#endif

/* Global Variables */
static unsigned long procFreqHz;
@@ -876,6 +880,10 @@ static int set_spread_lpevents(char *str)
}
__setup("spread_lpevents=", set_spread_lpevents);

#ifndef CONFIG_PCI
void __init iSeries_init_IRQ(void) { }
#endif

void __init iSeries_early_setup(void)
{
	iSeries_fixup_klimit();
Loading