Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 60620
b: refs/heads/master
c: 476f577
h: refs/heads/master
v: v3
  • Loading branch information
Kumar Gala committed Jun 29, 2007
1 parent 5572b04 commit 1ec65b8
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e4725c23eca47b5dc0d0d128b9af288c0cd878f6
refs/heads/master: 476f5779b77a919f0ced5953de2bf3e0f2d02c07
4 changes: 3 additions & 1 deletion trunk/arch/powerpc/platforms/86xx/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,13 @@ int __init mpc86xx_add_bridge(struct device_node *dev)
printk(KERN_WARNING "Can't get bus-range for %s, assume"
" bus 0\n", dev->full_name);

pci_assign_all_buses = 1;
hose = pcibios_alloc_controller();
if (!hose)
return -ENOMEM;
hose->arch_data = dev;
hose->indirect_type = PPC_INDIRECT_TYPE_EXT_REG;
hose->indirect_type = PPC_INDIRECT_TYPE_EXT_REG |
PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS;

hose->first_busno = bus_range ? bus_range[0] : 0x0;
hose->last_busno = bus_range ? bus_range[1] : 0xff;
Expand Down
6 changes: 6 additions & 0 deletions trunk/arch/powerpc/sysdev/indirect_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ indirect_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
(0x80000000 | (bus_no << 16)
| (devfn << 8) | reg | cfg_type));

/* surpress setting of PCI_PRIMARY_BUS */
if (hose->indirect_type & PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS)
if ((offset == PCI_PRIMARY_BUS) &&
(bus->number == hose->first_busno))
val &= 0xffffff00;

/*
* Note: the caller has already checked that offset is
* suitably aligned and that len is 1, 2 or 4.
Expand Down
5 changes: 5 additions & 0 deletions trunk/include/asm-ppc/pci-bridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,14 @@ struct pci_controller {
* Used for variants of PCI indirect handling and possible quirks:
* SET_CFG_TYPE - used on 4xx or any PHB that does explicit type0/1
* EXT_REG - provides access to PCI-e extended registers
* SURPRESS_PRIMARY_BUS - we surpress the setting of PCI_PRIMARY_BUS
* on Freescale PCI-e controllers since they used the PCI_PRIMARY_BUS
* to determine which bus number to match on when generating type0
* config cycles
*/
#define PPC_INDIRECT_TYPE_SET_CFG_TYPE (0x00000001)
#define PPC_INDIRECT_TYPE_EXT_REG (0x00000002)
#define PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS (0x00000004)
u32 indirect_type;

/* Currently, we limit ourselves to 1 IO range and 3 mem
Expand Down

0 comments on commit 1ec65b8

Please sign in to comment.