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 /include/asm-mips | |
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 'include/asm-mips')
-rw-r--r-- | include/asm-mips/txx9/tx3927.h | 7 | ||||
-rw-r--r-- | include/asm-mips/txx9/tx4927.h | 1 | ||||
-rw-r--r-- | include/asm-mips/txx9/tx4927pcic.h | 3 | ||||
-rw-r--r-- | include/asm-mips/txx9/tx4938.h | 1 |
4 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-mips/txx9/tx3927.h b/include/asm-mips/txx9/tx3927.h index ea79e1b16e71..8d62b1ba2c14 100644 --- a/include/asm-mips/txx9/tx3927.h +++ b/include/asm-mips/txx9/tx3927.h | |||
@@ -236,11 +236,17 @@ struct tx3927_ccfg_reg { | |||
236 | /* see PCI_STATUS_XXX in linux/pci.h */ | 236 | /* see PCI_STATUS_XXX in linux/pci.h */ |
237 | #define PCI_STATUS_NEW_CAP 0x0010 | 237 | #define PCI_STATUS_NEW_CAP 0x0010 |
238 | 238 | ||
239 | /* bits for ISTAT/IIM */ | ||
240 | #define TX3927_PCIC_IIM_ALL 0x00001600 | ||
241 | |||
239 | /* bits for TC */ | 242 | /* bits for TC */ |
240 | #define TX3927_PCIC_TC_OF16E 0x00000020 | 243 | #define TX3927_PCIC_TC_OF16E 0x00000020 |
241 | #define TX3927_PCIC_TC_IF8E 0x00000010 | 244 | #define TX3927_PCIC_TC_IF8E 0x00000010 |
242 | #define TX3927_PCIC_TC_OF8E 0x00000008 | 245 | #define TX3927_PCIC_TC_OF8E 0x00000008 |
243 | 246 | ||
247 | /* bits for TSTAT/TIM */ | ||
248 | #define TX3927_PCIC_TIM_ALL 0x0003ffff | ||
249 | |||
244 | /* bits for IOBA/MBA */ | 250 | /* bits for IOBA/MBA */ |
245 | /* see PCI_BASE_ADDRESS_XXX in linux/pci.h */ | 251 | /* see PCI_BASE_ADDRESS_XXX in linux/pci.h */ |
246 | 252 | ||
@@ -320,5 +326,6 @@ struct tx3927_ccfg_reg { | |||
320 | struct pci_controller; | 326 | struct pci_controller; |
321 | void __init tx3927_pcic_setup(struct pci_controller *channel, | 327 | void __init tx3927_pcic_setup(struct pci_controller *channel, |
322 | unsigned long sdram_size, int extarb); | 328 | unsigned long sdram_size, int extarb); |
329 | void tx3927_setup_pcierr_irq(void); | ||
323 | 330 | ||
324 | #endif /* __ASM_TXX9_TX3927_H */ | 331 | #endif /* __ASM_TXX9_TX3927_H */ |
diff --git a/include/asm-mips/txx9/tx4927.h b/include/asm-mips/txx9/tx4927.h index ceb4b79ff4e3..2c26fd17cb4a 100644 --- a/include/asm-mips/txx9/tx4927.h +++ b/include/asm-mips/txx9/tx4927.h | |||
@@ -249,6 +249,7 @@ void tx4927_time_init(unsigned int tmrnr); | |||
249 | void tx4927_setup_serial(void); | 249 | void tx4927_setup_serial(void); |
250 | int tx4927_report_pciclk(void); | 250 | int tx4927_report_pciclk(void); |
251 | int tx4927_pciclk66_setup(void); | 251 | int tx4927_pciclk66_setup(void); |
252 | void tx4927_setup_pcierr_irq(void); | ||
252 | void tx4927_irq_init(void); | 253 | void tx4927_irq_init(void); |
253 | 254 | ||
254 | #endif /* __ASM_TXX9_TX4927_H */ | 255 | #endif /* __ASM_TXX9_TX4927_H */ |
diff --git a/include/asm-mips/txx9/tx4927pcic.h b/include/asm-mips/txx9/tx4927pcic.h index e1d78e9ebc06..223841c56131 100644 --- a/include/asm-mips/txx9/tx4927pcic.h +++ b/include/asm-mips/txx9/tx4927pcic.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #define __ASM_TXX9_TX4927PCIC_H | 10 | #define __ASM_TXX9_TX4927PCIC_H |
11 | 11 | ||
12 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
13 | #include <linux/irqreturn.h> | ||
13 | 14 | ||
14 | struct tx4927_pcic_reg { | 15 | struct tx4927_pcic_reg { |
15 | u32 pciid; | 16 | u32 pciid; |
@@ -196,5 +197,7 @@ void __init tx4927_pcic_setup(struct tx4927_pcic_reg __iomem *pcicptr, | |||
196 | struct pci_controller *channel, int extarb); | 197 | struct pci_controller *channel, int extarb); |
197 | void tx4927_report_pcic_status(void); | 198 | void tx4927_report_pcic_status(void); |
198 | char *tx4927_pcibios_setup(char *str); | 199 | char *tx4927_pcibios_setup(char *str); |
200 | void tx4927_dump_pcic_settings(void); | ||
201 | irqreturn_t tx4927_pcierr_interrupt(int irq, void *dev_id); | ||
199 | 202 | ||
200 | #endif /* __ASM_TXX9_TX4927PCIC_H */ | 203 | #endif /* __ASM_TXX9_TX4927PCIC_H */ |
diff --git a/include/asm-mips/txx9/tx4938.h b/include/asm-mips/txx9/tx4938.h index 1ed969d381d6..4fff1c9e08d4 100644 --- a/include/asm-mips/txx9/tx4938.h +++ b/include/asm-mips/txx9/tx4938.h | |||
@@ -285,6 +285,7 @@ void tx4938_report_pci1clk(void); | |||
285 | int tx4938_pciclk66_setup(void); | 285 | int tx4938_pciclk66_setup(void); |
286 | struct pci_dev; | 286 | struct pci_dev; |
287 | int tx4938_pcic1_map_irq(const struct pci_dev *dev, u8 slot); | 287 | int tx4938_pcic1_map_irq(const struct pci_dev *dev, u8 slot); |
288 | void tx4938_setup_pcierr_irq(void); | ||
288 | void tx4938_irq_init(void); | 289 | void tx4938_irq_init(void); |
289 | 290 | ||
290 | #endif | 291 | #endif |