Update of /cvsroot/linux-vax/kernel-2.4/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv32542
Modified Files:
dz.c
Log Message:
DA: dz.c fixes for 4000/60 .. need to test on 3100m38
Index: dz.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/char/dz.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- dz.c 2001/09/21 20:54:16 1.10
+++ dz.c 2001/11/11 22:42:39 1.11
@@ -1444,10 +1444,11 @@
#ifndef CONFIG_SERIAL_CONSOLE
dz_out(info, DZ_CSR, DZ_CLR);
while ((tmp = dz_in(info,DZ_CSR)) & DZ_CLR) ;
+#ifndef CONFIG_VAX
wbflush();
+#endif
- /* enable scanning */
- dz_out(info, DZ_CSR, DZ_MSE);
+
#endif
/* order matters here... the trick is that flags
@@ -1464,9 +1465,9 @@
i = dz_in(info, DZ_TCR);
dz_out(info, DZ_CSR, DZ_MSE|DZ_TIE);
dz_out(info, DZ_TCR, 0);
- udelay(1000);
+ mdelay(1);
dz_out(info, DZ_TCR, 1);
- udelay(10000);
+ mdelay(10);
dz_out(info, DZ_TCR, i);
num=vsbus_probe_irq_report();
irq=autoirq_report(0);
@@ -1482,13 +1483,13 @@
i = dz_in(info, DZ_TCR);
dz_out(info, DZ_CSR, DZ_MSE|DZ_TIE);
dz_out(info, DZ_TCR, 0);
- udelay(1000);
+ mdelay(1);
dz_out(info, DZ_TCR, 1);
- udelay(10000);
+ mdelay(10);
dz_out(info, DZ_TCR, i);
vsbus_clear_int(num);
vsbus_disable_int(num);
- irq=autoirq_report(100);
+ irq=autoirq_report(0);
}
#else
if (is_ka46()){
@@ -1512,7 +1513,8 @@
if (request_irq (SERIAL, dz_interrupt_rx, SA_INTERRUPT, "DZ", lines[0]))
panic ("Unable to register DZ interrupt\n");
#endif
-
+ /* enable scanning */
+ dz_out(info, DZ_CSR, DZ_MSE);
return 0;
}
@@ -1544,6 +1546,9 @@
/* Actually transmit the character. */
dz_out (dz_console, DZ_TDR, tmp);
+ /* spin our wheels */
+ while (((dz_in(dz_console,DZ_CSR) & DZ_TRDY) != DZ_TRDY) && loops--)
+ ;
dz_out(dz_console, DZ_TCR, tcr);
restore_flags(flags);
}
@@ -1650,13 +1655,12 @@
dz_console->line = CONSOLE_LINE;
/* This line locks up Dave Airlie's VS3100m38 after HALT */
- /* dz_out(dz_console, DZ_CSR, DZ_CLR); */
+#ifndef CONFIG_VAX
+ dz_out(dz_console, DZ_CSR, DZ_CLR);
+#endif
while ((tmp = dz_in(dz_console,DZ_CSR)) & DZ_CLR)
;
-
- /* enable scanning */
- dz_out(dz_console, DZ_CSR, DZ_MSE);
/* Set up flags... */
dz_console->cflags = co->cflag;
|