OSDN Git Service

alsa: support restore alsa state from saved configs
authorChih-Wei Huang <cwhuang@linux.org.tw>
Sun, 2 Nov 2014 06:55:23 +0000 (14:55 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Wed, 5 Nov 2014 07:09:22 +0000 (15:09 +0800)
alsa/bytrt5640.state [new file with mode: 0644]
device.mk
init.sh

diff --git a/alsa/bytrt5640.state b/alsa/bytrt5640.state
new file mode 100644 (file)
index 0000000..46a8cc5
--- /dev/null
@@ -0,0 +1,1361 @@
+state.bytrt5640 {
+       control.1 {
+               iface MIXER
+               name 'Mono Playback Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.2 {
+               iface MIXER
+               name 'Mono DAC Playback Volume'
+               value.0 0
+               value.1 0
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 175'
+                       dbmin -65625
+                       dbmax 0
+                       dbvalue.0 -65625
+                       dbvalue.1 -65625
+               }
+       }
+       control.3 {
+               iface MIXER
+               name 'Speaker Channel Switch'
+               value.0 true
+               value.1 true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 2
+               }
+       }
+       control.4 {
+               iface MIXER
+               name 'Speaker Playback Volume'
+               value.0 39
+               value.1 39
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 39'
+                       dbmin -4650
+                       dbmax 1200
+                       dbvalue.0 1200
+                       dbvalue.1 1200
+               }
+       }
+       control.5 {
+               iface MIXER
+               name 'HP Channel Switch'
+               value.0 true
+               value.1 true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 2
+               }
+       }
+       control.6 {
+               iface MIXER
+               name 'HP Playback Volume'
+               value.0 35
+               value.1 35
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 39'
+                       dbmin -4650
+                       dbmax 1200
+                       dbvalue.0 600
+                       dbvalue.1 600
+               }
+       }
+       control.7 {
+               iface MIXER
+               name 'OUT Playback Switch'
+               value.0 true
+               value.1 true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 2
+               }
+       }
+       control.8 {
+               iface MIXER
+               name 'OUT Channel Switch'
+               value.0 false
+               value.1 false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 2
+               }
+       }
+       control.9 {
+               iface MIXER
+               name 'OUT Playback Volume'
+               value.0 0
+               value.1 0
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 39'
+                       dbmin -4650
+                       dbmax 1200
+                       dbvalue.0 -4650
+                       dbvalue.1 -4650
+               }
+       }
+       control.10 {
+               iface MIXER
+               name 'DAC2 Playback Switch'
+               value.0 false
+               value.1 false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 2
+               }
+       }
+       control.11 {
+               iface MIXER
+               name 'DAC1 Playback Volume'
+               value.0 173
+               value.1 173
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 175'
+                       dbmin -65625
+                       dbmax 0
+                       dbvalue.0 -750
+                       dbvalue.1 -750
+               }
+       }
+       control.12 {
+               iface MIXER
+               name 'IN1 Boost'
+               value 8
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 1
+                       range '0 - 8'
+                       dbmin 0
+                       dbmax 5200
+                       dbvalue.0 5200
+               }
+       }
+       control.13 {
+               iface MIXER
+               name 'IN2 Boost'
+               value 8
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 1
+                       range '0 - 8'
+                       dbmin 0
+                       dbmax 5200
+                       dbvalue.0 5200
+               }
+       }
+       control.14 {
+               iface MIXER
+               name 'IN Capture Volume'
+               value.0 31
+               value.1 31
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 31'
+                       dbmin -3450
+                       dbmax 1200
+                       dbvalue.0 1200
+                       dbvalue.1 1200
+               }
+       }
+       control.15 {
+               iface MIXER
+               name 'ADC Capture Switch'
+               value.0 true
+               value.1 true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 2
+               }
+       }
+       control.16 {
+               iface MIXER
+               name 'ADC Capture Volume'
+               value.0 127
+               value.1 127
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 127'
+                       dbmin -17625
+                       dbmax 30000
+                       dbvalue.0 30000
+                       dbvalue.1 30000
+               }
+       }
+       control.17 {
+               iface MIXER
+               name 'Mono ADC Capture Volume'
+               value.0 127
+               value.1 127
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 127'
+                       dbmin -17625
+                       dbmax 30000
+                       dbvalue.0 30000
+                       dbvalue.1 30000
+               }
+       }
+       control.18 {
+               iface MIXER
+               name 'ADC Boost Gain'
+               value.0 3
+               value.1 3
+               comment {
+                       access 'read write'
+                       type INTEGER
+                       count 2
+                       range '0 - 3'
+                       dbmin 0
+                       dbmax 3600
+                       dbvalue.0 3600
+                       dbvalue.1 3600
+               }
+       }
+       control.19 {
+               iface MIXER
+               name 'Class D SPK Ratio Control'
+               value '2.77x'
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 '1.66x'
+                       item.1 '1.83x'
+                       item.2 '1.94x'
+                       item.3 '2x'
+                       item.4 '2.11x'
+                       item.5 '2.22x'
+                       item.6 '2.33x'
+                       item.7 '2.44x'
+                       item.8 '2.55x'
+                       item.9 '2.66x'
+                       item.10 '2.77x'
+               }
+       }
+       control.20 {
+               iface MIXER
+               name 'ADC IF1 Data Switch'
+               value Normal
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 Normal
+                       item.1 'left copy to right'
+                       item.2 'right copy to left'
+                       item.3 Swap
+               }
+       }
+       control.21 {
+               iface MIXER
+               name 'DAC IF1 Data Switch'
+               value Normal
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 Normal
+                       item.1 'left copy to right'
+                       item.2 'right copy to left'
+                       item.3 Swap
+               }
+       }
+       control.22 {
+               iface MIXER
+               name 'ADC IF2 Data Switch'
+               value Normal
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 Normal
+                       item.1 'left copy to right'
+                       item.2 'right copy to left'
+                       item.3 Swap
+               }
+       }
+       control.23 {
+               iface MIXER
+               name 'DAC IF2 Data Switch'
+               value Normal
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 Normal
+                       item.1 'left copy to right'
+                       item.2 'right copy to left'
+                       item.3 Swap
+               }
+       }
+       control.24 {
+               iface MIXER
+               name 'Headphone Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.25 {
+               iface MIXER
+               name 'Headset Mic Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.26 {
+               iface MIXER
+               name 'Internal Mic Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.27 {
+               iface MIXER
+               name 'Speaker Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.28 {
+               iface MIXER
+               name 'Mono MIX DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.29 {
+               iface MIXER
+               name 'Mono MIX DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.30 {
+               iface MIXER
+               name 'Mono MIX OUTVOL R Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.31 {
+               iface MIXER
+               name 'Mono MIX OUTVOL L Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.32 {
+               iface MIXER
+               name 'Mono MIX BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.33 {
+               iface MIXER
+               name 'HPO MIX DAC2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.34 {
+               iface MIXER
+               name 'HPO MIX DAC1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.35 {
+               iface MIXER
+               name 'HPO MIX HPVOL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.36 {
+               iface MIXER
+               name 'OUT MIXR SPK MIXR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.37 {
+               iface MIXER
+               name 'OUT MIXR BST2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.38 {
+               iface MIXER
+               name 'OUT MIXR BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.39 {
+               iface MIXER
+               name 'OUT MIXR INR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.40 {
+               iface MIXER
+               name 'OUT MIXR REC MIXR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.41 {
+               iface MIXER
+               name 'OUT MIXR DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.42 {
+               iface MIXER
+               name 'OUT MIXR DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.43 {
+               iface MIXER
+               name 'OUT MIXR DAC R1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.44 {
+               iface MIXER
+               name 'OUT MIXL SPK MIXL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.45 {
+               iface MIXER
+               name 'OUT MIXL BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.46 {
+               iface MIXER
+               name 'OUT MIXL INL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.47 {
+               iface MIXER
+               name 'OUT MIXL REC MIXL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.48 {
+               iface MIXER
+               name 'OUT MIXL DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.49 {
+               iface MIXER
+               name 'OUT MIXL DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.50 {
+               iface MIXER
+               name 'OUT MIXL DAC L1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.51 {
+               iface MIXER
+               name 'Stereo DAC MIXR DAC R1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.52 {
+               iface MIXER
+               name 'Stereo DAC MIXR DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.53 {
+               iface MIXER
+               name 'Stereo DAC MIXR ANC Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.54 {
+               iface MIXER
+               name 'Stereo DAC MIXL DAC L1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.55 {
+               iface MIXER
+               name 'Stereo DAC MIXL DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.56 {
+               iface MIXER
+               name 'Stereo DAC MIXL ANC Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.57 {
+               iface MIXER
+               name 'DAC R2 Mux'
+               value IF2
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 IF2
+               }
+       }
+       control.58 {
+               iface MIXER
+               name 'DAC L2 Mux'
+               value IF2
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 IF2
+                       item.1 'Base L/R'
+               }
+       }
+       control.59 {
+               iface MIXER
+               name 'HP R Playback Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.60 {
+               iface MIXER
+               name 'HP L Playback Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.61 {
+               iface MIXER
+               name 'Speaker R Playback Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.62 {
+               iface MIXER
+               name 'Speaker L Playback Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.63 {
+               iface MIXER
+               name 'LOUT MIX DAC L1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.64 {
+               iface MIXER
+               name 'LOUT MIX DAC R1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.65 {
+               iface MIXER
+               name 'LOUT MIX OUTVOL L Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.66 {
+               iface MIXER
+               name 'LOUT MIX OUTVOL R Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.67 {
+               iface MIXER
+               name 'SPOR MIX DAC R1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.68 {
+               iface MIXER
+               name 'SPOR MIX SPKVOL R Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.69 {
+               iface MIXER
+               name 'SPOR MIX BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.70 {
+               iface MIXER
+               name 'SPOL MIX DAC R1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.71 {
+               iface MIXER
+               name 'SPOL MIX DAC L1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.72 {
+               iface MIXER
+               name 'SPOL MIX SPKVOL R Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.73 {
+               iface MIXER
+               name 'SPOL MIX SPKVOL L Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.74 {
+               iface MIXER
+               name 'SPOL MIX BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.75 {
+               iface MIXER
+               name 'SPK MIXR REC MIXR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.76 {
+               iface MIXER
+               name 'SPK MIXR INR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.77 {
+               iface MIXER
+               name 'SPK MIXR DAC R1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.78 {
+               iface MIXER
+               name 'SPK MIXR DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.79 {
+               iface MIXER
+               name 'SPK MIXR OUT MIXR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.80 {
+               iface MIXER
+               name 'SPK MIXL REC MIXL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.81 {
+               iface MIXER
+               name 'SPK MIXL INL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.82 {
+               iface MIXER
+               name 'SPK MIXL DAC L1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.83 {
+               iface MIXER
+               name 'SPK MIXL DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.84 {
+               iface MIXER
+               name 'SPK MIXL OUT MIXL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.85 {
+               iface MIXER
+               name 'DIG MIXR DAC R1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.86 {
+               iface MIXER
+               name 'DIG MIXR DAC R2 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.87 {
+               iface MIXER
+               name 'DIG MIXL DAC L1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.88 {
+               iface MIXER
+               name 'DIG MIXL DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.89 {
+               iface MIXER
+               name 'Mono DAC MIXR DAC R1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.90 {
+               iface MIXER
+               name 'Mono DAC MIXR DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.91 {
+               iface MIXER
+               name 'Mono DAC MIXR DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.92 {
+               iface MIXER
+               name 'Mono DAC MIXL DAC L1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.93 {
+               iface MIXER
+               name 'Mono DAC MIXL DAC L2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.94 {
+               iface MIXER
+               name 'Mono DAC MIXL DAC R2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.95 {
+               iface MIXER
+               name 'DAC MIXR Stereo ADC Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.96 {
+               iface MIXER
+               name 'DAC MIXR INF1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.97 {
+               iface MIXER
+               name 'DAC MIXL Stereo ADC Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.98 {
+               iface MIXER
+               name 'DAC MIXL INF1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.99 {
+               iface MIXER
+               name 'SDI select'
+               value IF1
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 IF1
+                       item.1 IF2
+               }
+       }
+       control.100 {
+               iface MIXER
+               name 'DAI select'
+               value '1:1|2:2'
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 '1:1|2:2'
+                       item.1 '1:2|2:1'
+                       item.2 '1:1|2:1'
+                       item.3 '1:2|2:2'
+               }
+       }
+       control.101 {
+               iface MIXER
+               name 'Mono ADC MIXR ADC1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.102 {
+               iface MIXER
+               name 'Mono ADC MIXR ADC2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.103 {
+               iface MIXER
+               name 'Mono ADC MIXL ADC1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.104 {
+               iface MIXER
+               name 'Mono ADC MIXL ADC2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.105 {
+               iface MIXER
+               name 'Stereo ADC MIXR ADC1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.106 {
+               iface MIXER
+               name 'Stereo ADC MIXR ADC2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.107 {
+               iface MIXER
+               name 'Stereo ADC MIXL ADC1 Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.108 {
+               iface MIXER
+               name 'Stereo ADC MIXL ADC2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.109 {
+               iface MIXER
+               name 'Mono ADC R2 Mux'
+               value 'DMIC R1'
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 'DMIC R1'
+                       item.1 'DMIC R2'
+                       item.2 'Mono DAC MIXR'
+               }
+       }
+       control.110 {
+               iface MIXER
+               name 'Mono ADC R1 Mux'
+               value ADCR
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 'Mono DAC MIXR'
+                       item.1 ADCR
+               }
+       }
+       control.111 {
+               iface MIXER
+               name 'Mono ADC L1 Mux'
+               value ADCL
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 'Mono DAC MIXL'
+                       item.1 ADCL
+               }
+       }
+       control.112 {
+               iface MIXER
+               name 'Mono ADC L2 Mux'
+               value 'DMIC L1'
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 'DMIC L1'
+                       item.1 'DMIC L2'
+                       item.2 'Mono DAC MIXL'
+               }
+       }
+       control.113 {
+               iface MIXER
+               name 'Stereo ADC1 Mux'
+               value ADC
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 'DIG MIX'
+                       item.1 ADC
+               }
+       }
+       control.114 {
+               iface MIXER
+               name 'Stereo ADC2 Mux'
+               value DMIC1
+               comment {
+                       access 'read write'
+                       type ENUMERATED
+                       count 1
+                       item.0 DMIC1
+                       item.1 DMIC2
+                       item.2 'DIG MIX'
+               }
+       }
+       control.115 {
+               iface MIXER
+               name 'RECMIXR HPOR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.116 {
+               iface MIXER
+               name 'RECMIXR INR Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.117 {
+               iface MIXER
+               name 'RECMIXR BST2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.118 {
+               iface MIXER
+               name 'RECMIXR BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.119 {
+               iface MIXER
+               name 'RECMIXR OUT MIXR Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.120 {
+               iface MIXER
+               name 'RECMIXL HPOL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.121 {
+               iface MIXER
+               name 'RECMIXL INL Switch'
+               value true
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.122 {
+               iface MIXER
+               name 'RECMIXL BST2 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.123 {
+               iface MIXER
+               name 'RECMIXL BST1 Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+       control.124 {
+               iface MIXER
+               name 'RECMIXL OUT MIXL Switch'
+               value false
+               comment {
+                       access 'read write'
+                       type BOOLEAN
+                       count 1
+               }
+       }
+}
index 44c316a..629354a 100644 (file)
--- a/device.mk
+++ b/device.mk
@@ -63,6 +63,7 @@ PRODUCT_COPY_FILES += \
     frameworks/native/data/etc/android.software.sip.xml:system/etc/permissions/android.software.sip.xml \
     frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
     frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \
+    $(foreach f,$(wildcard $(LOCAL_PATH)/alsa/*),$(f):$(subst $(LOCAL_PATH),system/etc,$(f))) \
     $(foreach f,$(wildcard $(LOCAL_PATH)/idc/*.idc $(LOCAL_PATH)/keylayout/*.kl),$(f):$(subst $(LOCAL_PATH),system/usr,$(f)))
 
 PRODUCT_TAGS += dalvik.gc.type-precise
diff --git a/init.sh b/init.sh
index e517176..dd164d9 100644 (file)
--- a/init.sh
+++ b/init.sh
@@ -17,6 +17,14 @@ function init_misc()
 
        # in case no cpu governor driver autoloads
        [ -d /sys/devices/system/cpu/cpu0/cpufreq ] || modprobe acpi-cpufreq
+
+       case "$PRODUCT" in
+               T10*TA)
+                       echo on > /sys/bus/platform/drivers/sdhci-acpi/INT33BB:00/power/control
+                       ;;
+               *)
+                       ;;
+       esac
 }
 
 function init_hal_audio()
@@ -28,21 +36,6 @@ function init_hal_audio()
                *)
                        ;;
        esac
-       [ -d /proc/asound/card0 ] || modprobe snd-dummy
-
-       for c in $(grep '\[.*\]' /proc/asound/cards | awk '{print $1}'); do
-               alsa_ctl init $c
-               alsa_amixer -c $c set Master on
-               alsa_amixer -c $c set Master 100
-               alsa_amixer -c $c set Headphone on
-               alsa_amixer -c $c set Headphone 100
-               alsa_amixer -c $c set Speaker 100
-               alsa_amixer -c $c set Capture 100
-               alsa_amixer -c $c set Capture cap
-               alsa_amixer -c $c set PCM 100 unmute
-               alsa_amixer -c $c set 'Mic Boost' 3
-               alsa_amixer -c $c set 'Internal Mic Boost' 3
-       done
 }
 
 function init_hal_bluetooth()
@@ -343,6 +336,25 @@ function do_bootcomplete()
                *)
                        ;;
        esac
+
+       for c in $(grep '\[.*\]' /proc/asound/cards | awk '{print $1}'); do
+               f=/system/etc/alsa/$(cat /proc/asound/card$c/id).state
+               if [ -e $f ]; then
+                       alsa_ctl -f $f restore $c
+               else
+                       alsa_ctl init $c
+                       alsa_amixer -c $c set Master on
+                       alsa_amixer -c $c set Master 100%
+                       alsa_amixer -c $c set Headphone on
+                       alsa_amixer -c $c set Headphone 100%
+                       alsa_amixer -c $c set Speaker 100%
+                       alsa_amixer -c $c set Capture 100%
+                       alsa_amixer -c $c set Capture cap
+                       alsa_amixer -c $c set PCM 100 unmute
+                       alsa_amixer -c $c set 'Mic Boost' 3
+                       alsa_amixer -c $c set 'Internal Mic Boost' 3
+               fi
+       done
 }
 
 PATH=/system/bin:/system/xbin