Date: Wed, 07 Aug 2013 15:48:29 +0200 From: Hans Petter Selasky <hps@bitfrost.no> To: SAITOU Toshihide <toshi@ruby.ocn.ne.jp> Cc: freebsd-usb@FreeBSD.org Subject: Re: HS isochronous transfer on musb_otg Message-ID: <5202502D.20702@bitfrost.no> In-Reply-To: <20130807.210258.112628314.toshi@ruby.ocn.ne.jp> References: <20130801.230713.74749403.toshi@ruby.ocn.ne.jp> <51FB5230.3000503@bitfrost.no> <20130807.210258.112628314.toshi@ruby.ocn.ne.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
On 08/07/13 14:02, SAITOU Toshihide wrote: > In message: <51FB5230.3000503@bitfrost.no> > Hans Petter Selasky <hps@bitfrost.no> writes: >> On 08/01/13 16:07, SAITOU Toshihide wrote: >>> My UVC cam is not working with the musb_otg driver and >>> libusb(3) on the BeagleBone Black. >>> >> >> Hi, >> >> It might be that the packet multiplier is not set >> correctly. Try to figure out which register this is, and >> simply set the bits correctly. >> >> Thank you! >> >> --HPS >> >>> With the following changes to the musb_otg.c, it feels like >>> the transaction is performed as expected but the data >>> doesn't pass to the libusb_transfer's buffer. Does anyone >>> know what is wrong? > > > Thank you for your information, but still I don't understand > what is the packet multiplier. Fortunately, there is a > progress. > > With the patch at the end, the data from the UVC camera is > arrived into the libusb_transfer's buffer. Now the problem is > that the data of each transaction is scattered into the buffer > of the packet. > > (now) > > | packet size | packet size | packet size | packet size | > | DATA0 | DATA1 | DATA2 | DATA0 |... > > > (expected) > > | packet size | packet size | packet size | > | DATA0,1,2 | DATA0,1,2 | DATA0,1,2 |... > > > I think if the length of the packet is set using > libusb_set_iso_packet_length, all transaction data for the > packet should be packed into it, at this time, max packet size > is declared in the device descriptor so the device doesn't > send the packet larger than that. Are these right? If so, is > the musbotg_host_data_rx of musb_otg.c need to modify? > Hi, The scattering is a bug in the MUSB driver's handling of incoming data. It should collect more data before advancing to the next frame! See: mustbotg_host_data_rx() function. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5202502D.20702>