USB isoc xfers
Maksim Yevmenkin
maksim.yevmenkin at savvis.net
Tue Apr 18 17:22:57 UTC 2006
Iain,
> I am having a little trouble with the USB isoc data, and I see
> you also had the same trouble..
ok
> | 3) Understand and fix isoc. USB transfers (SCO data)
> |
> | Currenty device reports that is got zero bytes and calls
> | isoc_in_complete callback over and over again. Why?
> | Also might need to setup at least two isoc. transfers in
> | both directions and switch them on the fly. Just to ensure
> | there at least one transfer at any time ready to run.
>
> if you solved this already, any tips?
well, i'd like to think so :) please take a look at
http://mumu.org/~myevmenk/bluetooth/ng_ubt.c
http://mumu.org/~myevmenk/bluetooth/ng_ubt_var.h
this is a work in progress code that i used to receive sco data from the
headset. this is NOT complete, its for the reference purposes. i have
not tried to send sco data.
> So far I am supposing that for USB isoc transfers, the transfer would be
> fulfilled in any case after a timeout (3ms ?) which is why I get zero
> bytes, and I would be happy with that but it seems that the uhci/usbdi
> part gets lost in a loop when I restart the xfer (possibly caused by some
> DIAGNOSTIC logic)
the way i understand it, isoc transfers have reserved bandwidth. it does
not matter if there are data or not, the bandwidth is reserved anyway.
the trick is (imo) to have enough pending isoc transfers to make sure
time constrains are met.
> To have isoc xfers consuming processor cycles continuously when no data is
> being sent does not seem like a great idea though, maybe I got the wrong
> impression there..
i do not think we do have a choice here. since the bandwidth is
reserved, there has to be a transfer pending, otherwise time constrains
are not met.
thanks,
max
More information about the freebsd-bluetooth
mailing list