Skip to content

Commit 690aa09

Browse files
Amadeusz Sławińskibroonie
authored andcommitted
ASoC: Intel: catpt: Expose correct bit depth to userspace
Currently wrong bit depth is exposed in hw params, causing clipped volume during playback. Expose correct parameters. Fixes: a126750 ("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>
1 parent bfa4d09 commit 690aa09

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

  • sound/soc/intel/catpt

sound/soc/intel/catpt/pcm.c

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,9 @@ static const struct snd_pcm_hardware catpt_pcm_hardware = {
568568
SNDRV_PCM_INFO_RESUME |
569569
SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
570570
.formats = SNDRV_PCM_FMTBIT_S16_LE |
571-
SNDRV_PCM_FMTBIT_S24_LE |
572571
SNDRV_PCM_FMTBIT_S32_LE,
572+
.subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
573+
SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
573574
.period_bytes_min = PAGE_SIZE,
574575
.period_bytes_max = CATPT_BUFFER_MAX_SIZE / CATPT_PCM_PERIODS_MIN,
575576
.periods_min = CATPT_PCM_PERIODS_MIN,
@@ -698,14 +699,18 @@ static struct snd_soc_dai_driver dai_drivers[] = {
698699
.channels_min = 2,
699700
.channels_max = 2,
700701
.rates = SNDRV_PCM_RATE_48000,
701-
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
702+
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
703+
.subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
704+
SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
702705
},
703706
.capture = {
704707
.stream_name = "Analog Capture",
705708
.channels_min = 2,
706709
.channels_max = 4,
707710
.rates = SNDRV_PCM_RATE_48000,
708-
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
711+
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
712+
.subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
713+
SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
709714
},
710715
},
711716
{
@@ -717,7 +722,9 @@ static struct snd_soc_dai_driver dai_drivers[] = {
717722
.channels_min = 2,
718723
.channels_max = 2,
719724
.rates = SNDRV_PCM_RATE_8000_192000,
720-
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
725+
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
726+
.subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
727+
SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
721728
},
722729
},
723730
{
@@ -729,7 +736,9 @@ static struct snd_soc_dai_driver dai_drivers[] = {
729736
.channels_min = 2,
730737
.channels_max = 2,
731738
.rates = SNDRV_PCM_RATE_8000_192000,
732-
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
739+
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
740+
.subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
741+
SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
733742
},
734743
},
735744
{
@@ -741,7 +750,9 @@ static struct snd_soc_dai_driver dai_drivers[] = {
741750
.channels_min = 2,
742751
.channels_max = 2,
743752
.rates = SNDRV_PCM_RATE_48000,
744-
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
753+
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
754+
.subformats = SNDRV_PCM_SUBFMTBIT_MSBITS_24 |
755+
SNDRV_PCM_SUBFMTBIT_MSBITS_MAX,
745756
},
746757
},
747758
{

0 commit comments

Comments
 (0)