From: <pa...@rc...> - 2000-10-29 02:28:31
|
Hi, Attached is a patch to ieee12844pp.c (version 0.6) to enable bidirectional ECP (as opposed to the current slower ECP/forward and nibble/reverse). In addition to speeding up scans by up to 4 times (according to my rough measurements), I'm hoping this will also fix the driver lockup problems that Daniel and possibly others have experienced. I invite Daniel and anybody else who doesn't mind living a bit on the bleeding edge to try it out and report success or problems. Note that it requires a bidirectional (also known as "PS/2") or ECP parallel port. There are two new module parameters with this patch: "usebecp" and "usenibble". "usebecp=1" is *required* for the OfficeJet G series, K series, LaserJet 1100A and 3200; it should be omitted (or set to 0) for other models. (For those who care to know, this turns on the use of "bounded ECP" mode, which causes the peripheral to send no more than one packet per reverse session, and causes the driver to wait for nFault to be deasserted before going back to forward.) "usenibble=1" may be specified to revert to the old method of using nibble mode for reverse (peripheral-to-host) data. You can use this if you run into problems with the new method (for example, if you only have a unidirectional parallel port), or if you just want to do a performance comparison without modifying/recompiling code. In other news, I also fixed it so if the drivers do get in a bad state, you should be able to kill whatever app you're running and unload/reload ieee12844pp and ieee12844, without requiring a reboot to recover. David |