27 Oct
2020
27 Oct
'20
9:12 a.m.
On Tue, 27 Oct 2020 08:46:05 +0100, Takashi Iwai wrote:
@@ -1103,10 +1115,8 @@ static int azx_runtime_suspend(struct device *dev) chip = card->private_data;
/* enable controller wake up event */
- if (snd_power_get_state(card) == SNDRV_CTL_POWER_D0) {
azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) |
STATESTS_INT_MASK);
- }
- azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) |
STATESTS_INT_MASK);
... here we should have the check of chip->prepared, and set WAKEEN only when it's false. Otherwise WAKEEN is set up for the system suspend, and it might lead to spurious wakeups. (IOW, checking the flag at resume doesn't help for preventing the spurious wakeup :)
Scratch my comment above; it's the code path only for the runtime suspend in your new code, then this cleanup makes sense.
thanks,
Takashi