[parisc-linux-cvs] -pa55, EISA fixes for 712 and 715/new machines

Helge Deller deller@gmx.de
Sun, 14 Oct 2001 01:37:29 +0200


Index: Makefile
===================================================================
RCS file: /home/cvs/parisc/linux/Makefile,v
retrieving revision 1.166
diff -u -p -r1.166 Makefile
--- Makefile	2001/10/13 17:16:23	1.166
+++ Makefile	2001/10/13 23:30:13
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 9
-EXTRAVERSION = -pa54
+EXTRAVERSION = -pa55
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
Index: eisa.c
===================================================================
RCS file: /home/cvs/parisc/linux/drivers/gsc/eisa.c,v
retrieving revision 1.5
diff -u -p -r1.5 eisa.c
--- eisa.c	2001/10/13 17:03:28	1.5
+++ eisa.c	2001/10/13 23:30:30
@@ -157,12 +157,22 @@ static int __devinit eisa_probe(struct p
 	}
 	pcibios_register_hba(&eisa_dev.hba);
 
-	irq = busdevice_alloc_irq(dev);
+	if (is_mongoose(dev)) {
+		irq = busdevice_alloc_irq(dev);
+	} else {
+		unsigned long old_hpa = dev->hpa;
+		/* Hack: Wax EISA on 712, 715/64, 715/80 and 715/100 (715/new)
+		 * 	 are bound to the Wax controller */
+		dev->hpa = (unsigned long) 0xfffffffff0200000;
+		irq = busdevice_alloc_irq(dev);
+		dev->hpa = old_hpa;
+	}
 	if (!irq) {
 		printk(KERN_ERR "EISA: failed to claim IRQ\n");
 		return -ENODEV;
 	}
-	result = request_irq(irq, eisa_irq, 0, name, NULL);
+
+	result = request_irq(irq, eisa_irq, 0, "EISA", NULL);
 	if (result) {
 		printk(KERN_ERR "EISA: request_irq failed!\n");
 		return result;
Index: wax.c
===================================================================
RCS file: /home/cvs/parisc/linux/drivers/gsc/wax.c,v
retrieving revision 1.13
diff -u -p -r1.13 wax.c
--- wax.c	2001/10/12 06:35:44	1.13
+++ wax.c	2001/10/13 23:30:30
@@ -35,8 +35,9 @@ static int wax_find_irq(struct busdevice
 	int irq = -1;
 
 	switch (dev->id.sversion) {
-		case 0x00073:	irq = 30; break; /* HIL */
-		case 0x0008c:	irq = 25; break; /* RS232 */
+		case 0x73:	irq = 30; break; /* HIL */
+		case 0x8c:	irq = 25; break; /* RS232 */
+		case 0x90:	irq = 21; break; /* WAX EISA BA */
 	}
 
 	return irq;