
Hi,
Am Donnerstag, 10. April 2025, 13:01:19 CEST schrieb Alexander Stein:
By swapping time configuration some hardware constraints can be supported. Fixes the error: Set parameter to device error: buffer time: 500000 hw:tqmtlv320aic32: Invalid argument(-22)
Signed-off-by: Alexander Stein alexander.stein@ew.tq-group.com
Any feedback here? Or should I create a PR on github instead?
Thanks and best regards Alexander
Our common 'alsabat -Dhw:tqmtlv320aic32 -f S16_LE -c 2 -r 44100 -F 997:500' failed ona i.MX95 based platform, while it worked flawlessly on others, e.g. i.MX8M Plus. Upon searching I stumbled across [1], which this patch is inspired/based on.
[1] https://github.com/arkq/bluez-alsa/pull/290/commits/da78b82ff77310093b4b4a91...
bat/alsa.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/bat/alsa.c b/bat/alsa.c index 67489c4..457e79a 100644 --- a/bat/alsa.c +++ b/bat/alsa.c @@ -221,23 +221,23 @@ static int set_snd_pcm_params(struct bat *bat, struct pcm_container *sndpcm)
period_time = buffer_time / DIV_BUFFERTIME;
/* Set buffer time and period time */
err = snd_pcm_hw_params_set_buffer_time_near(sndpcm->handle,
params, &buffer_time, 0);
/* Set period time and buffer time */
err = snd_pcm_hw_params_set_period_time_near(sndpcm->handle,
if (err < 0) { fprintf(bat->err, _("Set parameter to device error: "));params, &period_time, 0);
fprintf(bat->err, _("buffer time: %d %s: %s(%d)\n"),
buffer_time,
fprintf(bat->err, _("period time: %d %s: %s(%d)\n"),
}period_time, device_name, snd_strerror(err), err); return err;
err = snd_pcm_hw_params_set_period_time_near(sndpcm->handle,
params, &period_time, 0);
err = snd_pcm_hw_params_set_buffer_time_near(sndpcm->handle,
if (err < 0) { fprintf(bat->err, _("Set parameter to device error: "));params, &buffer_time, 0);
fprintf(bat->err, _("period time: %d %s: %s(%d)\n"),
period_time,
fprintf(bat->err, _("buffer time: %d %s: %s(%d)\n"),
}buffer_time, device_name, snd_strerror(err), err); return err;