patch-1.3.38 linux/arch/alpha/kernel/bios32.c
Next file: linux/arch/alpha/kernel/entry.S
Previous file: linux/arch/alpha/config.in
Back to the patch index
Back to the overall index
- Lines: 60
- Date:
Tue Nov 7 09:18:34 1995
- Orig file:
v1.3.37/linux/arch/alpha/kernel/bios32.c
- Orig date:
Sun Oct 29 11:38:47 1995
diff -u --recursive --new-file v1.3.37/linux/arch/alpha/kernel/bios32.c linux/arch/alpha/kernel/bios32.c
@@ -587,17 +587,15 @@
* example, sound boards seem to like using IRQ 9.
*/
const unsigned int route_tab = 0x0b0a090f;
- unsigned char pin;
+ unsigned char pin, level_bits;
int pirq;
pcibios_write_config_dword(0, PCI_DEVFN(7, 0), 0x60, route_tab);
- /* ensure irq 9, 10, 11, and 15 are level sensitive: */
- outb((1<<(9-8)) | (1<<(10-8)) | (1<<(11-8)) | (1<<(15-8)), 0x4d1);
-
/*
* Go through all devices, fixing up irqs as we see fit:
*/
+ level_bits = 0;
for (dev = pci_devices; dev; dev = dev->next) {
dev->irq = 0;
if (dev->bus->number != 0 ||
@@ -614,7 +612,16 @@
if (pirq < 0) {
continue;
}
+ if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
+ continue; /* for now, displays get no IRQ */
+ }
dev->irq = (route_tab >> (8 * pirq)) & 0xff;
+
+ /* 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: */
pcibios_write_config_byte(dev->bus->number, dev->devfn,
@@ -646,6 +653,10 @@
}
+#ifdef CONFIG_TGA_CONSOLE
+extern void tga_console_init(void);
+#endif /* CONFIG_TGA_CONSOLE */
+
unsigned long pcibios_fixup(unsigned long mem_start, unsigned long mem_end)
{
#if PCI_MODIFY
@@ -671,6 +682,11 @@
#else
# error You must tell me what kind of platform you want.
#endif
+
+#ifdef CONFIG_TGA_CONSOLE
+ tga_console_init();
+#endif /* CONFIG_TGA_CONSOLE */
+
return mem_start;
}
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