diff options
Diffstat (limited to 'include/asm-powerpc/ppc-pci.h')
| -rw-r--r-- | include/asm-powerpc/ppc-pci.h | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h index 13aacff755f3..9896fade98a7 100644 --- a/include/asm-powerpc/ppc-pci.h +++ b/include/asm-powerpc/ppc-pci.h | |||
| @@ -26,6 +26,10 @@ extern unsigned long find_and_init_phbs(void); | |||
| 26 | 26 | ||
| 27 | extern struct pci_dev *ppc64_isabridge_dev; /* may be NULL if no ISA bus */ | 27 | extern struct pci_dev *ppc64_isabridge_dev; /* may be NULL if no ISA bus */ |
| 28 | 28 | ||
| 29 | /** Bus Unit ID macros; get low and hi 32-bits of the 64-bit BUID */ | ||
| 30 | #define BUID_HI(buid) ((buid) >> 32) | ||
| 31 | #define BUID_LO(buid) ((buid) & 0xffffffff) | ||
| 32 | |||
| 29 | /* PCI device_node operations */ | 33 | /* PCI device_node operations */ |
| 30 | struct device_node; | 34 | struct device_node; |
| 31 | typedef void *(*traverse_func)(struct device_node *me, void *data); | 35 | typedef void *(*traverse_func)(struct device_node *me, void *data); |
| @@ -36,10 +40,6 @@ void pci_devs_phb_init(void); | |||
| 36 | void pci_devs_phb_init_dynamic(struct pci_controller *phb); | 40 | void pci_devs_phb_init_dynamic(struct pci_controller *phb); |
| 37 | void __devinit scan_phb(struct pci_controller *hose); | 41 | void __devinit scan_phb(struct pci_controller *hose); |
| 38 | 42 | ||
| 39 | /* PCI address cache management routines */ | ||
| 40 | void pci_addr_cache_insert_device(struct pci_dev *dev); | ||
| 41 | void pci_addr_cache_remove_device(struct pci_dev *dev); | ||
| 42 | |||
| 43 | /* From rtas_pci.h */ | 43 | /* From rtas_pci.h */ |
| 44 | void init_pci_config_tokens (void); | 44 | void init_pci_config_tokens (void); |
| 45 | unsigned long get_phb_buid (struct device_node *); | 45 | unsigned long get_phb_buid (struct device_node *); |
| @@ -52,4 +52,48 @@ extern unsigned long pci_probe_only; | |||
| 52 | extern unsigned long pci_assign_all_buses; | 52 | extern unsigned long pci_assign_all_buses; |
| 53 | extern int pci_read_irq_line(struct pci_dev *pci_dev); | 53 | extern int pci_read_irq_line(struct pci_dev *pci_dev); |
| 54 | 54 | ||
| 55 | /* ---- EEH internal-use-only related routines ---- */ | ||
| 56 | #ifdef CONFIG_EEH | ||
| 57 | /** | ||
| 58 | * rtas_set_slot_reset -- unfreeze a frozen slot | ||
| 59 | * | ||
| 60 | * Clear the EEH-frozen condition on a slot. This routine | ||
| 61 | * does this by asserting the PCI #RST line for 1/8th of | ||
| 62 | * a second; this routine will sleep while the adapter is | ||
| 63 | * being reset. | ||
| 64 | */ | ||
| 65 | void rtas_set_slot_reset (struct pci_dn *); | ||
| 66 | |||
| 67 | /** | ||
| 68 | * eeh_restore_bars - Restore device configuration info. | ||
| 69 | * | ||
| 70 | * A reset of a PCI device will clear out its config space. | ||
| 71 | * This routines will restore the config space for this | ||
| 72 | * device, and is children, to values previously obtained | ||
| 73 | * from the firmware. | ||
| 74 | */ | ||
| 75 | void eeh_restore_bars(struct pci_dn *); | ||
| 76 | |||
| 77 | /** | ||
| 78 | * rtas_configure_bridge -- firmware initialization of pci bridge | ||
| 79 | * | ||
| 80 | * Ask the firmware to configure all PCI bridges devices | ||
| 81 | * located behind the indicated node. Required after a | ||
| 82 | * pci device reset. Does essentially the same hing as | ||
| 83 | * eeh_restore_bars, but for brdges, and lets firmware | ||
| 84 | * do the work. | ||
| 85 | */ | ||
| 86 | void rtas_configure_bridge(struct pci_dn *); | ||
| 87 | |||
| 88 | int rtas_write_config(struct pci_dn *, int where, int size, u32 val); | ||
| 89 | |||
| 90 | /** | ||
| 91 | * mark and clear slots: find "partition endpoint" PE and set or | ||
| 92 | * clear the flags for each subnode of the PE. | ||
| 93 | */ | ||
| 94 | void eeh_mark_slot (struct device_node *dn, int mode_flag); | ||
| 95 | void eeh_clear_slot (struct device_node *dn, int mode_flag); | ||
| 96 | |||
| 97 | #endif | ||
| 98 | |||
| 55 | #endif /* _ASM_POWERPC_PPC_PCI_H */ | 99 | #endif /* _ASM_POWERPC_PPC_PCI_H */ |
