GSM buzz and gsmhandset.state
matt_hsu
matt_hsu at openmoko.org
Thu Oct 23 16:04:36 CEST 2008
Jan R wrote:
> 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...
>
Hi Jan,
Can I know which hardware version do you use? A5 or A6?
I used your state files to try my A5. It seems that it could reduce the
buzzing noise.
But it could not get rid of it all.
Cheers,
Matt
> 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
> }
> }
>
>
>
>
>
>
> _______________________________________________
> Openmoko community mailing list
> community at lists.openmoko.org
> http://lists.openmoko.org/mailman/listinfo/community
>
More information about the community
mailing list