]> www.infradead.org Git - users/hch/misc.git/commitdiff
ASoC: Intel: catpt: Expose correct bit depth to userspace
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tue, 9 Sep 2025 09:28:29 +0000 (11:28 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 9 Sep 2025 11:41:59 +0000 (12:41 +0100)
Currently wrong bit depth is exposed in hw params, causing clipped
volume during playback. Expose correct parameters.

Fixes: a126750fc865 ("ASoC: Intel: catpt: PCM operations")
Reported-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Tested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Message-ID: <20250909092829.375953-1-amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/catpt/pcm.c

index 46acb7fdc547d84efca7dc3ba785c3c061324601..bf734c69c4e095bb0dad63d17c8b1c83fc69c5aa 100644 (file)
@@ -568,8 +568,9 @@ static const struct snd_pcm_hardware catpt_pcm_hardware = {
                                  SNDRV_PCM_INFO_RESUME |
                                  SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
        .formats                = SNDRV_PCM_FMTBIT_S16_LE |
-                                 SNDRV_PCM_FMTBIT_S24_LE |
                                  SNDRV_PCM_FMTBIT_S32_LE,
+       .subformats             = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
+                                 SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
        .period_bytes_min       = PAGE_SIZE,
        .period_bytes_max       = CATPT_BUFFER_MAX_SIZE / CATPT_PCM_PERIODS_MIN,
        .periods_min            = CATPT_PCM_PERIODS_MIN,
@@ -698,14 +699,18 @@ static struct snd_soc_dai_driver dai_drivers[] = {
                .channels_min = 2,
                .channels_max = 2,
                .rates = SNDRV_PCM_RATE_48000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
+               .subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
+                             SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
        },
        .capture = {
                .stream_name = "Analog Capture",
                .channels_min = 2,
                .channels_max = 4,
                .rates = SNDRV_PCM_RATE_48000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
+               .subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
+                             SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
        },
 },
 {
@@ -717,7 +722,9 @@ static struct snd_soc_dai_driver dai_drivers[] = {
                .channels_min = 2,
                .channels_max = 2,
                .rates = SNDRV_PCM_RATE_8000_192000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
+               .subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
+                             SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
        },
 },
 {
@@ -729,7 +736,9 @@ static struct snd_soc_dai_driver dai_drivers[] = {
                .channels_min = 2,
                .channels_max = 2,
                .rates = SNDRV_PCM_RATE_8000_192000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
+               .subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
+                             SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
        },
 },
 {
@@ -741,7 +750,9 @@ static struct snd_soc_dai_driver dai_drivers[] = {
                .channels_min = 2,
                .channels_max = 2,
                .rates = SNDRV_PCM_RATE_48000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
+               .subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
+                             SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
        },
 },
 {