Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Jan 2009 22:25:18 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com>
Cc:        "freebsd-bluetooth@freebsd.org" <freebsd-bluetooth@freebsd.org>, Alfred Perlstein <alfred@freebsd.org>
Subject:   Re: USB2: ng_ubt2 patch
Message-ID:  <200901152225.19150.hselasky@c2i.net>
In-Reply-To: <bb4a86c70901150955r3d1e9e81pfddbbb194bc52043@mail.gmail.com>
References:  <bb4a86c70901141705s1af508e3yf79383ecf97293cf@mail.gmail.com> <200901150954.11454.hselasky@c2i.net> <bb4a86c70901150955r3d1e9e81pfddbbb194bc52043@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 15 January 2009, Maksim Yevmenkin wrote:
> On Thu, Jan 15, 2009 at 12:54 AM, Hans Petter Selasky <hselasky@c2i.net> 
wrote:
> > On Thursday 15 January 2009, Maksim Yevmenkin wrote:
> >> dear bluetooth users,
> >>
> >> please find attached patch for ng_ubt2 (well it is almost a complete
> >> rewrite).
> >>
> >> this is an early preview and likely to have bugs. i briefly kicked the
> >> tires to make sure it compiles and did some very quick testing, i.e.
> >> run few hci commands, sdp transfers etc.
> >>
> >> this is my first attempt to write something under usb2, so any
> >> review/comments/suggestions/etc. are greatly appreciated.
> >
> > This looks very interesting.
>
> thanks for taking time and looking at this.
>
> > 1) Maybe you just want to merge together all the USB config structures
> > into one?
>
> i guess, i could. since isoc transfers are going over different (from
> control, interrupt and bulk transfers) interface, i kept original code
> that had two separate usb2_config structures (i.e. one per each
> interface). for the same reason, i added separate lock for interface 1
> (where isoc transfers are). i figured, due to the nature of isoc
> transfers, this lock will be grabbed a lot more often. it seemed like
> a good idea to use different lock so there would be less contention
> with interface 0 lock. but then again, may be i just full of it :) and
> it really does not matter.
>
> could you please tell me what is the reason for merging usb2_config
> structures? is it better for usb2?

It will save some memory allocations.

>
> > 2) There are some isochronous details for non-Full speed USB.
> > UBT_ISOC_NFRAMES must be a factor of 8 if it should work.
>
> ok. the bluetooth spec says device should be a high speed device,
> however, i have a bluetooth usb dongle (made by 3com) that is not a
> high speed device. so, if i just bump UBT_ISOC_NFRAMES to 32, this
> should work for both full- and high-speed devices, right?

Yes, just note that High-Speed USB is 8000 fps while Full-Speed USB is 1000 
fps.

>
> another question is how to submit isoc. writes. recall that ubt driver
> uses multiple isoc transfers in both directions. older (usb1) code
> kept track of isoc write transfers and knew which were not active. so
> when ubt needed to write isoc frame, it simply picked inactive isoc
> transfer. so, should i simply start all isoc write transfers and let
> usb2 code to figure it out or what? also, i'm a bit confused about
> api. what is the difference between usb2_transfer_start() and
> usb2_start_hardware() and when one should use former or later?

Two ISOC transfers are enough for double buffering.

>
> > How much bluetooth functionality have you tested?
>
> like i said, i kicked the tires :) hci commands/events appear to work.
> acl/l2cap appears to work as well. i have not tried isoc (read my
> questions above). of course, i will need to run torture tests etc.

Great!

>
> > BTW: I think your patch is pretty Ok. Is what you attached the final
> > version of your patch?
>
> probably not. i'm sure there will be some tweaks to it. hopefully
> nothing too big. i'm just not sure how should i proceed at this point,
> i.e. do i
>
> 1) start committing this to -head and let you pick it up from there
>
> or
>
> 2) let you commit this into p4 (or whatever) and then let you merge it
> into -head

Just re-send me the latest patch you've got and I'll get it in P4 and my 
private SVN first.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901152225.19150.hselasky>