Ticket #583 (closed defect: wontfix)
create an alsa state file that routes system audio to bluetooth
| Reported by: | bmidgley@… | Owned by: | willie_chen@… |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | kernel | Version: | unspecified |
| Severity: | normal | Keywords: | |
| Cc: | laforge@…, buglog@…, marcel@… | Blocked By: | |
| Blocking: | Estimated Completion (week): | ||
| HasPatchForReview: | PatchReviewResult: | ||
| Reproducible: |
Description
Currently there is no way to route audio from a voip client for example to a
bluetooth headset. There is only a gsmbluetooth.state for using the gsm audio
with bluetooth.
Attachments
Change History
Changed 6 years ago by stefan@…
- Attachment loopback_receiver_MIC2.state added
loopback_receiver_MIC2.state
comment:2 Changed 6 years ago by laforge@…
- Owner changed from laforge@… to graeme.gregory@…
- Cc laforge@…, marcel@… added
adding graeme and marcel (maybe they can coordinate on providing the
asound.state for bluetooth headset audio)
comment:3 Changed 6 years ago by graeme@…
I either misunderstand this bug or I think you are looking at the wrong path for
audio. There is no reason to send audio via codec from CPU->codec->bluetooth.
CPU->bluetooth works and uses less power.
comment:5 Changed 6 years ago by marcel@…
For the Bluetooth headset support we never route the SCO audio data to userspace
at all. They go from the Bluetooth chip's PCM directly to the GSM module or in
some cases to the microphone/speaker.
comment:6 Changed 6 years ago by graeme@…
Does this mean that you are requiring that all bluetooth audio goes via the
codec or that it is just not a case that is handled yet. The setup of the codec
is quite complex and we will have to power up quite a few parts of it. I would
have thought sending audio via USB (which is already powered) to bluetooth would
be economic solution power wise.
comment:7 Changed 6 years ago by graeme@…
Have double and triple checked the datasheet and the wm8753 cannot do full
duplex audio in this fashion. It was designed for the BT->digital->analog->GSM
path, allowing the applications CPU to sleep.
comment:8 Changed 6 years ago by marcel@…
Going through the HCI interface of the Bluetooth USB driver consumes probably
even more power. The SCO frames are using USB ISOC URBs for transmission. These
produce a big overhead. This would mean that the USB bus would have to really
busy. For the headset use case for example the number of control, interrupt and
bulk URBs is very small.
The other thing is latency since we have to do a lot copy to get the audio data
from one daemon into the other one. For the desktop we might be okay with that,
but the small Neo1973 device it is a bad idea.
So yes, the audio (SCO frames) from the Bluetooth chip should go directly into
the codec via the chip's PCM interface and then routed according to the codec
settings.
comment:9 Changed 6 years ago by bmidgley@…
the wm8753 cannot do full duplex audio in this fashion
Is there a different codec that we should suggest FIC use in the future to cover
this case?
In order to switch the chip from pcm to hci audio, it has to be reset. This
means all connections are lost so it can't be done transparently.
comment:10 Changed 6 years ago by laforge@…
just an update to the slightly off-topic thread into which this bug entry has
developed: We've started a discussion with Wolfson now on what the restrictions
actually are, and which codec to use for GTA02 and later models.
comment:11 Changed 6 years ago by bmidgley@…
Graeme, is it possible to make a .state file that routes system audio *out* to
the bluetooth headset? We could at least use this for custom ring tones to the
headset.
For audio input, using the built-in mic would be nice so we at least have an
option to use a voip app. Maybe cranking up the mic gain would make it usable
this way.
comment:12 Changed 5 years ago by john_lee@…
- Owner changed from graeme@… to willie_chen@…
Willie, could you please check this ?
comment:14 Changed 5 years ago by andy
- Status changed from assigned to closed
- Resolution set to wontfix
Chip can't do what is requested any better than it is doing it.

http://svn.openmoko.org/trunk/oe/packages/alsa/files/
Shows our currently deployed alsa state files. Besides the missing system -> bt
profile there are some more file in the DM2 dir of the P1 developer phones.
The loopback profiles don't make to much sense, but the play_wav_* could be
added to our standard alsa profile deploy. I'll add the files to this bug.