Messages in this thread |  | | Date | Thu, 14 Jul 2005 18:42:30 -0400 | From | Jon Smirl <> | Subject | Re: [patch 2.6] remove PCI_BRIDGE_CTL_VGA handling from setup-bus.c |
| |
On 7/14/05, Ivan Kokshaysky <ink@jurassic.park.msu.ru> wrote: > It shouldn't be a problem. These days we have a lot of arch hooks > in the PCI layer. I'd probably start with the following:
You need to take this code into account, from arch/i386/pci/fixup.c
/* * Fixup to mark boot BIOS video selected by BIOS before it changes * * From information provided by "Jon Smirl" <jonsmirl@gmail.com> * * The standard boot ROM sequence for an x86 machine uses the BIOS * to select an initial video card for boot display. This boot video * card will have it's BIOS copied to C0000 in system RAM. * IORESOURCE_ROM_SHADOW is used to associate the boot video * card with this copy. On laptops this copy has to be used since * the main ROM may be compressed or combined with another image. * See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW * is marked here since the boot video device will be the only enabled * video device at this point. */
static void __devinit pci_fixup_video(struct pci_dev *pdev) { struct pci_dev *bridge; struct pci_bus *bus; u16 config;
if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA) return;
/* Is VGA routed to us? */ bus = pdev->bus; while (bus) { bridge = bus->self; if (bridge) { pci_read_config_word(bridge, PCI_BRIDGE_CONTROL, &config); if (!(config & PCI_BRIDGE_CTL_VGA)) return; } bus = bus->parent; } pci_read_config_word(pdev, PCI_COMMAND, &config); if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; printk(KERN_DEBUG "Boot video device is %s\n", pci_name(pdev)); } } DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video);
-- Jon Smirl jonsmirl@gmail.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |