after upgrading from 2.0.33 to 2.0.35 my printer start to become
extremly slow. After each line it stops printing and waits for
something.
The changes from 2.0.33 to 2.0.35 where:
--- /usr/src/linux-2.0.33.SuSE/drivers/char/lp.c Fri Apr 4
05:15:34 1997
+++ lp.c Mon Jul 13 22:47:29 1998
@@ -89,7 +89,14 @@
while(wait != LP_WAIT(minor)) wait++;
/* control port takes strobe high */
outb_p(( LP_PSELECP | LP_PINITP | LP_PSTROBE ), ( LP_C( minor
)));
- while(wait) wait--;
+ /* Wait until NBUSY line goes high */
+ count = 0;
+ do {
+ status = LP_S(minor);
+ count++;
+ if (need_resched)
+ schedule();
+ } while (LP_READY(minor, status) && (count<LP_CHAR(minor)));
/* take strobe low */
outb_p(( LP_PSELECP | LP_PINITP ), ( LP_C( minor )));
/* update waittime statistics */
When I use the 2.0.33 lp.c with the 2.0.35 kernel everything works fine.
I have no idea what the busy waiting stuff is for but it seams to be
buggy.
Hardware: Gigabyte LX2, Bios 1.14, PII333, Epson 800
-- /* In the beginning was the Word: */ typedef long SCM;- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html