Lorn Potter wrote:
Jim Morris wrote:
Cesar Eduardo Barros wrote:
Jim Morris escreveu:
One thing that may help, is if someone could provide a mapping of the wolfson registers as documented in the WM8753L pdf to the alsa controls. Someone had to have written the code that twiddles the registers in that chip, and would know which also control matches which register.
That would be sound/soc/codecs/wm8753.c and sound/soc/s3c24xx/neo1973_gta02_wm8753.c on the kernel source code. Take a look:

http://git.openmoko.org/?p=kernel.git;a=blob;f=sound/soc/codecs/wm8753.c;hb=stable http://git.openmoko.org/?p=kernel.git;a=blob;f=sound/soc/s3c24xx/neo1973_gta02_wm8753.c;hb=stable

The mapping is there, you only have to find out how it's described.


Thanks for the pointers. Thats 2,000 lines of code that is about as clear as mud! (and I've written audio drivers before).

There is no mention of Bluetooth in these drivers, and no indication how to switch into bluetooth mode.

Obviously gta01 was very different, and it is not even clear that the gsmbluetooth.state even worked on a gta01, at least I've never seen any gta01 user claim they had it working.

bluetooth audio on the gta01 will never work, even with that bluetooth alsa state.




Ok well it didn't work, attached is the gsmbluetooth.state file I am trying to use if anyone is interested and wants to try it. I set this as best I could from comparing the differences between the gsmhandset.state and gsmheadset.state for the gta01 and transcribing to gta02 as best as possible given the undocumented differences between the two.

After calling the cell phone I did an alsactl -f gsmbluetooth.state restore.

In the process I just discovered the Qtopia (this is for you Lorn ;) did not load /usr/share/openmoko/scenarios/gsmhandset.state when the call was answered, I had to do it manually, I'm pretty sure this is a regression.

Also the options available in the menu when in a call to set speakerphone handset or bluetooth do not seem to do anything.

I'm pretty much out of ideas on how to get a working gsmbluetooth.state file for gta02, so someone else chime in if you think of anything.

I see this as a show stopper for the unit being usable as a phone so if anyone at OM cares I'd get on it ASAP.

--
Jim Morris, http://blog.wolfman.com
state.neo1973gta02 {
        control.1 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 255'
                iface MIXER
                name 'PCM Volume'
                value.0 0
                value.1 0
        }
        control.2 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 255'
                iface MIXER
                name 'ADC Capture Volume'
                value.0 0
                value.1 0
        }
        control.3 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 127'
                iface MIXER
                name 'Headphone Playback Volume'
                value.0 96
                value.1 96
        }
        control.4 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 127'
                iface MIXER
                name 'Speaker Playback Volume'
                value.0 0
                value.1 0
        }
        control.5 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 127'
                iface MIXER
                name 'Mono Playback Volume'
                value 103
        }
        control.6 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 7'
                iface MIXER
                name 'Bypass Playback Volume'
                value.0 7
                value.1 7
        }
        control.7 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 7'
                iface MIXER
                name 'Sidetone Playback Volume'
                value.0 0
                value.1 0
        }
        control.8 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 7'
                iface MIXER
                name 'Voice Playback Volume'
                value.0 0
                value.1 0
        }
        control.9 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 2
                iface MIXER
                name 'Headphone Playback ZC Switch'
                value.0 false
                value.1 false
        }
        control.10 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 2
                iface MIXER
                name 'Speaker Playback ZC Switch'
                value.0 false
                value.1 false
        }
        control.11 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 7'
                iface MIXER
                name 'Mono Bypass Playback Volume'
                value 0
        }
        control.12 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 7'
                iface MIXER
                name 'Mono Sidetone Playback Volume'
                value 5
        }
        control.13 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 7'
                iface MIXER
                name 'Mono Voice Playback Volume'
                value 0
        }
        control.14 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Mono Playback ZC Switch'
                value false
        }
        control.15 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Linear Control'
                comment.item.1 'Adaptive Boost'
                iface MIXER
                name 'Bass Boost'
                value 'Linear Control'
        }
        control.16 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 '130Hz @ 48kHz'
                comment.item.1 '200Hz @ 48kHz'
                comment.item.2 '100Hz @ 16kHz'
                comment.item.3 '400Hz @ 48kHz'
                comment.item.4 '100Hz @ 8kHz'
                comment.item.5 '200Hz @ 8kHz'
                iface MIXER
                name 'Bass Filter'
                value '130Hz @ 48kHz'
        }
        control.17 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 15'
                iface MIXER
                name 'Bass Volume'
                value 0
        }
        control.18 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 15'
                iface MIXER
                name 'Treble Volume'
                value 0
        }
        control.19 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 '8kHz'
                comment.item.1 '4kHz'
                iface MIXER
                name 'Treble Cut-off'
                value '8kHz'
        }
        control.20 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 7'
                iface MIXER
                name 'Sidetone Capture Volume'
                value.0 0
                value.1 0
        }
        control.21 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 7'
                iface MIXER
                name 'Voice Sidetone Capture Volume'
                value 2
        }
        control.22 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 63'
                iface MIXER
                name 'Capture Volume'
                value.0 0
                value.1 0
        }
        control.23 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 2
                iface MIXER
                name 'Capture ZC Switch'
                value.0 false
                value.1 false
        }
        control.24 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 2
                iface MIXER
                name 'Capture Switch'
                value.0 true
                value.1 true
        }
        control.25 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 '3.4Hz @ 48kHz'
                comment.item.1 '82Hz @ 16k'
                comment.item.2 '82Hz @ 8kHz'
                comment.item.3 '170Hz @ 8kHz'
                iface MIXER
                name 'Capture Filter Select'
                value '3.4Hz @ 48kHz'
        }
        control.26 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 HiFi
                comment.item.1 Voice
                iface MIXER
                name 'Capture Filter Cut-off'
                value HiFi
        }
        control.27 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Capture Filter Switch'
                value false
        }
        control.28 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 7'
                iface MIXER
                name 'ALC Capture Target Volume'
                value 0
        }
        control.29 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 7'
                iface MIXER
                name 'ALC Capture Max Volume'
                value 0
        }
        control.30 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 Off
                comment.item.1 Right
                comment.item.2 Left
                comment.item.3 Stereo
                iface MIXER
                name 'ALC Capture Function'
                value Off
        }
        control.31 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'ALC Capture ZC Switch'
                value false
        }
        control.32 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 15'
                iface MIXER
                name 'ALC Capture Hold Time'
                value 0
        }
        control.33 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 15'
                iface MIXER
                name 'ALC Capture Decay Time'
                value 0
        }
        control.34 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 15'
                iface MIXER
                name 'ALC Capture Attack Time'
                value 0
        }
        control.35 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 31'
                iface MIXER
                name 'ALC Capture NG Threshold'
                value 0
        }
        control.36 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Constant PGA Gain'
                comment.item.1 'Mute ADC Output'
                iface MIXER
                name 'ALC Capture NG Type'
                value 'Mute ADC Output'
        }
        control.37 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'ALC Capture NG Switch'
                value false
        }
        control.38 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 Capture
                comment.item.1 Playback
                iface MIXER
                name '3D Function'
                value Capture
        }
        control.39 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 '2.2kHz'
                comment.item.1 '1.5kHz'
                iface MIXER
                name '3D Upper Cut-off'
                value '2.2kHz'
        }
        control.40 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 '200Hz'
                comment.item.1 '500Hz'
                iface MIXER
                name '3D Lower Cut-off'
                value '200Hz'
        }
        control.41 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 15'
                iface MIXER
                name '3D Volume'
                value 0
        }
        control.42 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name '3D Switch'
                value false
        }
        control.43 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Capture 6dB Attenuate'
                value false
        }
        control.44 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Playback 6dB Attenuate'
                value false
        }
        control.45 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 None
                comment.item.1 '32kHz'
                comment.item.2 '44.1kHz'
                comment.item.3 '48kHz'
                iface MIXER
                name De-emphasis
                value None
        }
        control.46 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 Stereo
                comment.item.1 Left
                comment.item.2 Right
                comment.item.3 Mono
                iface MIXER
                name 'Playback Mono Mix'
                value Stereo
        }
        control.47 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Non Inverted'
                comment.item.1 Inverted
                iface MIXER
                name 'Playback Phase'
                value 'Non Inverted'
        }
        control.48 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 3'
                iface MIXER
                name 'Mic2 Capture Volume'
                value 0
        }
        control.49 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 1
                comment.range '0 - 3'
                iface MIXER
                name 'Mic1 Capture Volume'
                value 0
        }
        control.50 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'DAI 0'
                comment.item.1 'DAI 1'
                comment.item.2 'DAI 2'
                comment.item.3 'DAI 3'
                iface MIXER
                name 'DAI Mode'
                value 'DAI 0'
        }
        control.51 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 Stereo
                comment.item.1 'Left ADC'
                comment.item.2 'Right ADC'
                comment.item.3 'Channel Swap'
                iface MIXER
                name 'ADC Data Select'
                value Stereo
        }
        control.52 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Non Inverted'
                comment.item.1 Inverted
                iface MIXER
                name 'ROUT2 Phase'
                value Inverted
        }
        control.53 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Mic 1'
                comment.item.1 'Mic 2'
                comment.item.2 'Mic 3'
                iface MIXER
                name 'Mic Selection Mux'
                value 'Mic 1'
        }
        control.54 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'RXP - RXN'
                comment.item.1 'RXP + RXN'
                comment.item.2 RXP
                comment.item.3 RXN
                iface MIXER
                name 'Rx Mixer'
                value 'RXP - RXN'
        }
        control.55 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Line 1 + 2'
                comment.item.1 'Line 1 - 2'
                comment.item.2 'Line 1'
                comment.item.3 'Line 2'
                iface MIXER
                name 'Line Mixer'
                value 'Line 1 + 2'
        }
        control.56 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Line Mix'
                comment.item.1 'Rx Mix'
                iface MIXER
                name 'Line Mono Mux'
                value 'Line Mix'
        }
        control.57 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Line 2'
                comment.item.1 'Rx Mix'
                iface MIXER
                name 'Line Right Mux'
                value 'Line 2'
        }
        control.58 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Line 1'
                comment.item.1 'Rx Mix'
                iface MIXER
                name 'Line Left Mux'
                value 'Line 1'
        }
        control.59 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'ALC Mixer Line Capture Switch'
                value false
        }
        control.60 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'ALC Mixer Mic2 Capture Switch'
                value true
        }
        control.61 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'ALC Mixer Mic1 Capture Switch'
                value false
        }
        control.62 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'ALC Mixer Rx Capture Switch'
                value true
        }
        control.63 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Left PGA'
                comment.item.1 'Mic 1'
                comment.item.2 'Mic 2'
                comment.item.3 'Right PGA'
                iface MIXER
                name 'Mic Sidetone Mux'
                value 'Mic 1'
        }
        control.64 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 PGA
                comment.item.1 'Line or RXP-RXN'
                comment.item.2 Sidetone
                iface MIXER
                name 'Capture Right Mux'
                value PGA
        }
        control.65 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 PGA
                comment.item.1 'Line or RXP-RXN'
                comment.item.2 Line
                iface MIXER
                name 'Capture Left Mux'
                value PGA
        }
        control.66 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 Stereo
                comment.item.1 'Analogue Mix Left'
                comment.item.2 'Analogue Mix Right'
                comment.item.3 'Digital Mono Mix'
                iface MIXER
                name 'Capture Right Mixer'
                value 'Analogue Mix Left'
        }
        control.67 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 Stereo
                comment.item.1 'Analogue Mix Left'
                comment.item.2 'Analogue Mix Right'
                comment.item.3 'Digital Mono Mix'
                iface MIXER
                name 'Capture Left Mixer'
                value 'Analogue Mix Left'
        }
        control.68 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Playback Mixer Voice Capture Sw'
                value false
        }
        control.69 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Playback Mixer Left Capture Swi'
                value false
        }
        control.70 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Playback Mixer Right Capture Sw'
                value false
        }
        control.71 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 VREF
                comment.item.1 'Capture ST'
                comment.item.2 LOUT2
                iface MIXER
                name 'Out4 Mux'
                value VREF
        }
        control.72 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 VREF
                comment.item.1 ROUT2
                comment.item.2 'Left + Right'
                iface MIXER
                name 'Out3 Mux'
                value VREF
        }
        control.73 {
                comment.access 'read write'
                comment.type ENUMERATED
                comment.count 1
                comment.item.0 'Inverted Mono 1'
                comment.item.1 Left
                comment.item.2 Right
                comment.item.3 'Left + Right'
                iface MIXER
                name 'Mono 2 Mux'
                value 'Inverted Mono 1'
        }
        control.74 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Mono Mixer Left Playback Switch'
                value false
        }
        control.75 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Mono Mixer Right Playback Switc'
                value false
        }
        control.76 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Mono Mixer Voice Playback Switc'
                value true
        }
        control.77 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Mono Mixer Sidetone Playback Sw'
                value false
        }
        control.78 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Mono Mixer Bypass Playback Swit'
                value false
        }
        control.79 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Right Mixer Voice Playback Swit'
                value false
        }
        control.80 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Right Mixer Sidetone Playback S'
                value false
        }
        control.81 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Right Mixer Right Playback Swit'
                value false
        }
        control.82 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Right Mixer Bypass Playback Swi'
                value false
        }
        control.83 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Left Mixer Voice Playback Switc'
                value false
        }
        control.84 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Left Mixer Sidetone Playback Sw'
                value false
        }
        control.85 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Left Mixer Left Playback Switch'
                value false
        }
        control.86 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Left Mixer Bypass Playback Swit'
                value false
        }
        control.87 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'DAPM Stereo Out Switch'
                value true
        }
        control.88 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'DAPM GSM Line Out Switch'
                value true
        }
        control.89 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'DAPM GSM Line In Switch'
                value true
        }
        control.90 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'DAPM Headset Mic Switch'
                value true
        }
        control.91 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'DAPM Handset Mic Switch'
                value true
        }
        control.92 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'DAPM Handset Spk Switch'
                value false
        }
        control.93 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Amp State Switch'
                value false
        }
        control.94 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 1
                iface MIXER
                name 'Amp Spk Switch'
                value false
        }
}
_______________________________________________
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to