patch-1.3.48 linux/arch/alpha/kernel/bios32.c
Next file: linux/arch/alpha/kernel/setup.c
Previous file: linux/arch/alpha/defconfig
Back to the patch index
Back to the overall index
- Lines: 49
- Date:
Sun Dec 17 11:17:19 1995
- Orig file:
v1.3.47/linux/arch/alpha/kernel/bios32.c
- Orig date:
Wed Nov 8 07:11:29 1995
diff -u --recursive --new-file v1.3.47/linux/arch/alpha/kernel/bios32.c linux/arch/alpha/kernel/bios32.c
@@ -427,6 +427,14 @@
pcibios_write_config_byte(dev->bus->number, dev->devfn,
PCI_INTERRUPT_LINE, dev->irq);
#endif
+ /*
+ * if its a VGA, enable its BIOS ROM at C0000
+ */
+ if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) {
+ pcibios_write_config_dword(dev->bus->number, dev->devfn,
+ PCI_ROM_ADDRESS,
+ 0x000c0000 | PCI_ROM_ADDRESS_ENABLE);
+ }
}
if (ide_base) {
enable_ide(ide_base);
@@ -612,6 +620,14 @@
if (pirq < 0) {
continue;
}
+ /*
+ * if its a VGA, enable its BIOS ROM at C0000
+ */
+ if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) {
+ pcibios_write_config_dword(dev->bus->number, dev->devfn,
+ PCI_ROM_ADDRESS,
+ 0x000c0000 | PCI_ROM_ADDRESS_ENABLE);
+ }
if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
continue; /* for now, displays get no IRQ */
}
@@ -620,7 +636,6 @@
/* must set the PCI IRQs to level triggered */
/* assume they are all >= 8 */
level_bits |= (1 << (dev->irq - 8));
- outb(level_bits, 0x4d1);
#if PCI_MODIFY
/* tell the device: */
@@ -628,6 +643,10 @@
PCI_INTERRUPT_LINE, dev->irq);
#endif
}
+ /* now, set any level-triggered IRQs */
+ if (level_bits)
+ outb(level_bits, 0x4d1);
+
#if PCI_MODIFY
{
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this