Date: Thu, 08 Aug 2013 22:09:39 +0900 (JST) From: SAITOU Toshihide <toshi@ruby.ocn.ne.jp> To: freebsd-usb@FreeBSD.org Subject: Re: HS isochronous transfer on musb_otg Message-ID: <20130808.220939.219630261.toshi@ruby.ocn.ne.jp> In-Reply-To: <5202502D.20702@bitfrost.no> References: <51FB5230.3000503@bitfrost.no> <20130807.210258.112628314.toshi@ruby.ocn.ne.jp> <5202502D.20702@bitfrost.no>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <5202502D.20702@bitfrost.no> Hans Petter Selasky <hps@bitfrost.no> writes: > 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. I have confirmed the scattering is fixed by modifying the mustbotg_host_data_rx(), althought the modification I have made breaks other transfer type at the moment. Thank you, SAITOU Toshihide
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130808.220939.219630261.toshi>