tree e0e94513f07166de7f45cfdc2b8c2199e5be7a3d
parent 761a3ac08c63718dacde12aaf0ec6d6760e8c2b7
author Ivan Kokshaysky <[EMAIL PROTECTED]> Sat, 30 Jul 2005 02:16:22 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Sat, 30 Jul 2005 03:12:51 -0700

[PATCH] PCI: remove PCI_BRIDGE_CTL_VGA handling from setup-bus.c

The setup-bus code doesn't work correctly for configurations
with more than one display adapter in the same PCI domain.
This stuff actually is a leftover of an early 2.4 PCI setup code
and apparently it stopped working after some "bridge_ctl" changes.
So the best thing we can do is just to remove it and rely on the fact
that any firmware *has* to configure VGA port forwarding for the boot
display device properly.

But then we need to ensure that the bus->bridge_ctl will always
contain valid information collected at the probe time, therefore
the following change in pci_scan_bridge() is needed.

Signed-off-by: Ivan Kokshaysky <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/pci/probe.c     |    2 +-
 drivers/pci/setup-bus.c |   12 ------------
 2 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -507,7 +507,7 @@ int __devinit pci_scan_bridge(struct pci
                pci_write_config_dword(dev, PCI_PRIMARY_BUS, buses);
 
                if (!is_cardbus) {
-                       child->bridge_ctl = PCI_BRIDGE_CTL_NO_ISA;
+                       child->bridge_ctl = bctl | PCI_BRIDGE_CTL_NO_ISA;
                        /*
                         * Adjust subordinate busnr in parent buses.
                         * We do this before scanning for children because
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -51,8 +51,6 @@ pbus_assign_resources_sorted(struct pci_
        struct resource_list head, *list, *tmp;
        int idx;
 
-       bus->bridge_ctl &= ~PCI_BRIDGE_CTL_VGA;
-
        head.next = NULL;
        list_for_each_entry(dev, &bus->devices, bus_list) {
                u16 class = dev->class >> 8;
@@ -62,10 +60,6 @@ pbus_assign_resources_sorted(struct pci_
                    class == PCI_CLASS_BRIDGE_HOST)
                        continue;
 
-               if (class == PCI_CLASS_DISPLAY_VGA ||
-                   class == PCI_CLASS_NOT_DEFINED_VGA)
-                       bus->bridge_ctl |= PCI_BRIDGE_CTL_VGA;
-
                pdev_sort_resources(dev, &head);
        }
 
@@ -509,12 +503,6 @@ pci_bus_assign_resources(struct pci_bus 
 
        pbus_assign_resources_sorted(bus);
 
-       if (bus->bridge_ctl & PCI_BRIDGE_CTL_VGA) {
-               /* Propagate presence of the VGA to upstream bridges */
-               for (b = bus; b->parent; b = b->parent) {
-                       b->bridge_ctl |= PCI_BRIDGE_CTL_VGA;
-               }
-       }
        list_for_each_entry(dev, &bus->devices, bus_list) {
                b = dev->subordinate;
                if (!b)
-
To unsubscribe from this list: send the line "unsubscribe bk-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