GSM buzz and gsmhandset.state

Jan R jan.random at googlemail.com
Tue Oct 21 22:04:07 CEST 2008


Hi all!

The GSM buzzing noise was unbearable for anybody I called, and it was 
indeed louder than my voice - that's why I had a look at the wolfson data 
sheet and the ALSA channel map on the wiki and fiddled a bit...

First thing I noticed was that according to http://wiki.openmoko.org/
images/2/2c/WM8753_BlockDiagram_GSM_handset.png , the recorded audio was 
routed through one of the PGAs on the GTA01. For a reason I could not 
find anywhere, it is now routed directly from MIC_MUX to the Mono mixer 
on the right side of the diagram on GTA02.

Switching 'Mic Sidetone Mux' (control 63) to either of the PGAs (left or 
right) immediately lowers interference noise by an enormous amount at the 
same 'Mono Playback Volume' (control 5).

Routing audio through ALC_MIX and subsequently the left PGA did lower the 
volume for the called person a bit.

With the modified gsmhandset.state, the buzzing noise is occasionally 
fading in and out and has a very low volume in comparison to the previous 
state. With a bit of luck, buzzing fades out at some point and does not 
return for 40 seconds or so.


Changes to om-testing daily feed gsmhandset.state (20081020):

control.4 'Speaker Playback Volume' lowered to 100 from 127 to reduce 
echo for call(ed|ing) person.

control.12 'Mono Sidetone Playback Volume' increased to 6 from 2

control.48 'Mic2 Capture Volume' increased to 2 from 0

control.63 'Mic Sidetone Mux' set to 'Right PGA'



Hope this helps somebody apart from me to use the FreeRunner as a 
phone. :)

Greetings,
Jan



For convenience, the whole modified gsmhandset.state file:

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 0
		value.1 0
	}
	control.4 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 127'
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 100
		value.1 100
	}
	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 6
	}
	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 2
	}
	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 'Rx Mix'
	}
	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 'Rx Mix'
	}
	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 false
	}
	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 'Right PGA'
	}
	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 Stereo
	}
	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 Stereo
	}
	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 false
	}
	control.77 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Sidetone Playback Sw'
		value true
	}
	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 true
	}
	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 true
	}
	control.87 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'DAPM Stereo Out Switch'
		value false
	}
	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 true
	}
	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
	}
}









More information about the community mailing list