Re: [PATCH] ALSA: hda/ext: preserve PPLCCTL bits when clearing reset
Takashi Iwai <[email protected]>
| Newsgroups | org.kernel.vger.linux-sound,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 13 Aug 2026 08:55:24 +0200, raoxu wrote: > > From: Xu Rao <[email protected]> > > 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: [email protected] > Signed-off-by: Xu Rao <[email protected]> Applied to for-next branch. Thanks. Takashi