Skip to content

Commit 9a56dbf

Browse files
committed
ASoC: SOF: Intel: filter HDA and IDISP codecs to bus->codec_mask
SDW codecs use the global HDaudio WAKEEN/STS to detect wakes since LNL. But the wakeen is handled in the SDW driver. We should filter the bus->codec_mask to only include HDA and IDISP codecs to avoid clearing the wakeen status before it is handled. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
1 parent f9d6af2 commit 9a56dbf

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

sound/soc/sof/intel/hda-codec.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,12 @@ void hda_codec_detect_mask(struct snd_sof_dev *sdev)
265265

266266
/* detect codecs */
267267
if (!bus->codec_mask) {
268-
bus->codec_mask = snd_hdac_chip_readw(bus, STATESTS);
268+
/*
269+
* SWAKESTS of SDW codecs will be handled separately.
270+
* bus->codec_mask should only include HDA and IDISP codecs.
271+
*/
272+
bus->codec_mask = snd_hdac_chip_readw(bus, STATESTS) &
273+
(BIT(HDA_EXT_ADDR) | BIT(HDA_IDISP_ADDR));
269274
dev_dbg(bus->dev, "codec_mask = 0x%lx\n", bus->codec_mask);
270275
}
271276

0 commit comments

Comments
 (0)