|
@@ -1509,14 +1509,17 @@ static int aic3x_init(struct snd_soc_codec *codec)
|
|
|
snd_soc_write(codec, PGAL_2_LLOPM_VOL, DEFAULT_VOL);
|
|
|
snd_soc_write(codec, PGAR_2_RLOPM_VOL, DEFAULT_VOL);
|
|
|
|
|
|
- /* Line2 to HP Bypass default volume, disconnect from Output Mixer */
|
|
|
- snd_soc_write(codec, LINE2L_2_HPLOUT_VOL, DEFAULT_VOL);
|
|
|
- snd_soc_write(codec, LINE2R_2_HPROUT_VOL, DEFAULT_VOL);
|
|
|
- snd_soc_write(codec, LINE2L_2_HPLCOM_VOL, DEFAULT_VOL);
|
|
|
- snd_soc_write(codec, LINE2R_2_HPRCOM_VOL, DEFAULT_VOL);
|
|
|
- /* Line2 Line Out default volume, disconnect from Output Mixer */
|
|
|
- snd_soc_write(codec, LINE2L_2_LLOPM_VOL, DEFAULT_VOL);
|
|
|
- snd_soc_write(codec, LINE2R_2_RLOPM_VOL, DEFAULT_VOL);
|
|
|
+ /* On tlv320aic3104, these registers are reserved and must not be written */
|
|
|
+ if (aic3x->model != AIC3X_MODEL_3104) {
|
|
|
+ /* Line2 to HP Bypass default volume, disconnect from Output Mixer */
|
|
|
+ snd_soc_write(codec, LINE2L_2_HPLOUT_VOL, DEFAULT_VOL);
|
|
|
+ snd_soc_write(codec, LINE2R_2_HPROUT_VOL, DEFAULT_VOL);
|
|
|
+ snd_soc_write(codec, LINE2L_2_HPLCOM_VOL, DEFAULT_VOL);
|
|
|
+ snd_soc_write(codec, LINE2R_2_HPRCOM_VOL, DEFAULT_VOL);
|
|
|
+ /* Line2 Line Out default volume, disconnect from Output Mixer */
|
|
|
+ snd_soc_write(codec, LINE2L_2_LLOPM_VOL, DEFAULT_VOL);
|
|
|
+ snd_soc_write(codec, LINE2R_2_RLOPM_VOL, DEFAULT_VOL);
|
|
|
+ }
|
|
|
|
|
|
switch (aic3x->model) {
|
|
|
case AIC3X_MODEL_3X:
|