ALSA: hda/cs8409: Disable unsolicited responses during suspend
Ensure unsolicited responses cannot occur whilst the sub codecs are being disabled. Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com> Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210811185654.6837-8-vitalyr@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
1f03db6865
Коммит
cc7df1623c
|
@ -563,12 +563,26 @@ static void cs8409_jack_unsol_event(struct hda_codec *codec, unsigned int res)
|
|||
}
|
||||
}
|
||||
|
||||
/* Enable/Disable Unsolicited Response for gpio(s) 3,4 */
|
||||
static void cs8409_enable_ur(struct hda_codec *codec, int flag)
|
||||
{
|
||||
/* GPIO4 INT# and GPIO3 WAKE# */
|
||||
snd_hda_codec_write(codec, CS8409_PIN_AFG, 0, AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK,
|
||||
flag ? CS8409_CS42L42_INT : 0);
|
||||
|
||||
snd_hda_codec_write(codec, CS8409_PIN_AFG, 0, AC_VERB_SET_UNSOLICITED_ENABLE,
|
||||
flag ? AC_UNSOL_ENABLED : 0);
|
||||
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
/* Manage PDREF, when transition to D3hot */
|
||||
static int cs8409_suspend(struct hda_codec *codec)
|
||||
{
|
||||
struct cs8409_spec *spec = codec->spec;
|
||||
|
||||
cs8409_enable_ur(codec, 0);
|
||||
|
||||
mutex_lock(&spec->cs8409_i2c_mux);
|
||||
/* Power down CS42L42 ASP/EQ/MIX/HP */
|
||||
cs8409_i2c_write(codec, CS42L42_I2C_ADDR, 0x1101, 0xfe, 1);
|
||||
|
@ -582,18 +596,6 @@ static int cs8409_suspend(struct hda_codec *codec)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Enable/Disable Unsolicited Response for gpio(s) 3,4 */
|
||||
static void cs8409_enable_ur(struct hda_codec *codec, int flag)
|
||||
{
|
||||
/* GPIO4 INT# and GPIO3 WAKE# */
|
||||
snd_hda_codec_write(codec, CS8409_PIN_AFG, 0, AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK,
|
||||
flag ? CS8409_CS42L42_INT : 0);
|
||||
|
||||
snd_hda_codec_write(codec, CS8409_PIN_AFG, 0, AC_VERB_SET_UNSOLICITED_ENABLE,
|
||||
flag ? AC_UNSOL_ENABLED : 0);
|
||||
|
||||
}
|
||||
|
||||
/* Vendor specific HW configuration
|
||||
* PLL, ASP, I2C, SPI, GPIOs, DMIC etc...
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче