This is an update for the Linux USB printer.c driver for 2.2, 2.4, and 2.5
kernels.

It includes the following changes:
- ioctls to enable the CVS version of ptal-mlcd (http://hpoj.sourceforge.net)
  to dynamically switch alternate settings and parallel-port-style channels.
  This allows ptal-mlcd to work over USB with HP PhotoSmart printers and
  some DeskJets (9xx, 12xx, cp1160, and some others), and it fixes the
  problem where ptal-mlcd was needed in order to be able to print to the
  LaserJet 1200 and 2200.
  See http://hpoj.sourceforge.net/doc/ioctl_requests.html for more
  information on these ioctls, not all of which are actually implemented yet.
- A "proto_bias" parameter (thanks to Pete Zaitcev) that changes the
  default preferred interface from 7/1/2 to 7/1/3 or 7/1/1.
  NOTE: If you use this version of printer.c with the 0.8 (not latest CVS)
  version of ptal-mlcd, then you'll need to use this feature to set 7/1/3,
  as documented at "http://hpoj.sourceforge.net/todo.shtml".
- Added MODULE_{INC,DEC}_USE_COUNT to prevent unloading printer.o while it's
  active, which causes OOPSes.  (For the 2.2 backport only.)
- Fixed buffer overflow in usblp_table when maximum number of connected
  printers was exceeded.
- Various code cleanups, especially to consolidate duplicated code.
- A backport to 2.2.
- The 2.5 version also contains Oliver Neukum's changes which appeared
  in or around 2.5.4pre6 and Greg K-H's changes which appeared in or
  around 2.5.6pre2.

Files in this directory:
- README -- this file
- Makefile -- the makefile I use so I don't have to rebuild the whole kernel
- printer.c -- the hacked version of printer.c for 2.2 and 2.4
- printer-2.2.c -- the hacked version for 2.2 only
- printer-2.4.c -- the hacked version for 2.4 only
- printer-2.5.c -- the hacked version for 2.5 only
- printer-2.2.20.c -- for comparison, the printer.c from kernel 2.2.20
- printer-2.4.13.c -- for comparison, the printer.c from kernel 2.4.13
- printer-2.5.6pre2.c -- for comparison, the printer.c from kernel 2.5.6pre2
- printer.c.diff -- a context diff between printer-2.4.13.c and printer.c
- printer-2.2.c.udiff -- a unified diff between printer-2.2.20.c and printer-2.2.c
- printer-2.4.c.udiff -- a unified diff between printer-2.4.13.c and printer-2.4.c
- printer-2.5.c.udiff -- a unified diff between printer-2.5.6pre2.c and printer-2.5.c

Note: When using the supplied Makefile to build printer.o, you first need
to edit the top of the Makefile and un-comment the appropriate definition
for LINUX_DIR that points to the Linux kernel source code on your system.
If neither of the supplied lines is appropriate for your system, then
modify one of them so it is.

-- David Paschal (paschal@rcsis.com, david_paschal@hp.com)
