ASoC: Intel: Cleanup HSW pcm format support
This change removes unsupported formats from System, Capture and Loopback FE DAIs. Also it fixes S24_LE support on all DAIs. While at this fix 24 bit flag for BYT as well. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
This commit is contained in:
parent
ab6f7d0d93
commit
8e89761876
@ -32,7 +32,7 @@ static const struct snd_pcm_hardware sst_byt_pcm_hardware = {
|
|||||||
SNDRV_PCM_INFO_PAUSE |
|
SNDRV_PCM_INFO_PAUSE |
|
||||||
SNDRV_PCM_INFO_RESUME,
|
SNDRV_PCM_INFO_RESUME,
|
||||||
.formats = SNDRV_PCM_FMTBIT_S16_LE |
|
.formats = SNDRV_PCM_FMTBIT_S16_LE |
|
||||||
SNDRV_PCM_FORMAT_S24_LE,
|
SNDRV_PCM_FMTBIT_S24_LE,
|
||||||
.period_bytes_min = 384,
|
.period_bytes_min = 384,
|
||||||
.period_bytes_max = 48000,
|
.period_bytes_max = 48000,
|
||||||
.periods_min = 2,
|
.periods_min = 2,
|
||||||
|
@ -80,7 +80,7 @@ static const struct snd_pcm_hardware hsw_pcm_hardware = {
|
|||||||
SNDRV_PCM_INFO_PAUSE |
|
SNDRV_PCM_INFO_PAUSE |
|
||||||
SNDRV_PCM_INFO_RESUME |
|
SNDRV_PCM_INFO_RESUME |
|
||||||
SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
|
SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
|
||||||
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S24_LE |
|
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
|
||||||
SNDRV_PCM_FMTBIT_S32_LE,
|
SNDRV_PCM_FMTBIT_S32_LE,
|
||||||
.period_bytes_min = PAGE_SIZE,
|
.period_bytes_min = PAGE_SIZE,
|
||||||
.period_bytes_max = (HSW_PCM_PERIODS_MAX / HSW_PCM_PERIODS_MIN) * PAGE_SIZE,
|
.period_bytes_max = (HSW_PCM_PERIODS_MAX / HSW_PCM_PERIODS_MIN) * PAGE_SIZE,
|
||||||
@ -400,7 +400,15 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream,
|
|||||||
sst_hsw_stream_set_valid(hsw, pcm_data->stream, 16);
|
sst_hsw_stream_set_valid(hsw, pcm_data->stream, 16);
|
||||||
break;
|
break;
|
||||||
case SNDRV_PCM_FORMAT_S24_LE:
|
case SNDRV_PCM_FORMAT_S24_LE:
|
||||||
bits = SST_HSW_DEPTH_24BIT;
|
bits = SST_HSW_DEPTH_32BIT;
|
||||||
|
sst_hsw_stream_set_valid(hsw, pcm_data->stream, 24);
|
||||||
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S8:
|
||||||
|
bits = SST_HSW_DEPTH_8BIT;
|
||||||
|
sst_hsw_stream_set_valid(hsw, pcm_data->stream, 8);
|
||||||
|
break;
|
||||||
|
case SNDRV_PCM_FORMAT_S32_LE:
|
||||||
|
bits = SST_HSW_DEPTH_32BIT;
|
||||||
sst_hsw_stream_set_valid(hsw, pcm_data->stream, 32);
|
sst_hsw_stream_set_valid(hsw, pcm_data->stream, 32);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -685,8 +693,9 @@ static int hsw_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define HSW_FORMATS \
|
#define HSW_FORMATS \
|
||||||
(SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S16_LE |\
|
(SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S24_LE | \
|
||||||
SNDRV_PCM_FMTBIT_S32_LE)
|
SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S16_LE |\
|
||||||
|
SNDRV_PCM_FMTBIT_S8)
|
||||||
|
|
||||||
static struct snd_soc_dai_driver hsw_dais[] = {
|
static struct snd_soc_dai_driver hsw_dais[] = {
|
||||||
{
|
{
|
||||||
@ -696,7 +705,7 @@ static struct snd_soc_dai_driver hsw_dais[] = {
|
|||||||
.channels_min = 2,
|
.channels_min = 2,
|
||||||
.channels_max = 2,
|
.channels_max = 2,
|
||||||
.rates = SNDRV_PCM_RATE_48000,
|
.rates = SNDRV_PCM_RATE_48000,
|
||||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
.formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -727,8 +736,8 @@ static struct snd_soc_dai_driver hsw_dais[] = {
|
|||||||
.stream_name = "Loopback Capture",
|
.stream_name = "Loopback Capture",
|
||||||
.channels_min = 2,
|
.channels_min = 2,
|
||||||
.channels_max = 2,
|
.channels_max = 2,
|
||||||
.rates = SNDRV_PCM_RATE_8000_192000,
|
.rates = SNDRV_PCM_RATE_48000,
|
||||||
.formats = HSW_FORMATS,
|
.formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -737,8 +746,8 @@ static struct snd_soc_dai_driver hsw_dais[] = {
|
|||||||
.stream_name = "Analog Capture",
|
.stream_name = "Analog Capture",
|
||||||
.channels_min = 2,
|
.channels_min = 2,
|
||||||
.channels_max = 2,
|
.channels_max = 2,
|
||||||
.rates = SNDRV_PCM_RATE_8000_192000,
|
.rates = SNDRV_PCM_RATE_48000,
|
||||||
.formats = HSW_FORMATS,
|
.formats = SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user