ulpt problem (USB_ERR_IOERROR)
Patrick Lamaiziere
patfbsd at davenulle.org
Sat Jul 11 21:26:33 UTC 2009
Le Tue, 7 Jul 2009 20:39:26 +0200,
Hans Petter Selasky <hselasky at c2i.net> a écrit :
> There was a small bug in my patch. Could you post-patching edit
> /sys/dev/serial/ulpt.c
>
> urlpt_open(struct usb_fifo *fifo, int fflags)
> ulpt_open(struct usb_fifo *fifo, int fflags)
Well, as I must use the unlpt device, I think this does not change
anything.
If I understand well, with /dev/unlpt0, ulpt.c calls unlpt_open(), not
ulpt_open() nor unlpt_open()?
Just in case, I've tried to change unlpt_open() with
static int
unlpt_open(struct usb_fifo *fifo, int fflags)
{
struct ulpt_softc *sc = usb_fifo_softc(fifo);
if (sc->sc_fflags & fflags) {
return (EBUSY);
}
/* set defrag write mode */
if (fflags & FWRITE) {
printf("unlpt_open: using defrag write mode\n");
usb_fifo_set_write_defrag(fifo, 1);
}
...
But the printer hangs after the first job (the data led on the printer
stay on):
unlpt_open: using defrag write mode
ulpt_write_callback:237: state=0x0 actlen=0
ulpt_write_callback:237: state=0x1 actlen=32768
ulpt_write_callback:237: state=0x1 actlen=32768
ulpt_write_callback:237: state=0x1 actlen=32768
Thanks.
More information about the freebsd-current
mailing list