mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
ASoC: fsl-asoc-card: enable ignore_pmdown_time for ASRC case
Problem: When switching from ASRC path (hw:0,1) to direct path (hw:0,0), audio stops after 5 seconds due to DAPM powering down shared widgets. Scenario: 1. Play on hw:0,1 (ASRC): ASRC-Playback → CPU-Playback → Codec 2. Stop playback 3. Play on hw:0,0 (Direct): CPU-Playback → Codec 4. After 5s: No sound (DAPM powered down CPU-Playback) Root Cause: DAPM sees ASRC-Playback disconnected and powers down the entire path including CPU-Playback, even though CPU-Playback is still needed for the direct path. Solution: Enable ignore_pmdown_time for DPCM links to prevent premature widget power-down when switching between paths. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://patch.msgid.link/20260429100028.2739711-3-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3b9c088aea
commit
d611feb52d
|
|
@ -990,6 +990,7 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
|
|||
if (asrc_pdev) {
|
||||
/* DPCM DAI Links only if ASRC exists */
|
||||
priv->dai_link[1].dpcm_merged_chan = 1;
|
||||
priv->dai_link[1].ignore_pmdown_time = 1;
|
||||
priv->dai_link[1].cpus->of_node = asrc_np;
|
||||
priv->dai_link[1].platforms->of_node = asrc_np;
|
||||
for_each_link_codecs((&(priv->dai_link[2])), codec_idx, codec_comp) {
|
||||
|
|
@ -999,6 +1000,7 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
|
|||
}
|
||||
priv->dai_link[2].cpus->of_node = cpu_np;
|
||||
priv->dai_link[2].dai_fmt = priv->dai_fmt;
|
||||
priv->dai_link[2].ignore_pmdown_time = 1;
|
||||
priv->card.num_links = 3;
|
||||
|
||||
ret = of_property_read_u32(asrc_np, "fsl,asrc-rate",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user