Hi Ralph,
Stas did not only try to fix something, but also cleaned up. This cleaning
up was problematic (note to Stas: fops.write can be either printer_write
or stub_printer_write; printer_write is not a wrapper that calls the
function pointer -- and *if* you're cleaning up you should change *that*
and preferably in a seperate patch to make it easier for me to merge with
-stable!)
Ralph, please revert Stas' patch using
patch -R < lpt.diff
(or by untarring the 1.3.1 or 1.2.2 source code) and then apply my patch
(attached):
patch < lpt2.diff
and try again.
Bart
--- src/base/dev/misc/lpt.c Wed Jul 21 15:11:38 2004
+++ src/base/dev/misc/lpt.c Wed Jul 21 15:14:31 2004
@@ -20,6 +20,7 @@
#include <sys/wait.h>
#include "emu.h"
+#include "timers.h"
#include "lpt.h"
#include "utilities.h"
#include "dos2linux.h"
@@ -53,6 +54,8 @@
return 1;
}
+ reset_idle();
+
switch (HI(ax)) {
case 0: /* write char */
/* p_printf("print character on lpt%d : %c (%d)\n",
@@ -248,6 +251,7 @@
if (lpt[i].remaining >= 0) {
p_printf("LPT: doing real tick for %d\n", i);
if (lpt[i].remaining) {
+ reset_idle();
lpt[i].remaining--;
if (!lpt[i].remaining)
(lpt[i].fops.flush) (i);