Update of /cvsroot/linux-vax/kernel-2.4/drivers/vsbus
In directory usw-pr-cvs1:/tmp/cvs-serv558
Modified Files:
vsbus.c
Log Message:
DA: vsbus changes for 4000/60... need testing on 3100/m38
Index: vsbus.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/vsbus/vsbus.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- vsbus.c 2001/09/16 15:13:09 1.5
+++ vsbus.c 2001/11/11 22:43:25 1.6
@@ -27,26 +27,27 @@
unsigned long irqs;
sys_vs.vs_cpu_ptr=(void *)ioremap(VSA_BASE_REGS, 128);
-
+ sys_vs.vs_mask=sys_vs.vs_cpu_ptr->vc_intreq;
+ printk("vsbus: interrupt mask %x\n", sys_vs.vs_mask);
irqs=probe_irq_on();
sys_vs.vs_cpu_ptr->vc_intmsk=0;
sys_vs.vs_cpu_ptr->vc_intclr=0xFF;
// printk("vsbus: Getting Interrupt Mask\n");
- udelay(100000);
+ mdelay(1);
sys_vs.vs_mask=sys_vs.vs_cpu_ptr->vc_intreq;
- sys_vs.vs_cpu_ptr->vc_intmsk=0; /*~sys_vs.vs_mask;*/
+ /* switch off all interrupts for now */
+ sys_vs.vs_cpu_ptr->vc_intmsk=0; /*~sys_vs.vs_mask;*/
probe_irq_off(irqs);
printk("vsbus: interrupt mask %x\n", sys_vs.vs_mask);
-
return 0;
}
int vsbus_enable_int(int bit_nr)
{
sys_vs.vs_cpu_ptr->vc_intmsk|=1<<bit_nr;
-
+ sys_vs.vs_enabled |= 1<< bit_nr;
return 0;
}
@@ -60,24 +61,26 @@
int vsbus_disable_int(int bit_nr)
{
sys_vs.vs_cpu_ptr->vc_intmsk&=~(1<<bit_nr);
+ sys_vs.vs_enabled &= ~(1<<bit_nr);
return 0;
}
int vsbus_probe_irq_on(void)
{
printk("vsbus: probing set mask ~%2X\n", sys_vs.vs_mask);
- sys_vs.vs_cpu_ptr->vc_intmsk = sys_vs.vs_mask;
+ sys_vs.vs_cpu_ptr->vc_intmsk = 0; //~sys_vs.vs_mask;
sys_vs.vs_cpu_ptr->vc_intclr=0xff;
return 0;
}
unsigned char vsbus_probe_irq_report(void)
{
- unsigned char x, y;
-
+ unsigned char x, y;
+
x=sys_vs.vs_cpu_ptr->vc_intreq;
y = x & ~sys_vs.vs_mask;
printk("vsbus: probe returning %2X, %2X\n", x, ffs(y));
+ sys_vs.vs_cpu_ptr->vc_intmsk = sys_vs.vs_enabled;
return ffs(y)-1;
}
|