Date: Mon, 12 Jul 2010 20:20:02 +0200 From: Hans Petter Selasky <hselasky@freebsd.org> To: freebsd-usb@freebsd.org Subject: Re: read(2) always returns 0 when reading from /dev/usb/n.m.k bulk IN endpoint Message-ID: <201007122020.02934.hselasky@freebsd.org> In-Reply-To: <AANLkTikOoAnGG4TN-lZf8VC3bF48u-oEXoSR3E8TOyiH@mail.gmail.com> References: <AANLkTikOoAnGG4TN-lZf8VC3bF48u-oEXoSR3E8TOyiH@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 12 July 2010 19:22:28 Peer Stritzinger wrote: > Hi, > > on FreeBSD 8.0-RELEASE I try to read from a bulk IN endpoint device node > with read(2). > > The USB client it is talking to is a embedded controller with Cypress SX2 > USB client chip, enumeration goes quite well (SX2 does it itself) and its > reported correctly on console. The device nodes in /dev/usv/n.m.k appear > for the control endpoint and two OUT and IN endpoints each. > > I can write to one of the OUT endpoints with e.g. dd and what I read on the > device is correct. > > However I can't read any data from a corresponding IN endpoint: What I > doing is in a loop: > > n = read(in, buf, NBUF); > printf ("read-test: read %ld bytes\n", n); > > this is run as root. > > I'm watching the USB with a USB protocol analyzer, BTW its running in > High-Speed. > > As soon as the first read is done (and blocks) I see IN->NAK (device did > not write to the IN endpoint) polling on the USB. > > When the device writes to the endpoint buffer I see a correct bulk IN > transfer that is ACKed by the host with the analyzer. > > However the read always returns 0. > > Tried different buffer sizes etc. > > Is this supposed to work as I'm using it. I'm planning to go to libusb-1.0 > later, should I debug this with the /dev/usb/n.m.k node reading or proceed > to libusb because my approach can't work anyway? > > Best regards, > Peer Stritzinger Hi, Maybe you are missing to set the short transfer OK flag. Else I recommend using LibUSB. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007122020.02934.hselasky>