Re: [PATCH] ALSA: lx6464es: fix period byte count for 16-bit streams
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, 23 Jul 2026 10:57:10 +0200, raoxu wrote: > > From: Xu Rao <[email protected]> > > The lx6464es driver advertises both 16-bit and packed 24-bit PCM formats, > but lx_trigger_start() and lx_interrupt_request_new_buffer() calculate the > DMA period size as runtime->period_size * runtime->channels * 3. That is > only correct for the packed 24-bit formats. > > For 16-bit streams the driver submits buffers that are 50% larger than the > actual ALSA period and advances the DMA address by the same wrong amount. > For example, with 2 channels, 256 frames and 4 periods, the third buffer > already extends beyond the ALSA buffer and the fourth buffer starts outside > it. > > Use snd_pcm_lib_period_bytes() so the byte count matches the runtime > format, channel count and period size. > > Fixes: 02bec4904508 ("ALSA: lx6464es - driver for the digigram lx6464es interface") > Cc: [email protected] > Signed-off-by: Xu Rao <[email protected]> Thanks, applied now. Takashi