diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2007-07-19 17:07:35 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-07-23 23:29:09 -0400 |
commit | 2e56ff206b7c6c28b847ccdbe46ad69b3263ac32 (patch) | |
tree | 636f8d31a2b6c19fe21b12c61f47dcd96d393871 /include/asm-powerpc | |
parent | d5269966e57484548bc5d38e117f161bf2f56ce9 (diff) |
[POWERPC] Make endianess of cfg_addr for indirect pci ops runtime
Make it so we do a runtime check to know if we need to write cfg_addr
as big or little endian. This is needed if we want to allow 86xx support
to co-exist in the same kernel as other 6xx PPCs.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/pci-bridge.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h index 13cb0a973478..9ce8f2991acf 100644 --- a/include/asm-powerpc/pci-bridge.h +++ b/include/asm-powerpc/pci-bridge.h | |||
@@ -49,11 +49,13 @@ struct pci_controller { | |||
49 | * hanging if we don't have link and try to do config cycles to | 49 | * hanging if we don't have link and try to do config cycles to |
50 | * anything but the PHB. Only allow talking to the PHB if this is | 50 | * anything but the PHB. Only allow talking to the PHB if this is |
51 | * set. | 51 | * set. |
52 | * BIG_ENDIAN - cfg_addr is a big endian register | ||
52 | */ | 53 | */ |
53 | #define PPC_INDIRECT_TYPE_SET_CFG_TYPE (0x00000001) | 54 | #define PPC_INDIRECT_TYPE_SET_CFG_TYPE (0x00000001) |
54 | #define PPC_INDIRECT_TYPE_EXT_REG (0x00000002) | 55 | #define PPC_INDIRECT_TYPE_EXT_REG (0x00000002) |
55 | #define PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS (0x00000004) | 56 | #define PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS (0x00000004) |
56 | #define PPC_INDIRECT_TYPE_NO_PCIE_LINK (0x00000008) | 57 | #define PPC_INDIRECT_TYPE_NO_PCIE_LINK (0x00000008) |
58 | #define PPC_INDIRECT_TYPE_BIG_ENDIAN (0x00000010) | ||
57 | u32 indirect_type; | 59 | u32 indirect_type; |
58 | 60 | ||
59 | /* Currently, we limit ourselves to 1 IO range and 3 mem | 61 | /* Currently, we limit ourselves to 1 IO range and 3 mem |
@@ -88,7 +90,7 @@ extern int early_find_capability(struct pci_controller *hose, int bus, | |||
88 | int dev_fn, int cap); | 90 | int dev_fn, int cap); |
89 | 91 | ||
90 | extern void setup_indirect_pci(struct pci_controller* hose, | 92 | extern void setup_indirect_pci(struct pci_controller* hose, |
91 | u32 cfg_addr, u32 cfg_data); | 93 | u32 cfg_addr, u32 cfg_data, u32 flags); |
92 | extern void setup_grackle(struct pci_controller *hose); | 94 | extern void setup_grackle(struct pci_controller *hose); |
93 | 95 | ||
94 | #else | 96 | #else |