Re: [PATCH] ALSA: hda/ext: preserve PPLCCTL bits when clearing reset
From: Takashi Iwai
Date: Thu Aug 13 2026 - 03:12:17 EST
On Thu, 13 Aug 2026 08:55:24 +0200,
raoxu wrote:
>
> From: Xu Rao <raoxu@xxxxxxxxxxxxx>
>
> snd_hdac_ext_stream_reset() polls PPLCCTL for STRST by masking the
> register value with AZX_PPLCCTL_STRST:
>
> val = readl(...) & AZX_PPLCCTL_STRST;
>
> The same masked value is then used when clearing STRST. Since val
> contains no bits other than STRST, clearing STRST from it always
> produces zero. The subsequent writel() therefore writes zero to the
> entire PPLCCTL register instead of clearing only the reset bit.
>
> PPLCCTL contains other stream control fields, including the stream tag
> in AZX_PPLCCTL_STRM_MASK. Those fields must not be modified as a side
> effect of clearing stream reset.
>
> Use snd_hdac_updatel() to clear STRST, matching the existing set-reset
> path and preserving all unrelated PPLCCTL bits.
>
> Fixes: df203a4e46f4 ("ALSA: hdac_ext: add extended stream capabilities")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Xu Rao <raoxu@xxxxxxxxxxxxx>
Applied to for-next branch. Thanks.
Takashi