This patch makes sure that VGA is initialized before it is used. Additionally, VGA will be initialized if either CONFIG_PCI_ROM_RUN=1 or CONFIG_CONSOLE_VGA=1.
Signed-off-by: Roman Kononov <[EMAIL PROTECTED]> ---
Index: src/devices/pci_rom.c =================================================================== --- src/devices/pci_rom.c (revision 2539) +++ src/devices/pci_rom.c (working copy) @@ -62,12 +62,9 @@ struct rom_header * pci_rom_probe(struct static void *pci_ram_image_start = (void *)PCI_RAM_IMAGE_START; -#if CONFIG_CONSOLE_VGA == 1 -extern int vga_inited; // defined in vga_console.c -#if CONFIG_CONSOLE_VGA_MULTI == 0 +#if CONFIG_CONSOLE_VGA == 1 && CONFIG_CONSOLE_VGA_MULTI == 0 extern device_t vga_pri; // the primary vga device, defined in device.c #endif -#endif struct rom_header *pci_rom_load(struct device *dev, struct rom_header *rom_header) { @@ -96,7 +93,6 @@ struct rom_header *pci_rom_load(struct d printk_debug("copying VGA ROM Image from 0x%x to 0x%x, 0x%x bytes\n", rom_header, PCI_VGA_RAM_IMAGE_START, rom_size); memcpy(PCI_VGA_RAM_IMAGE_START, rom_header, rom_size); - vga_inited = 1; return (struct rom_header *) (PCI_VGA_RAM_IMAGE_START); #endif } else { Index: src/devices/pci_device.c =================================================================== --- src/devices/pci_device.c (revision 2539) +++ src/devices/pci_device.c (working copy) @@ -633,7 +633,7 @@ void pci_dev_set_subsystem(device_t dev, void pci_dev_init(struct device *dev) { -#if CONFIG_PCI_ROM_RUN == 1 +#if CONFIG_PCI_ROM_RUN == 1 || CONFIG_CONSOLE_VGA=1 struct rom_header *rom, *ram; rom = pci_rom_probe(dev); @@ -644,6 +644,22 @@ void pci_dev_init(struct device *dev) return; run_bios(dev, ram); +#if CONFIG_CONSOLE_VGA==1 + { + extern int vga_inited; // defined in vga_console.c + vga_inited|=dev->class==PCI_CLASS_DISPLAY_VGA; + } +#endif +#elif CONFIG_CONSOLE_VGA==1 + extern int vga_inited; // defined in vga_console.c + struct rom_header* header; + if (dev->class!=PCI_CLASS_DISPLAY_VGA) return; + header=pci_rom_probe(dev); + if (header==NULL) return; + header=pci_rom_load(dev,header); + if (header==NULL) return; + run_bios(dev,header); + vga_inited=1; #endif }
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios