From: Marcel Holtmann <marcel@holtmann.org>
To: Peter Hurley <phurley@charter.net>
Cc: Lan Zhu <zhu.lan.cn@gmail.com>, linux-bluetooth@vger.kernel.org
Subject: Re: can we disable/enable eSCO by using setsockopt of sco socket?
Date: Fri, 18 Sep 2009 22:50:49 -0700 [thread overview]
Message-ID: <1253339449.28416.34.camel@localhost.localdomain> (raw)
In-Reply-To: <4AB3B1BF.107@charter.net>
Hi Peter,
> >> We did some investigation on Mecel Bluetooth stack and Qualcomm's,
> >> they both provide the upper layer with the option to specify SCO type
> >> or eSCO type when creating synchronous connection. There are plenty of
> >> different Bluetooth devices in the world, compatiblility with them is
> >> usually a big issue for one Bluetooth product. So the rubestness will
> >> be a very important target for a product. Sometimes the Bluetooth
> >> developer need enough flexibility to handle many specific cases,
> >> because that can not be totally dealt with
> >> in stack layer. Actually Bluez already has an excellent architecture,
> >> but still a little weak in the rubestness. Then, why not give the
> >> developer more flexibility to deal with some problems?
> >>
> >
> > BlueZ is not weak in robustness. Do me a favor and get your English
> > right here and do not spread FUD. You are saying that it is important to
> > work around some total broken eSCO capable chip to be robust. I do
> > question that statement. It is nice to have good interoperability with
> > broken devices, but there is a limit of broken devices we can support.
> >
> > And the userspace option to select between SCO and eSCO is just stupid
> > since you just start hacking some blacklist non-sense into the code that
> > becomes a big magic blob that nobody can track or understand.
> >
> > The way forward here is to analyze the headset and see what information
> > it gives us to determine that eSCO might not be working good enough. So
> > I want output from hcitool info and detailed hcidump.
> >
> There are device incompatibilities with eSCO. I recently posted a
> report here ("Odd eSCO behavior with BCM2045-based receiver") that
> explains that (in that case) an eSCO connection *should not even be
> tried* (much less retried). In the case I provided, the controller's
> link manager dumps all other connections and becomes unresponsive after
> a --successful-- eSCO link is established.
that is a bug in your local controller. That is different from a broken
remote controller.
> Maybe one could argue that supporting a "broken device" is too much to
> ask but, IMO, the BCM2045 is too common to avoid. The reality is that
> any code that directly supports hardware needs to account for situations
> that reflect what actually happens, rather than what the spec describes
> (again, IMO).
>
> I feel this situation especially applies to Bluetooth. Because of the
> evolving complexities of Bluetooth (1300 page core spec with countless
> sub-specs on its 3rd major evolution), there are bound to be plenty of
> special cases that will continue to emerge. Presumably your implicit
> understanding of this is what prompted adding the "disable_esco" module
> parameter to the sco driver. At some point, special casing becomes
> necessary -- so the real decision is what form that support will take.
The reason behind disable_esco is 1) to accommodate controllers that
tell that they support eSCO, but they are bluntly lying to you. So that
way can either replace them or use this option.
The second reason and more important one is that we need this for
testing and from qualification corner cases. We also have disable_cfc
for RFCOMM example and some crazy BNEP options. They are needed for
reasons that have nothing with this problem at hand. Which is that the
remote device is messed up.
Regards
Marcel
next prev parent reply other threads:[~2009-09-19 5:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-14 11:52 can we disable/enable eSCO by using setsockopt of sco socket? Lan Zhu
2009-09-14 13:32 ` Marcel Holtmann
2009-09-14 15:29 ` Lan Zhu
2009-09-18 10:47 ` Lan Zhu
2009-09-18 15:31 ` Marcel Holtmann
2009-09-18 16:13 ` Peter Hurley
2009-09-19 5:50 ` Marcel Holtmann [this message]
2009-09-22 23:09 ` Nick Pelly
-- strict thread matches above, loose matches on Subject: below --
2010-01-12 9:57 Liang Bao
2010-01-12 11:22 ` Marcel Holtmann
2010-01-12 13:39 ` Liang Bao
2010-01-12 18:45 ` Marcel Holtmann
2010-01-15 6:31 ` Liang Bao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1253339449.28416.34.camel@localhost.localdomain \
--to=marcel@holtmann.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=phurley@charter.net \
--cc=zhu.lan.cn@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox