aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2006-01-11 21:54:20 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-12 04:09:30 -0500
commitee2cdecec4dce8f7eb0d37a1bbf820cb32b2b75b (patch)
treefa15ce75b9ae28bdea2352a8f80cb9df43f1322b
parent511061049b2fab5ea684dfddcb8d2a38591391f3 (diff)
[PATCH] powerpc: iSeries fixes for build with no PCI
This reverts part of "ppc64 iSeries: allow build with no PCI" (145d01e4287b8cbf50f87c3283e33bf5c84e8468) which affected generic code and applies a fix in the arch specific code. Commit "partly merge iseries do_IRQ" (5fee9b3b39eb55c7e3619a3b36ceeabffeb8f144) introduced iSeries_get_irq which was only available if CONFIG_PCI is set. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/platforms/iseries/Makefile4
-rw-r--r--arch/powerpc/platforms/iseries/irq.c6
-rw-r--r--drivers/char/mem.c8
-rw-r--r--include/asm-powerpc/iseries/iseries_io.h12
4 files changed, 24 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/iseries/Makefile b/arch/powerpc/platforms/iseries/Makefile
index 127b465308be..ce8c0b943fa0 100644
--- a/arch/powerpc/platforms/iseries/Makefile
+++ b/arch/powerpc/platforms/iseries/Makefile
@@ -1,8 +1,8 @@
1EXTRA_CFLAGS += -mno-minimal-toc 1EXTRA_CFLAGS += -mno-minimal-toc
2 2
3obj-y += hvlog.o hvlpconfig.o lpardata.o setup.o mf.o lpevents.o \ 3obj-y += hvlog.o hvlpconfig.o lpardata.o setup.o mf.o lpevents.o \
4 hvcall.o proc.o htab.o iommu.o misc.o 4 hvcall.o proc.o htab.o iommu.o misc.o irq.o
5obj-$(CONFIG_PCI) += pci.o irq.o vpdinfo.o 5obj-$(CONFIG_PCI) += pci.o vpdinfo.o
6obj-$(CONFIG_IBMVIO) += vio.o 6obj-$(CONFIG_IBMVIO) += vio.o
7obj-$(CONFIG_SMP) += smp.o 7obj-$(CONFIG_SMP) += smp.o
8obj-$(CONFIG_VIOPATH) += viopath.o 8obj-$(CONFIG_VIOPATH) += viopath.o
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
index 3d023856405a..83442ea77476 100644
--- a/arch/powerpc/platforms/iseries/irq.c
+++ b/arch/powerpc/platforms/iseries/irq.c
@@ -48,6 +48,8 @@
48extern void iSeries_smp_message_recv(struct pt_regs *); 48extern void iSeries_smp_message_recv(struct pt_regs *);
49#endif 49#endif
50 50
51#ifdef CONFIG_PCI
52
51enum pci_event_type { 53enum pci_event_type {
52 pe_bus_created = 0, /* PHB has been created */ 54 pe_bus_created = 0, /* PHB has been created */
53 pe_bus_error = 1, /* PHB has failed */ 55 pe_bus_error = 1, /* PHB has failed */
@@ -325,6 +327,8 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus,
325 return virtirq; 327 return virtirq;
326} 328}
327 329
330#endif /* CONFIG_PCI */
331
328/* 332/*
329 * Get the next pending IRQ. 333 * Get the next pending IRQ.
330 */ 334 */
@@ -344,6 +348,7 @@ int iSeries_get_irq(struct pt_regs *regs)
344 if (hvlpevent_is_pending()) 348 if (hvlpevent_is_pending())
345 process_hvlpevents(regs); 349 process_hvlpevents(regs);
346 350
351#ifdef CONFIG_PCI
347 if (num_pending_irqs) { 352 if (num_pending_irqs) {
348 spin_lock(&pending_irqs_lock); 353 spin_lock(&pending_irqs_lock);
349 for (irq = 0; irq < NR_IRQS; irq++) { 354 for (irq = 0; irq < NR_IRQS; irq++) {
@@ -357,6 +362,7 @@ int iSeries_get_irq(struct pt_regs *regs)
357 if (irq >= NR_IRQS) 362 if (irq >= NR_IRQS)
358 irq = -2; 363 irq = -2;
359 } 364 }
365#endif
360 366
361 return irq; 367 return irq;
362} 368}
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index 704c3c07f0ab..29c41f4418c0 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -534,7 +534,7 @@ static ssize_t write_kmem(struct file * file, const char __user * buf,
534 return virtr + wrote; 534 return virtr + wrote;
535} 535}
536 536
537#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI)) 537#if defined(CONFIG_ISA) || !defined(__mc68000__)
538static ssize_t read_port(struct file * file, char __user * buf, 538static ssize_t read_port(struct file * file, char __user * buf,
539 size_t count, loff_t *ppos) 539 size_t count, loff_t *ppos)
540{ 540{
@@ -795,7 +795,7 @@ static struct file_operations null_fops = {
795 .write = write_null, 795 .write = write_null,
796}; 796};
797 797
798#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI)) 798#if defined(CONFIG_ISA) || !defined(__mc68000__)
799static struct file_operations port_fops = { 799static struct file_operations port_fops = {
800 .llseek = memory_lseek, 800 .llseek = memory_lseek,
801 .read = read_port, 801 .read = read_port,
@@ -865,7 +865,7 @@ static int memory_open(struct inode * inode, struct file * filp)
865 case 3: 865 case 3:
866 filp->f_op = &null_fops; 866 filp->f_op = &null_fops;
867 break; 867 break;
868#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI)) 868#if defined(CONFIG_ISA) || !defined(__mc68000__)
869 case 4: 869 case 4:
870 filp->f_op = &port_fops; 870 filp->f_op = &port_fops;
871 break; 871 break;
@@ -912,7 +912,7 @@ static const struct {
912 {1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops}, 912 {1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops},
913 {2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops}, 913 {2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops},
914 {3, "null", S_IRUGO | S_IWUGO, &null_fops}, 914 {3, "null", S_IRUGO | S_IWUGO, &null_fops},
915#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI)) 915#if defined(CONFIG_ISA) || !defined(__mc68000__)
916 {4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops}, 916 {4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops},
917#endif 917#endif
918 {5, "zero", S_IRUGO | S_IWUGO, &zero_fops}, 918 {5, "zero", S_IRUGO | S_IWUGO, &zero_fops},
diff --git a/include/asm-powerpc/iseries/iseries_io.h b/include/asm-powerpc/iseries/iseries_io.h
index d1c317c6c3d0..496aa852b617 100644
--- a/include/asm-powerpc/iseries/iseries_io.h
+++ b/include/asm-powerpc/iseries/iseries_io.h
@@ -32,6 +32,7 @@
32 * End Change Activity 32 * End Change Activity
33 */ 33 */
34 34
35#ifdef CONFIG_PCI
35extern u8 iSeries_Read_Byte(const volatile void __iomem * IoAddress); 36extern u8 iSeries_Read_Byte(const volatile void __iomem * IoAddress);
36extern u16 iSeries_Read_Word(const volatile void __iomem * IoAddress); 37extern u16 iSeries_Read_Word(const volatile void __iomem * IoAddress);
37extern u32 iSeries_Read_Long(const volatile void __iomem * IoAddress); 38extern u32 iSeries_Read_Long(const volatile void __iomem * IoAddress);
@@ -44,6 +45,17 @@ extern void iSeries_memcpy_toio(volatile void __iomem *dest, void *source,
44 size_t n); 45 size_t n);
45extern void iSeries_memcpy_fromio(void *dest, 46extern void iSeries_memcpy_fromio(void *dest,
46 const volatile void __iomem *source, size_t n); 47 const volatile void __iomem *source, size_t n);
48#else
49static inline u8 iSeries_Read_Byte(const volatile void __iomem *IoAddress)
50{
51 return 0xff;
52}
53
54static inline void iSeries_Write_Byte(u8 IoData,
55 volatile void __iomem *IoAddress)
56{
57}
58#endif /* CONFIG_PCI */
47 59
48#endif /* CONFIG_PPC_ISERIES */ 60#endif /* CONFIG_PPC_ISERIES */
49#endif /* _ASM_POWERPC_ISERIES_ISERIES_IO_H */ 61#endif /* _ASM_POWERPC_ISERIES_ISERIES_IO_H */