]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: cs35l41: drop SNDRV_PCM_RATE_KNOT
authorJerome Brunet <jbrunet@baylibre.com>
Thu, 5 Sep 2024 14:12:58 +0000 (16:12 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 6 Sep 2024 07:23:55 +0000 (09:23 +0200)
The custom rate constraint list 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-7-8371948d3921@baylibre.com
sound/soc/codecs/cs35l41.c

index 1688c2c688f06b387e4be0eac61f422d621dbd03..07a5cab35fe1031854b9926c26bbe6d61211f96b 100644 (file)
@@ -808,26 +808,6 @@ static int cs35l41_get_clk_config(int freq)
        return -EINVAL;
 }
 
-static const unsigned int cs35l41_src_rates[] = {
-       8000, 12000, 11025, 16000, 22050, 24000, 32000,
-       44100, 48000, 88200, 96000, 176400, 192000
-};
-
-static const struct snd_pcm_hw_constraint_list cs35l41_constraints = {
-       .count = ARRAY_SIZE(cs35l41_src_rates),
-       .list = cs35l41_src_rates,
-};
-
-static int cs35l41_pcm_startup(struct snd_pcm_substream *substream,
-                              struct snd_soc_dai *dai)
-{
-       if (substream->runtime)
-               return snd_pcm_hw_constraint_list(substream->runtime, 0,
-                                                 SNDRV_PCM_HW_PARAM_RATE,
-                                                 &cs35l41_constraints);
-       return 0;
-}
-
 static int cs35l41_component_set_sysclk(struct snd_soc_component *component,
                                        int clk_id, int source,
                                        unsigned int freq, int dir)
@@ -974,13 +954,21 @@ static void cs35l41_component_remove(struct snd_soc_component *component)
 }
 
 static const struct snd_soc_dai_ops cs35l41_ops = {
-       .startup = cs35l41_pcm_startup,
        .set_fmt = cs35l41_set_dai_fmt,
        .hw_params = cs35l41_pcm_hw_params,
        .set_sysclk = cs35l41_dai_set_sysclk,
        .set_channel_map = cs35l41_set_channel_map,
 };
 
+#define CS35L41_RATES (                    \
+       SNDRV_PCM_RATE_8000_48000 | \
+       SNDRV_PCM_RATE_12000 |      \
+       SNDRV_PCM_RATE_24000 |      \
+       SNDRV_PCM_RATE_88200 |      \
+       SNDRV_PCM_RATE_96000 |      \
+       SNDRV_PCM_RATE_176400 |     \
+       SNDRV_PCM_RATE_192000)
+
 static struct snd_soc_dai_driver cs35l41_dai[] = {
        {
                .name = "cs35l41-pcm",
@@ -989,14 +977,14 @@ static struct snd_soc_dai_driver cs35l41_dai[] = {
                        .stream_name = "AMP Playback",
                        .channels_min = 1,
                        .channels_max = 2,
-                       .rates = SNDRV_PCM_RATE_KNOT,
+                       .rates = CS35L41_RATES,
                        .formats = CS35L41_RX_FORMATS,
                },
                .capture = {
                        .stream_name = "AMP Capture",
                        .channels_min = 1,
                        .channels_max = 4,
-                       .rates = SNDRV_PCM_RATE_KNOT,
+                       .rates = CS35L41_RATES,
                        .formats = CS35L41_TX_FORMATS,
                },
                .ops = &cs35l41_ops,