ALSA: aloop: Support S24 sample formats
authorTimo Wischer <twischer@de.adit-jv.com>
Mon, 25 Mar 2019 15:14:14 +0000 (16:14 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 25 Mar 2019 15:39:18 +0000 (16:39 +0100)
Currently snd_aloop supports only S16 and S32 audio sample formats. With
this patch the S24 formats are also supported.

Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/drivers/aloop.c

index 8c3fbe1276be141c79af15acba98287ac8ebf46b..c14e57b2a1352cb5c8feaf6ade12aa18d0a55c2a 100644 (file)
@@ -337,7 +337,7 @@ static int loopback_prepare(struct snd_pcm_substream *substream)
 
        loopback_timer_stop_sync(dpcm);
 
-       salign = (snd_pcm_format_width(runtime->format) *
+       salign = (snd_pcm_format_physical_width(runtime->format) *
                                                runtime->channels) / 8;
        bps = salign * runtime->rate;
        if (bps <= 0 || salign <= 0)
@@ -562,6 +562,8 @@ static const struct snd_pcm_hardware loopback_pcm_hardware =
                         SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE |
                         SNDRV_PCM_INFO_RESUME),
        .formats =      (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE |
+                        SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |
+                        SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE |
                         SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE |
                         SNDRV_PCM_FMTBIT_FLOAT_LE | SNDRV_PCM_FMTBIT_FLOAT_BE),
        .rates =        SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_192000,