Skip to content

Commit

Permalink
[ALSA] Remove delayed work properly at free and suspend
Browse files Browse the repository at this point in the history
Remove delayed work properly at free and suspend in ac97 codec and
ak4114 drivers.

Signed-off-by: Takashi Iwai <[email protected]>
Signed-off-by: Jaroslav Kysela <[email protected]>
  • Loading branch information
tiwai authored and Jaroslav Kysela committed Feb 9, 2007
1 parent 965ac42 commit 3b6baa5
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
3 changes: 2 additions & 1 deletion sound/i2c/other/ak4114.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ static void snd_ak4114_free(struct ak4114 *chip)
{
chip->init = 1; /* don't schedule new work */
mb();
cancel_delayed_work(&chip->work);
flush_scheduled_work();
kfree(chip);
}
Expand Down Expand Up @@ -97,6 +98,7 @@ int snd_ak4114_create(struct snd_card *card,
chip->read = read;
chip->write = write;
chip->private_data = private_data;
INIT_DELAYED_WORK(&chip->work, ak4114_stats);

for (reg = 0; reg < 7; reg++)
chip->regmap[reg] = pgm[reg];
Expand Down Expand Up @@ -149,7 +151,6 @@ void snd_ak4114_reinit(struct ak4114 *chip)
reg_write(chip, AK4114_REG_PWRDN, old | AK4114_RST | AK4114_PWN);
/* bring up statistics / event queing */
chip->init = 0;
INIT_DELAYED_WORK(&chip->work, ak4114_stats);
schedule_delayed_work(&chip->work, HZ / 10);
}

Expand Down
5 changes: 5 additions & 0 deletions sound/pci/ac97/ac97_codec.c
Original file line number Diff line number Diff line change
Expand Up @@ -990,6 +990,7 @@ static int snd_ac97_free(struct snd_ac97 *ac97)
if (ac97) {
#ifdef CONFIG_SND_AC97_POWER_SAVE
cancel_delayed_work(&ac97->power_work);
flush_scheduled_work();
#endif
snd_ac97_proc_done(ac97);
if (ac97->bus)
Expand Down Expand Up @@ -2415,6 +2416,10 @@ void snd_ac97_suspend(struct snd_ac97 *ac97)
return;
if (ac97->build_ops->suspend)
ac97->build_ops->suspend(ac97);
#ifdef CONFIG_SND_AC97_POWER_SAVE
cancel_delayed_work(&ac97->power_work);
flush_scheduled_work();
#endif
snd_ac97_powerdown(ac97);
}

Expand Down

0 comments on commit 3b6baa5

Please sign in to comment.