ALSA: pcm: add support for 352.8KHz and 384KHz sample rate
authorVidyakumar Athota <vathota@codeaurora.org>
Thu, 22 Aug 2019 09:56:50 +0000 (10:56 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 28 Aug 2019 10:53:49 +0000 (11:53 +0100)
Most of the modern codecs supports 352.8KHz and 384KHz sample rates.
Currenlty HW params fails to set 352.8Kz and 384KHz sample rate
as these are not in known rates list.
Add these new rates to known list to allow them.

This patch also adds defines in pcm.h so that drivers can use it.

Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20190822095653.7200-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/pcm.h
sound/core/pcm_native.c

index 1e9bb1c917705385e45f8970cb16883cee655b5b..bbe6eb1ff5d2290e116a08b1bff5d186240ba39d 100644 (file)
@@ -117,6 +117,8 @@ struct snd_pcm_ops {
 #define SNDRV_PCM_RATE_96000           (1<<10)         /* 96000Hz */
 #define SNDRV_PCM_RATE_176400          (1<<11)         /* 176400Hz */
 #define SNDRV_PCM_RATE_192000          (1<<12)         /* 192000Hz */
+#define SNDRV_PCM_RATE_352800          (1<<13)         /* 352800Hz */
+#define SNDRV_PCM_RATE_384000          (1<<14)         /* 384000Hz */
 
 #define SNDRV_PCM_RATE_CONTINUOUS      (1<<30)         /* continuous range */
 #define SNDRV_PCM_RATE_KNOT            (1<<31)         /* supports more non-continuos rates */
@@ -129,6 +131,9 @@ struct snd_pcm_ops {
                                         SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000)
 #define SNDRV_PCM_RATE_8000_192000     (SNDRV_PCM_RATE_8000_96000|SNDRV_PCM_RATE_176400|\
                                         SNDRV_PCM_RATE_192000)
+#define SNDRV_PCM_RATE_8000_384000     (SNDRV_PCM_RATE_8000_192000|\
+                                        SNDRV_PCM_RATE_352800|\
+                                        SNDRV_PCM_RATE_384000)
 #define _SNDRV_PCM_FMTBIT(fmt)         (1ULL << (__force int)SNDRV_PCM_FORMAT_##fmt)
 #define SNDRV_PCM_FMTBIT_S8            _SNDRV_PCM_FMTBIT(S8)
 #define SNDRV_PCM_FMTBIT_U8            _SNDRV_PCM_FMTBIT(U8)
index 860543a4c840207cda8e4a8c3ec873868b27b8ed..34390be3fb0fc7f1745826ffc6824c756815506b 100644 (file)
@@ -2168,7 +2168,7 @@ static int snd_pcm_hw_rule_sample_bits(struct snd_pcm_hw_params *params,
 
 static const unsigned int rates[] = {
        5512, 8000, 11025, 16000, 22050, 32000, 44100,
-       48000, 64000, 88200, 96000, 176400, 192000
+       48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000
 };
 
 const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = {