mirror of https://gitee.com/openkylin/linux.git
[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: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
7f74e79fe7
commit
145d01e428
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) { }
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -741,6 +741,7 @@ asmlinkage int sys32_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubu
|
|||
|
||||
asmlinkage int sys32_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn)
|
||||
{
|
||||
#ifdef CONFIG_PCI
|
||||
struct pci_controller* hose;
|
||||
struct list_head *ln;
|
||||
struct pci_bus *bus = NULL;
|
||||
|
@ -786,7 +787,7 @@ asmlinkage int sys32_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn)
|
|||
case IOBASE_ISA_MEM:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ lib-$(CONFIG_SMP) += locks.o
|
|||
|
||||
# e2a provides EBCDIC to ASCII conversions.
|
||||
ifdef CONFIG_PPC_ISERIES
|
||||
obj-$(CONFIG_PCI) += e2a.o
|
||||
obj-y += e2a.o
|
||||
endif
|
||||
|
||||
lib-$(CONFIG_DEBUG_KERNEL) += sstep.o
|
||||
|
|
|
@ -484,7 +484,7 @@ static ssize_t write_kmem(struct file * file, const char __user * buf,
|
|||
return virtr + wrote;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
static ssize_t read_port(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
|
@ -744,7 +744,7 @@ static struct file_operations null_fops = {
|
|||
.write = write_null,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
static struct file_operations port_fops = {
|
||||
.llseek = memory_lseek,
|
||||
.read = read_port,
|
||||
|
@ -804,7 +804,7 @@ static int memory_open(struct inode * inode, struct file * filp)
|
|||
case 3:
|
||||
filp->f_op = &null_fops;
|
||||
break;
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
case 4:
|
||||
filp->f_op = &port_fops;
|
||||
break;
|
||||
|
@ -846,7 +846,7 @@ static const struct {
|
|||
{1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops},
|
||||
{2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops},
|
||||
{3, "null", S_IRUGO | S_IWUGO, &null_fops},
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
{4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops},
|
||||
#endif
|
||||
{5, "zero", S_IRUGO | S_IWUGO, &zero_fops},
|
||||
|
|
|
@ -753,7 +753,7 @@ config SERIAL_MPC52xx_CONSOLE_BAUD
|
|||
|
||||
config SERIAL_ICOM
|
||||
tristate "IBM Multiport Serial Adapter"
|
||||
depends on PPC_ISERIES || PPC_PSERIES
|
||||
depends on PCI && (PPC_ISERIES || PPC_PSERIES)
|
||||
select SERIAL_CORE
|
||||
help
|
||||
This driver is for a family of multiport serial adapters
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
/* Doesn't really apply... */
|
||||
#define MAX_DMA_ADDRESS (~0UL)
|
||||
|
||||
#if !defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI)
|
||||
|
||||
#define dma_outb outb
|
||||
#define dma_inb inb
|
||||
|
||||
|
@ -323,4 +325,5 @@ extern int isa_dma_bridge_buggy;
|
|||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
#endif /* !defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI) */
|
||||
#endif /* _ASM_DMA_H */
|
||||
|
|
|
@ -137,8 +137,12 @@ extern void iommu_init_early_pSeries(void);
|
|||
extern void iommu_init_early_iSeries(void);
|
||||
extern void iommu_init_early_u3(void);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern void pci_iommu_init(void);
|
||||
extern void pci_direct_iommu_init(void);
|
||||
#else
|
||||
static inline void pci_iommu_init(void) { }
|
||||
#endif
|
||||
|
||||
extern void alloc_u3_dart_table(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue