diff options
Diffstat (limited to 'sound/soc/s6000/s6105-ipcam.c')
-rw-r--r-- | sound/soc/s6000/s6105-ipcam.c | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/sound/soc/s6000/s6105-ipcam.c b/sound/soc/s6000/s6105-ipcam.c index 96c05e137538..db1803d9665a 100644 --- a/sound/soc/s6000/s6105-ipcam.c +++ b/sound/soc/s6000/s6105-ipcam.c | |||
@@ -107,6 +107,7 @@ static int output_type_put(struct snd_kcontrol *kcontrol, | |||
107 | struct snd_ctl_elem_value *ucontrol) | 107 | struct snd_ctl_elem_value *ucontrol) |
108 | { | 108 | { |
109 | struct snd_soc_codec *codec = kcontrol->private_data; | 109 | struct snd_soc_codec *codec = kcontrol->private_data; |
110 | struct snd_soc_dapm_context *dapm = &codec->dapm; | ||
110 | unsigned int val = (ucontrol->value.enumerated.item[0] != 0); | 111 | unsigned int val = (ucontrol->value.enumerated.item[0] != 0); |
111 | char *differential = "Audio Out Differential"; | 112 | char *differential = "Audio Out Differential"; |
112 | char *stereo = "Audio Out Stereo"; | 113 | char *stereo = "Audio Out Stereo"; |
@@ -114,10 +115,10 @@ static int output_type_put(struct snd_kcontrol *kcontrol, | |||
114 | if (kcontrol->private_value == val) | 115 | if (kcontrol->private_value == val) |
115 | return 0; | 116 | return 0; |
116 | kcontrol->private_value = val; | 117 | kcontrol->private_value = val; |
117 | snd_soc_dapm_disable_pin(codec, val ? differential : stereo); | 118 | snd_soc_dapm_disable_pin(dapm, val ? differential : stereo); |
118 | snd_soc_dapm_sync(codec); | 119 | snd_soc_dapm_sync(dapm); |
119 | snd_soc_dapm_enable_pin(codec, val ? stereo : differential); | 120 | snd_soc_dapm_enable_pin(dapm, val ? stereo : differential); |
120 | snd_soc_dapm_sync(codec); | 121 | snd_soc_dapm_sync(dapm); |
121 | 122 | ||
122 | return 1; | 123 | return 1; |
123 | } | 124 | } |
@@ -137,35 +138,36 @@ static const struct snd_kcontrol_new audio_out_mux = { | |||
137 | static int s6105_aic3x_init(struct snd_soc_pcm_runtime *rtd) | 138 | static int s6105_aic3x_init(struct snd_soc_pcm_runtime *rtd) |
138 | { | 139 | { |
139 | struct snd_soc_codec *codec = rtd->codec; | 140 | struct snd_soc_codec *codec = rtd->codec; |
141 | struct snd_soc_dapm_context *dapm = &codec->dapm; | ||
140 | 142 | ||
141 | /* Add s6105 specific widgets */ | 143 | /* Add s6105 specific widgets */ |
142 | snd_soc_dapm_new_controls(codec, aic3x_dapm_widgets, | 144 | snd_soc_dapm_new_controls(dapm, aic3x_dapm_widgets, |
143 | ARRAY_SIZE(aic3x_dapm_widgets)); | 145 | ARRAY_SIZE(aic3x_dapm_widgets)); |
144 | 146 | ||
145 | /* Set up s6105 specific audio path audio_map */ | 147 | /* Set up s6105 specific audio path audio_map */ |
146 | snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); | 148 | snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map)); |
147 | 149 | ||
148 | /* not present */ | 150 | /* not present */ |
149 | snd_soc_dapm_nc_pin(codec, "MONO_LOUT"); | 151 | snd_soc_dapm_nc_pin(dapm, "MONO_LOUT"); |
150 | snd_soc_dapm_nc_pin(codec, "LINE2L"); | 152 | snd_soc_dapm_nc_pin(dapm, "LINE2L"); |
151 | snd_soc_dapm_nc_pin(codec, "LINE2R"); | 153 | snd_soc_dapm_nc_pin(dapm, "LINE2R"); |
152 | 154 | ||
153 | /* not connected */ | 155 | /* not connected */ |
154 | snd_soc_dapm_nc_pin(codec, "MIC3L"); /* LINE2L on this chip */ | 156 | snd_soc_dapm_nc_pin(dapm, "MIC3L"); /* LINE2L on this chip */ |
155 | snd_soc_dapm_nc_pin(codec, "MIC3R"); /* LINE2R on this chip */ | 157 | snd_soc_dapm_nc_pin(dapm, "MIC3R"); /* LINE2R on this chip */ |
156 | snd_soc_dapm_nc_pin(codec, "LLOUT"); | 158 | snd_soc_dapm_nc_pin(dapm, "LLOUT"); |
157 | snd_soc_dapm_nc_pin(codec, "RLOUT"); | 159 | snd_soc_dapm_nc_pin(dapm, "RLOUT"); |
158 | snd_soc_dapm_nc_pin(codec, "HPRCOM"); | 160 | snd_soc_dapm_nc_pin(dapm, "HPRCOM"); |
159 | 161 | ||
160 | /* always connected */ | 162 | /* always connected */ |
161 | snd_soc_dapm_enable_pin(codec, "Audio In"); | 163 | snd_soc_dapm_enable_pin(dapm, "Audio In"); |
162 | 164 | ||
163 | /* must correspond to audio_out_mux.private_value initializer */ | 165 | /* must correspond to audio_out_mux.private_value initializer */ |
164 | snd_soc_dapm_disable_pin(codec, "Audio Out Differential"); | 166 | snd_soc_dapm_disable_pin(dapm, "Audio Out Differential"); |
165 | snd_soc_dapm_sync(codec); | 167 | snd_soc_dapm_sync(dapm); |
166 | snd_soc_dapm_enable_pin(codec, "Audio Out Stereo"); | 168 | snd_soc_dapm_enable_pin(dapm, "Audio Out Stereo"); |
167 | 169 | ||
168 | snd_soc_dapm_sync(codec); | 170 | snd_soc_dapm_sync(dapm); |
169 | 171 | ||
170 | snd_ctl_add(codec->snd_card, snd_ctl_new1(&audio_out_mux, codec)); | 172 | snd_ctl_add(codec->snd_card, snd_ctl_new1(&audio_out_mux, codec)); |
171 | 173 | ||