atom feed25 messages in org.freebsd.freebsd-currentRe: ulpt problem (USB_ERR_IOERROR)
FromSent OnAttachments
Patrick LamaiziereJul 3, 2009 8:25 am 
Hans Petter SelaskyJul 3, 2009 8:56 am 
Hans Petter SelaskyJul 3, 2009 8:58 am 
Patrick LamaiziereJul 3, 2009 9:52 am 
Hans Petter SelaskyJul 3, 2009 10:28 am 
Patrick LamaiziereJul 3, 2009 10:33 am 
Sam LefflerJul 3, 2009 11:24 am 
Patrick LamaiziereJul 4, 2009 12:06 am 
Patrick LamaiziereJul 4, 2009 12:14 am 
Hans Petter SelaskyJul 4, 2009 12:45 am 
Patrick LamaiziereJul 4, 2009 7:43 am 
Hans Petter SelaskyJul 5, 2009 12:28 am 
Hans Petter SelaskyJul 5, 2009 1:38 am.diff
Patrick LamaiziereJul 6, 2009 7:11 am 
Hans Petter SelaskyJul 6, 2009 8:50 am 
Patrick LamaiziereJul 6, 2009 11:39 am 
Hans Petter SelaskyJul 7, 2009 11:39 am 
Patrick LamaiziereJul 11, 2009 2:26 pm 
Hans Petter SelaskyJul 12, 2009 12:52 am 
Patrick LamaiziereJul 12, 2009 6:40 pm 
Hans Petter SelaskyJul 12, 2009 11:46 pm 
Patrick LamaiziereJul 16, 2009 12:55 pm 
Hans Petter SelaskyJul 16, 2009 1:21 pm 
Patrick LamaiziereJul 16, 2009 3:49 pm 
Hans Petter SelaskyJul 16, 2009 11:54 pm 
Subject:Re: ulpt problem (USB_ERR_IOERROR)
From:Patrick Lamaiziere (patf@davenulle.org)
Date:Jul 16, 2009 3:49:37 pm
List:org.freebsd.freebsd-current

Le Thu, 16 Jul 2009 22:22:10 +0200, Hans Petter Selasky <hsel@c2i.net> a écrit :

Could you try to add an "if (sc->sc_fflags == 0)" in front, like this:

/* * Only read status while the device is not opened, due to * possible hardware or firmware bug in some printers. */ if (sc->sc_fflags == 0) usbd_transfer_start(sc->sc_xfer[ULPT_INTR_DT_RD]);

It works fine with this check. Cool!

But why, that is not clear. FreeBSD 7.2 checks the status of the printer only when the device is opened and before each write. http://fxr.watson.org/fxr/source/dev/usb/ulpt.c?v=FREEBSD7#L637

Not related but I noticed that usb_write() in usb_dev.c returns -1 if I hit Ctrl-C when doing a "cat file > /dev/unlpt0". Because usb_fifo_wait(f) returns -1 (should be EINTR?).

If cv_wait_sig() returns -1, then they do not behave like in the manual page:

Yes I saw, I will try to dig more into the code. (will open a new thread for this)

Thank you very much, regards.