Skip to content

Commit

Permalink
ALSA: hda: Ignore unsol events for cards being shut down
Browse files Browse the repository at this point in the history
[ Upstream commit 3f100f5 ]

For the classic snd_hda_intel driver, codec->card and bus->card point to
the exact same thing. When snd_card_diconnect() fires, bus->shutdown is
set thanks to azx_dev_disconnect(). card->shutdown is already set when
that happens but both provide basically the same functionality.

For the DSP snd_soc_avs driver where multiple codecs are located on
multiple cards, bus->shutdown 'shortcut' is not sufficient. One codec
card may be unregistered while other codecs are still operational.
Proper check in form of card->shutdown must be used to verify whether
the codec's card is being shut down.

Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20250530141309.2943404-1-cezary.rojewski@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Cezary Rojewski authored and Greg Kroah-Hartman committed Jul 6, 2025
1 parent a84dbb4 commit 2dd4900
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion sound/pci/hda/hda_bind.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ static void hda_codec_unsol_event(struct hdac_device *dev, unsigned int ev)
struct hda_codec *codec = container_of(dev, struct hda_codec, core);

/* ignore unsol events during shutdown */
if (codec->bus->shutdown)
if (codec->card->shutdown || codec->bus->shutdown)
return;

/* ignore unsol events during system suspend/resume */
Expand Down

0 comments on commit 2dd4900

Please sign in to comment.