]> git.alsa-project.org Git - alsa-utils.git/commitdiff
bat: Fix buffer time configuration master
authorAlexander Stein <alexander.stein@ew.tq-group.com>
Thu, 10 Apr 2025 11:01:19 +0000 (13:01 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 16 May 2025 09:16:50 +0000 (11:16 +0200)
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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
bat/alsa.c

index 67489c4214fbc06c5a4ac8f8903a406dff88561b..457e79a2b2930a18043103bc41025ec0b064389e 100644 (file)
@@ -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,
+                       params, &period_time, 0);
                if (err < 0) {
                        fprintf(bat->err, _("Set parameter to device error: "));
-                       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,
+                               params, &buffer_time, 0);
                if (err < 0) {
                        fprintf(bat->err, _("Set parameter to device error: "));
-                       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;
                }