Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=27097ef9ff219c81a023911c7b0d5e7bc2419177
Commit:     27097ef9ff219c81a023911c7b0d5e7bc2419177
Parent:     e2fd58d06f79b10cad22240a6e6fb1c1108aa0ee
Author:     David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 3 21:37:57 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 3 21:37:57 2007 -0700

    [SPARC64]: Temporary workaround for PCI-E slot on T1000.
    
    The PCI-E slot on T1000 connects directly to the Fire PCI chip with no
    intervening bridges visible in the OBP tree.
    
    Unfortunately the bus numbering of the device in that slot is
    different (2) from the PCI host controller (0), and thus the
    pci_bus_{read,write}_config_*() calls don't work out.
    
    Complicating things further the Fire PCI controller has no config
    space it responds to either.
    
    For now treat this case specially so that devices in the slot work.
    
    Longer term we need to perhaps cons up a dummy bridge between the Fire
    and the PCI-E slot so that the bus hierarchy is complete inside of the
    kernel and thus the bus numbering all works out right.
    
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/pci_common.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/sparc64/kernel/pci_common.c b/arch/sparc64/kernel/pci_common.c
index 2f61c4b..c76bfbb 100644
--- a/arch/sparc64/kernel/pci_common.c
+++ b/arch/sparc64/kernel/pci_common.c
@@ -264,7 +264,7 @@ static int sun4v_read_pci_cfg(struct pci_bus *bus_dev, 
unsigned int devfn,
        unsigned int func = PCI_FUNC(devfn);
        unsigned long ret;
 
-       if (bus_dev == pbm->pci_bus && devfn == 0x00)
+       if (!bus && devfn == 0x00)
                return pci_host_bridge_read_pci_cfg(bus_dev, devfn, where,
                                                    size, value);
        if (config_out_of_range(pbm, bus, devfn, where)) {
@@ -300,7 +300,7 @@ static int sun4v_write_pci_cfg(struct pci_bus *bus_dev, 
unsigned int devfn,
        unsigned int func = PCI_FUNC(devfn);
        unsigned long ret;
 
-       if (bus_dev == pbm->pci_bus && devfn == 0x00)
+       if (!bus && devfn == 0x00)
                return pci_host_bridge_write_pci_cfg(bus_dev, devfn, where,
                                                     size, value);
        if (config_out_of_range(pbm, bus, devfn, where)) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to