diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2008-07-25 10:01:35 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-07-30 16:54:38 -0400 |
commit | 455cc256eb23915100e203fb33ee143afd127954 (patch) | |
tree | 1ad0c410fef0f7d82587347c3d3e4d4c9646dcee /arch/mips/txx9 | |
parent | 07517529225ae4ce770271f83d8cd1004733a01d (diff) |
[MIPS] TXx9: PCI error handling
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Thu, 24 Jul 2008 00:25:16 +0900
Subject: [PATCH] txx9: PCI error handling
Add more control and detailed report on PCI error interrupt.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/txx9')
-rw-r--r-- | arch/mips/txx9/jmr3927/irq.c | 20 | ||||
-rw-r--r-- | arch/mips/txx9/jmr3927/setup.c | 1 | ||||
-rw-r--r-- | arch/mips/txx9/rbtx4927/setup.c | 2 | ||||
-rw-r--r-- | arch/mips/txx9/rbtx4938/setup.c | 1 |
4 files changed, 4 insertions, 20 deletions
diff --git a/arch/mips/txx9/jmr3927/irq.c b/arch/mips/txx9/jmr3927/irq.c index 070c9a115e57..f3b60233e99d 100644 --- a/arch/mips/txx9/jmr3927/irq.c +++ b/arch/mips/txx9/jmr3927/irq.c | |||
@@ -103,22 +103,6 @@ static int jmr3927_irq_dispatch(int pending) | |||
103 | return irq; | 103 | return irq; |
104 | } | 104 | } |
105 | 105 | ||
106 | #ifdef CONFIG_PCI | ||
107 | static irqreturn_t jmr3927_pcierr_interrupt(int irq, void *dev_id) | ||
108 | { | ||
109 | printk(KERN_WARNING "PCI error interrupt (irq 0x%x).\n", irq); | ||
110 | printk(KERN_WARNING "pcistat:%02x, lbstat:%04lx\n", | ||
111 | tx3927_pcicptr->pcistat, tx3927_pcicptr->lbstat); | ||
112 | |||
113 | return IRQ_HANDLED; | ||
114 | } | ||
115 | static struct irqaction pcierr_action = { | ||
116 | .handler = jmr3927_pcierr_interrupt, | ||
117 | .mask = CPU_MASK_NONE, | ||
118 | .name = "PCI error", | ||
119 | }; | ||
120 | #endif | ||
121 | |||
122 | static void __init jmr3927_irq_init(void); | 106 | static void __init jmr3927_irq_init(void); |
123 | 107 | ||
124 | void __init jmr3927_irq_setup(void) | 108 | void __init jmr3927_irq_setup(void) |
@@ -143,10 +127,6 @@ void __init jmr3927_irq_setup(void) | |||
143 | /* setup IOC interrupt 1 (PCI, MODEM) */ | 127 | /* setup IOC interrupt 1 (PCI, MODEM) */ |
144 | set_irq_chained_handler(JMR3927_IRQ_IOCINT, handle_simple_irq); | 128 | set_irq_chained_handler(JMR3927_IRQ_IOCINT, handle_simple_irq); |
145 | 129 | ||
146 | #ifdef CONFIG_PCI | ||
147 | setup_irq(JMR3927_IRQ_IRC_PCI, &pcierr_action); | ||
148 | #endif | ||
149 | |||
150 | /* enable all CPU interrupt bits. */ | 130 | /* enable all CPU interrupt bits. */ |
151 | set_c0_status(ST0_IM); /* IE bit is still 0. */ | 131 | set_c0_status(ST0_IM); /* IE bit is still 0. */ |
152 | } | 132 | } |
diff --git a/arch/mips/txx9/jmr3927/setup.c b/arch/mips/txx9/jmr3927/setup.c index 57dc91e7afa6..7c16c402ff60 100644 --- a/arch/mips/txx9/jmr3927/setup.c +++ b/arch/mips/txx9/jmr3927/setup.c | |||
@@ -199,6 +199,7 @@ static void __init jmr3927_pci_setup(void) | |||
199 | jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR); | 199 | jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR); |
200 | } | 200 | } |
201 | tx3927_pcic_setup(c, JMR3927_SDRAM_SIZE, extarb); | 201 | tx3927_pcic_setup(c, JMR3927_SDRAM_SIZE, extarb); |
202 | tx3927_setup_pcierr_irq(); | ||
202 | #endif /* CONFIG_PCI */ | 203 | #endif /* CONFIG_PCI */ |
203 | } | 204 | } |
204 | 205 | ||
diff --git a/arch/mips/txx9/rbtx4927/setup.c b/arch/mips/txx9/rbtx4927/setup.c index 88c05ccee3b2..65b72247d320 100644 --- a/arch/mips/txx9/rbtx4927/setup.c +++ b/arch/mips/txx9/rbtx4927/setup.c | |||
@@ -103,6 +103,7 @@ static void __init tx4927_pci_setup(void) | |||
103 | tx4927_report_pciclk(); | 103 | tx4927_report_pciclk(); |
104 | tx4927_pcic_setup(tx4927_pcicptr, c, extarb); | 104 | tx4927_pcic_setup(tx4927_pcicptr, c, extarb); |
105 | } | 105 | } |
106 | tx4927_setup_pcierr_irq(); | ||
106 | } | 107 | } |
107 | 108 | ||
108 | static void __init tx4937_pci_setup(void) | 109 | static void __init tx4937_pci_setup(void) |
@@ -149,6 +150,7 @@ static void __init tx4937_pci_setup(void) | |||
149 | tx4938_report_pciclk(); | 150 | tx4938_report_pciclk(); |
150 | tx4927_pcic_setup(tx4938_pcicptr, c, extarb); | 151 | tx4927_pcic_setup(tx4938_pcicptr, c, extarb); |
151 | } | 152 | } |
153 | tx4938_setup_pcierr_irq(); | ||
152 | } | 154 | } |
153 | 155 | ||
154 | static void __init rbtx4927_arch_init(void) | 156 | static void __init rbtx4927_arch_init(void) |
diff --git a/arch/mips/txx9/rbtx4938/setup.c b/arch/mips/txx9/rbtx4938/setup.c index fc9034db526e..4454b7901cd3 100644 --- a/arch/mips/txx9/rbtx4938/setup.c +++ b/arch/mips/txx9/rbtx4938/setup.c | |||
@@ -121,6 +121,7 @@ static void __init rbtx4938_pci_setup(void) | |||
121 | register_pci_controller(c); | 121 | register_pci_controller(c); |
122 | tx4927_pcic_setup(tx4938_pcic1ptr, c, 0); | 122 | tx4927_pcic_setup(tx4938_pcic1ptr, c, 0); |
123 | } | 123 | } |
124 | tx4938_setup_pcierr_irq(); | ||
124 | #endif /* CONFIG_PCI */ | 125 | #endif /* CONFIG_PCI */ |
125 | } | 126 | } |
126 | 127 | ||