Openmoko Bug #2073: voice-recording.state + arecord: Unable to handle kernel NULL pointer dereference at virtual address 00000000
Openmoko Public Trac
bugs at docs.openmoko.org
Wed Feb 18 09:43:29 CET 2009
#2073: voice-recording.state + arecord: Unable to handle kernel NULL pointer
dereference at virtual address 00000000
---------------------+------------------------------------------------------
Reporter: lindi | Owner: openmoko-devel
Type: defect | Status: new
Priority: high | Milestone:
Component: unknown | Version:
Severity: normal | Keywords: ALSA
Haspatch: 1 | Blockedby:
Estimated: | Patchreview:
Blocking: | Reproducible: always
---------------------+------------------------------------------------------
Comment(by PaulFertser):
Please don't do both.
As now Mark Brown has finally received a GTA02 he is the most likely to
fix any remaining breakage. I also studied the datasheet and the sources
and now feel more confident with these issues, but fixing everything
properly needs time.
You should consider that last patch of mine as a dirty hack to "get by"
while waiting for a proper solution. But as there is no reason to use DAI
1 mode anyway (as DAI 2 with voip state works ok), i consider that it's
irrelevant.
First of all, to understand this DAI stuff, please take a look at the new
routing diagrams i posted at
http://wiki.openmoko.org/wiki/Neo_1973_audio_subsystem .
The basic idea is that WM8753 has 2 physical DAIs (Digital Audio
Interfaces), one connected to BT module (Bluetooth DAI) and the other
connected to SoC (!HiFi DAI). These DAIs are exposed from the ALSA layer
as 2 devices (WM8753 !HiFi WM8753 and Voice WM8753) on one card
(neo1973-gta02). ALSA names for those are hw:0,0 and hw:0,1 respectively.
It also has 3 DACs (called Vx aka Voice DAC and Left/Right aka !HiFi DAC)
and one ADC. All those DAC/ADCs can be connected in 4 mutually exclusive
combinations to the DAIs. Also a switch exists that allows feeding both
DAIs at the same time with the same ADC signal in any of these 4 modes.
In my understanding any operation (like setting format and rate) on a DAI
should affect all DAC/ADCs connected to it on the time of operation
(depending on currently selected DAI mode). Usually, format setting occurs
when some application (aplay/arecord) opens a pcm for playback/capture.
But transferring sound through Bluetooth DAI to/from SoC is impossible and
therefore a special utility is needed to set DAC/ADC parameters, currently
connected to the BT DAI. This is an example of such utility:
http://opensource.wolfsonmicro.com/~gg/bluetooth-pcm/bluetooth_pcm.c .
As to the bug itself, i think we have 3 issues here:
First issue is that when we have a "dummy" DAI (that is, it's not
connected to any DAC/ADC) kernel oopses on closing the pcm. Seems that it
needs to be fixed properly.
Second issue is that in my understanding DAI 1 is defined incorrectly
because in this mode HiFi DAI is connected to Vx DAC and ADC, so it
shouldn't be dummy and should set parameters for those DAC and ADC.
Bluetooth DAI for this mode should be dummy instead.
Third issue is s3c24xx_pcm_pointer crash that probably should be
investigated independently.
--
Ticket URL: <https://docs.openmoko.org/trac/ticket/2073#comment:16>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac
More information about the buglog
mailing list