Re: [PATCH] ALSA: lx6464es: fix period byte count for 16-bit streams

From: Takashi Iwai

Date: Sun Jul 26 2026 - 02:53:32 EST


On Thu, 23 Jul 2026 10:57:10 +0200,
raoxu wrote:
>
> From: Xu Rao <raoxu@xxxxxxxxxxxxx>
>
> 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: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Xu Rao <raoxu@xxxxxxxxxxxxx>

Thanks, applied now.


Takashi