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 |
