mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 09:14:19 +08:00
ALSA: hda - Avoid possible race of beep on/off
Call cancel_work_sync() when turning off the beep switch so that the mute call is executed in a proper order. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
257dfb4100
commit
3fd877d32c
@ -165,12 +165,13 @@ static int snd_hda_do_attach(struct hda_beep *beep)
|
||||
int snd_hda_enable_beep_device(struct hda_codec *codec, int enable)
|
||||
{
|
||||
struct hda_beep *beep = codec->beep;
|
||||
enable = !!enable;
|
||||
if (beep == NULL)
|
||||
if (!beep)
|
||||
return 0;
|
||||
enable = !!enable;
|
||||
if (beep->enabled != enable) {
|
||||
beep->enabled = enable;
|
||||
if (!enable) {
|
||||
cancel_work_sync(&beep->beep_work);
|
||||
/* turn off beep */
|
||||
snd_hda_codec_write(beep->codec, beep->nid, 0,
|
||||
AC_VERB_SET_BEEP_CONTROL, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user