public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 2.6] remove PCI_BRIDGE_CTL_VGA handling from setup-bus.c
@ 2005-07-14 11:53 Ivan Kokshaysky
  2005-07-14 13:27 ` Jon Smirl
  2005-07-14 13:53 ` Russell King
  0 siblings, 2 replies; 12+ messages in thread
From: Ivan Kokshaysky @ 2005-07-14 11:53 UTC (permalink / raw)
  To: Greg KH, Andrew Morton; +Cc: Jon Smirl, linux-pci, linux-kernel

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 <ink@jurassic.park.msu.ru>

--- 2.6.13-rc3/drivers/pci/probe.c	Thu Jul 14 11:09:52 2005
+++ linux/drivers/pci/probe.c	Thu Jul 14 11:22:06 2005
@@ -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
--- 2.6.13-rc3/drivers/pci/setup-bus.c	Thu Jul 14 11:09:52 2005
+++ linux/drivers/pci/setup-bus.c	Thu Jul 14 11:22:54 2005
@@ -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)

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-07-18 19:47 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-14 11:53 [patch 2.6] remove PCI_BRIDGE_CTL_VGA handling from setup-bus.c Ivan Kokshaysky
2005-07-14 13:27 ` Jon Smirl
2005-07-14 13:53 ` Russell King
2005-07-14 14:07   ` Jon Smirl
2005-07-14 21:46     ` Ivan Kokshaysky
2005-07-14 22:39       ` Jon Smirl
2005-07-14 23:08         ` Ivan Kokshaysky
2005-07-15 14:33       ` Benjamin Herrenschmidt
2005-07-14 21:44   ` Ivan Kokshaysky
2005-07-14 22:42     ` Jon Smirl
2005-07-14 23:33       ` Ivan Kokshaysky
2005-07-18 19:51   ` Grant Grundler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox