]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: sunxi: sun4i-codec: drop SNDRV_PCM_RATE_KNOT
authorJerome Brunet <jbrunet@baylibre.com>
Thu, 5 Sep 2024 14:13:02 +0000 (16:13 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 6 Sep 2024 07:23:55 +0000 (09:23 +0200)
The custom rate constraint lists was necessary to support 12kHz and 24kHz.
These rates are now available through SNDRV_PCM_RATE_12000 and
SNDRV_PCM_RATE_24000.

Use them and drop the custom rate constraint rule.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: David Rhodes <drhodes@opensource.cirrus.com>
Acked-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20240905-alsa-12-24-128-v1-11-8371948d3921@baylibre.com
sound/soc/sunxi/sun4i-codec.c

index a2618ed650b00688fd40dbf52b415d99bae6db32..25af47b63bdd433f86ff5ff8c9d2177caf169ef5 100644 (file)
@@ -577,28 +577,12 @@ static int sun4i_codec_hw_params(struct snd_pcm_substream *substream,
                                             hwrate);
 }
 
-
-static unsigned int sun4i_codec_src_rates[] = {
-       8000, 11025, 12000, 16000, 22050, 24000, 32000,
-       44100, 48000, 96000, 192000
-};
-
-
-static struct snd_pcm_hw_constraint_list sun4i_codec_constraints = {
-       .count  = ARRAY_SIZE(sun4i_codec_src_rates),
-       .list   = sun4i_codec_src_rates,
-};
-
-
 static int sun4i_codec_startup(struct snd_pcm_substream *substream,
                               struct snd_soc_dai *dai)
 {
        struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
        struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
 
-       snd_pcm_hw_constraint_list(substream->runtime, 0,
-                               SNDRV_PCM_HW_PARAM_RATE, &sun4i_codec_constraints);
-
        /*
         * Stop issuing DRQ when we have room for less than 16 samples
         * in our TX FIFO
@@ -626,6 +610,13 @@ static const struct snd_soc_dai_ops sun4i_codec_dai_ops = {
        .prepare        = sun4i_codec_prepare,
 };
 
+#define SUN4I_CODEC_RATES (                    \
+               SNDRV_PCM_RATE_8000_48000 |     \
+               SNDRV_PCM_RATE_12000 |          \
+               SNDRV_PCM_RATE_24000 |          \
+               SNDRV_PCM_RATE_96000 |          \
+               SNDRV_PCM_RATE_192000)
+
 static struct snd_soc_dai_driver sun4i_codec_dai = {
        .name   = "Codec",
        .ops    = &sun4i_codec_dai_ops,
@@ -635,7 +626,7 @@ static struct snd_soc_dai_driver sun4i_codec_dai = {
                .channels_max   = 2,
                .rate_min       = 8000,
                .rate_max       = 192000,
-               .rates          = SNDRV_PCM_RATE_CONTINUOUS,
+               .rates          = SUN4I_CODEC_RATES,
                .formats        = SNDRV_PCM_FMTBIT_S16_LE |
                                  SNDRV_PCM_FMTBIT_S32_LE,
                .sig_bits       = 24,
@@ -646,7 +637,7 @@ static struct snd_soc_dai_driver sun4i_codec_dai = {
                .channels_max   = 2,
                .rate_min       = 8000,
                .rate_max       = 48000,
-               .rates          = SNDRV_PCM_RATE_CONTINUOUS,
+               .rates          = SUN4I_CODEC_RATES,
                .formats        = SNDRV_PCM_FMTBIT_S16_LE |
                                  SNDRV_PCM_FMTBIT_S32_LE,
                .sig_bits       = 24,
@@ -1233,7 +1224,6 @@ static const struct snd_soc_component_driver sun4i_codec_component = {
 #endif
 };
 
-#define SUN4I_CODEC_RATES      SNDRV_PCM_RATE_CONTINUOUS
 #define SUN4I_CODEC_FORMATS    (SNDRV_PCM_FMTBIT_S16_LE | \
                                 SNDRV_PCM_FMTBIT_S32_LE)