Talk:Neo 1973 and Neo FreeRunner gsm modem

From Openmoko

Revision as of 23:20, 21 August 2008 by Dolfje (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

I (Wurp) set up alsamixer and played with it with some great advice from mmontour and KrisAbsinthe to get rid of the echo. I got it working perfectly, quit alsamixer, and used alsactl -f /etc/gsmhandset.state store. Then the next call I made had no sound at all, on either end!

I had saved the state file here for posterity - now I moved it to Talk in case someone can tell me how phone calls can behave totally differently after I bail alsamixer & store the settings than they did during the original call :-(

Oh, wait, I think I know what I did wrong! I ended the call before I quit alsamixer & stored. Ending the call probably set me back to gsmstereoout.state, which is what I stored as gsmhandset.state...

state.neo1973 {
	control.1 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 255'
		iface MIXER
		name 'PCM Volume'
		value.0 230
		value.1 230
	}
	control.2 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 255'
		iface MIXER
		name 'ADC Capture Volume'
		value.0 195
		value.1 195
	}
	control.3 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 127'
		iface MIXER
		name 'Headphone Playback Volume'
		value.0 127
		value.1 127
	}
	control.4 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 127'
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 121
		value.1 121
	}
	control.5 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 127'
		iface MIXER
		name 'Mono Playback Volume'
		value 121
	}
	control.6 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 7'
		iface MIXER
		name 'Bypass Playback Volume'
		value.0 2
		value.1 2
	}
	control.7 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 7'
		iface MIXER
		name 'Sidetone Playback Volume'
		value.0 2
		value.1 2
	}
	control.8 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 7'
		iface MIXER
		name 'Voice Playback Volume'
		value.0 2
		value.1 2
	}
	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 2
	}
	control.12 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'Mono Sidetone Playback Volume'
		value 2
	}
	control.13 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'Mono Voice Playback Volume'
		value 2
	}
	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 7
	}
	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 2
		value.1 2
	}
	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 23
		value.1 23
	}
	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 false
		value.1 false
	}
	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 true
	}
	control.28 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'ALC Capture Target Volume'
		value 3
	}
	control.29 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'ALC Capture Max Volume'
		value 7
	}
	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 15
	}
	control.33 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name 'ALC Capture Decay Time'
		value 12
	}
	control.34 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name 'ALC Capture Attack Time'
		value 2
	}
	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 'Constant PGA Gain'
	}
	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 'Mic 1'
		comment.item.1 'Mic 2'
		comment.item.2 'Mic 3'
		iface MIXER
		name 'Mic Selection Mux'
		value 'Mic 1'
	}
	control.53 {
		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.54 {
		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.55 {
		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.56 {
		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.57 {
		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.58 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Line Capture Switch'
		value false
	}
	control.59 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Mic2 Capture Switch'
		value false
	}
	control.60 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Mic1 Capture Switch'
		value false
	}
	control.61 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Rx Capture Switch'
		value false
	}
	control.62 {
		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 'Left PGA'
	}
	control.63 {
		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.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 Line
		iface MIXER
		name 'Capture Left Mux'
		value PGA
	}
	control.65 {
		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.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 Left Mixer'
		value Stereo
	}
	control.67 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Mixer Voice Capture Sw'
		value false
	}
	control.68 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Mixer Left Capture Swi'
		value false
	}
	control.69 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Mixer Right Capture Sw'
		value false
	}
	control.70 {
		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.71 {
		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.72 {
		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.73 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Left Playback Switch'
		value false
	}
	control.74 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Right Playback Switc'
		value false
	}
	control.75 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Voice Playback Switc'
		value false
	}
	control.76 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Sidetone Playback Sw'
		value false
	}
	control.77 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Bypass Playback Swit'
		value false
	}
	control.78 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Voice Playback Swit'
		value false
	}
	control.79 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Sidetone Playback S'
		value false
	}
	control.80 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Right Playback Swit'
		value true
	}
	control.81 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Bypass Playback Swi'
		value false
	}
	control.82 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Voice Playback Switc'
		value false
	}
	control.83 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Sidetone Playback Sw'
		value false
	}
	control.84 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Left Playback Switch'
		value true
	}
	control.85 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Bypass Playback Swit'
		value false
	}
	control.86 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		iface MIXER
		name 'Amp Left Playback Volume'
		value 22
	}
	control.87 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		iface MIXER
		name 'Amp Right Playback Volume'
		value 22
	}
	control.88 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		iface MIXER
		name 'Amp Mono Playback Volume'
		value 0
	}
	control.89 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 Off
		comment.item.1 'Call Speaker'
		comment.item.2 'Stereo Speakers'
		comment.item.3 'Stereo Speakers + Headphones'
		comment.item.4 Headphones
		iface MIXER
		name 'Amp Mode'
		value 'Stereo Speakers + Headphones'
	}
	control.90 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 Off
		comment.item.1 'GSM Handset'
		comment.item.2 'GSM Headset'
		comment.item.3 'GSM Bluetooth'
		comment.item.4 Speakers
		comment.item.5 Headphones
		comment.item.6 'Capture Handset'
		comment.item.7 'Capture Headset'
		comment.item.8 'Capture Bluetooth'
		iface MIXER
		name 'Neo Mode'
		value Headphones
	}
	control.91 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp Spk 3D Playback Switch'
		value false
	}
	control.92 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp HP 3d Playback Switch'
		value false
	}
	control.93 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp Fast Wakeup Playback Switch'
		value false
	}
	control.94 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp Earpiece 6dB Playback Switch'
		value false
	}
}
Personal tools

I (Wurp) set up alsamixer and played with it with some great advice from mmontour and KrisAbsinthe to get rid of the echo. I got it working perfectly, quit alsamixer, and used alsactl -f /etc/gsmhandset.state store. Then the next call I made had no sound at all, on either end!

I had saved the state file here for posterity - now I moved it to Talk in case someone can tell me how phone calls can behave totally differently after I bail alsamixer & store the settings than they did during the original call :-(

Oh, wait, I think I know what I did wrong! I ended the call before I quit alsamixer & stored. Ending the call probably set me back to gsmstereoout.state, which is what I stored as gsmhandset.state...

state.neo1973 {
	control.1 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 255'
		iface MIXER
		name 'PCM Volume'
		value.0 230
		value.1 230
	}
	control.2 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 255'
		iface MIXER
		name 'ADC Capture Volume'
		value.0 195
		value.1 195
	}
	control.3 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 127'
		iface MIXER
		name 'Headphone Playback Volume'
		value.0 127
		value.1 127
	}
	control.4 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 127'
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 121
		value.1 121
	}
	control.5 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 127'
		iface MIXER
		name 'Mono Playback Volume'
		value 121
	}
	control.6 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 7'
		iface MIXER
		name 'Bypass Playback Volume'
		value.0 2
		value.1 2
	}
	control.7 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 7'
		iface MIXER
		name 'Sidetone Playback Volume'
		value.0 2
		value.1 2
	}
	control.8 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 7'
		iface MIXER
		name 'Voice Playback Volume'
		value.0 2
		value.1 2
	}
	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 2
	}
	control.12 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'Mono Sidetone Playback Volume'
		value 2
	}
	control.13 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'Mono Voice Playback Volume'
		value 2
	}
	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 7
	}
	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 2
		value.1 2
	}
	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 23
		value.1 23
	}
	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 false
		value.1 false
	}
	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 true
	}
	control.28 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'ALC Capture Target Volume'
		value 3
	}
	control.29 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 7'
		iface MIXER
		name 'ALC Capture Max Volume'
		value 7
	}
	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 15
	}
	control.33 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name 'ALC Capture Decay Time'
		value 12
	}
	control.34 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name 'ALC Capture Attack Time'
		value 2
	}
	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 'Constant PGA Gain'
	}
	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 'Mic 1'
		comment.item.1 'Mic 2'
		comment.item.2 'Mic 3'
		iface MIXER
		name 'Mic Selection Mux'
		value 'Mic 1'
	}
	control.53 {
		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.54 {
		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.55 {
		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.56 {
		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.57 {
		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.58 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Line Capture Switch'
		value false
	}
	control.59 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Mic2 Capture Switch'
		value false
	}
	control.60 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Mic1 Capture Switch'
		value false
	}
	control.61 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ALC Mixer Rx Capture Switch'
		value false
	}
	control.62 {
		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 'Left PGA'
	}
	control.63 {
		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.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 Line
		iface MIXER
		name 'Capture Left Mux'
		value PGA
	}
	control.65 {
		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.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 Left Mixer'
		value Stereo
	}
	control.67 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Mixer Voice Capture Sw'
		value false
	}
	control.68 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Mixer Left Capture Swi'
		value false
	}
	control.69 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Mixer Right Capture Sw'
		value false
	}
	control.70 {
		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.71 {
		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.72 {
		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.73 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Left Playback Switch'
		value false
	}
	control.74 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Right Playback Switc'
		value false
	}
	control.75 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Voice Playback Switc'
		value false
	}
	control.76 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Sidetone Playback Sw'
		value false
	}
	control.77 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mono Mixer Bypass Playback Swit'
		value false
	}
	control.78 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Voice Playback Swit'
		value false
	}
	control.79 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Sidetone Playback S'
		value false
	}
	control.80 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Right Playback Swit'
		value true
	}
	control.81 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Right Mixer Bypass Playback Swi'
		value false
	}
	control.82 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Voice Playback Switc'
		value false
	}
	control.83 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Sidetone Playback Sw'
		value false
	}
	control.84 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Left Playback Switch'
		value true
	}
	control.85 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Left Mixer Bypass Playback Swit'
		value false
	}
	control.86 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		iface MIXER
		name 'Amp Left Playback Volume'
		value 22
	}
	control.87 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		iface MIXER
		name 'Amp Right Playback Volume'
		value 22
	}
	control.88 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		iface MIXER
		name 'Amp Mono Playback Volume'
		value 0
	}
	control.89 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 Off
		comment.item.1 'Call Speaker'
		comment.item.2 'Stereo Speakers'
		comment.item.3 'Stereo Speakers + Headphones'
		comment.item.4 Headphones
		iface MIXER
		name 'Amp Mode'
		value 'Stereo Speakers + Headphones'
	}
	control.90 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 Off
		comment.item.1 'GSM Handset'
		comment.item.2 'GSM Headset'
		comment.item.3 'GSM Bluetooth'
		comment.item.4 Speakers
		comment.item.5 Headphones
		comment.item.6 'Capture Handset'
		comment.item.7 'Capture Headset'
		comment.item.8 'Capture Bluetooth'
		iface MIXER
		name 'Neo Mode'
		value Headphones
	}
	control.91 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp Spk 3D Playback Switch'
		value false
	}
	control.92 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp HP 3d Playback Switch'
		value false
	}
	control.93 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp Fast Wakeup Playback Switch'
		value false
	}
	control.94 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Amp Earpiece 6dB Playback Switch'
		value false
	}
}