Message ID | CAOMZO5Cp7keQSEcR+wV_Z6PTxYgr_xYxdcG_TDd+UUJne0R7xg@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/20/2017 07:27 PM, Fabio Estevam wrote: > Hi Richard, > > On Thu, Jul 20, 2017 at 2:25 PM, Richard Leitner <dev@g0hl1n.net> wrote: > >> Does this occur only on reboot or everytime the driver tries to read the AVC >> threshold (avc_get_threshold)? >> Are you able to set the AVC threshold (using amixer)? > > I am not even using the codec. I just run 'reboot' and the problem happens. > > The following change fixes the 'reboot' issue for me. Could you please try it? > > --- a/sound/soc/codecs/sgtl5000.c > +++ b/sound/soc/codecs/sgtl5000.c > @@ -409,7 +409,7 @@ static int dac_put_volsw(struct snd_kcontrol *kcontrol, > static int avc_get_threshold(struct snd_kcontrol *kcontrol, > struct snd_ctl_elem_value *ucontrol) > { > - struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); > + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); Thank you for spotting this! That works of course. I'm sorry, it seems I messed something up during copy/paste for my own backport version of this patch. Seems like I tested and sent a different version of the patch... That definitely shouldn't have happened :-( Do you want to send that patch or should I? Thank you again Fabio! regards, Richard.L
On Thu, Jul 20, 2017 at 2:38 PM, Richard Leitner <dev@g0hl1n.net> wrote: > Thank you for spotting this! That works of course. > > I'm sorry, it seems I messed something up during copy/paste for my own > backport version of this patch. Seems like I tested and sent a different > version of the patch... That definitely shouldn't have happened :-( > > Do you want to send that patch or should I? I have just sent the patch.
On 07/20/2017 07:40 PM, Fabio Estevam wrote: >> Do you want to send that patch or should I? > I have just sent the patch. > Thanks!
--- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -409,7 +409,7 @@ static int dac_put_volsw(struct snd_kcontrol *kcontrol, static int avc_get_threshold(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); int db, i; u16 reg = snd_soc_read(codec, SGTL5000_DAP_AVC_THRESHOLD); @@ -442,7 +442,7 @@ static int avc_get_threshold(struct snd_kcontrol *kcontrol, static int avc_put_threshold(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); int db; u16 reg; _______________________________________________