diff options
Diffstat (limited to 'sound/x86')
-rw-r--r-- | sound/x86/intel_hdmi_audio.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c index e8f8be2f590b..c0a080e5d1f4 100644 --- a/sound/x86/intel_hdmi_audio.c +++ b/sound/x86/intel_hdmi_audio.c | |||
@@ -135,7 +135,8 @@ static const struct snd_pcm_hardware had_pcm_hardware = { | |||
135 | SNDRV_PCM_INFO_MMAP | | 135 | SNDRV_PCM_INFO_MMAP | |
136 | SNDRV_PCM_INFO_MMAP_VALID | | 136 | SNDRV_PCM_INFO_MMAP_VALID | |
137 | SNDRV_PCM_INFO_NO_PERIOD_WAKEUP), | 137 | SNDRV_PCM_INFO_NO_PERIOD_WAKEUP), |
138 | .formats = (SNDRV_PCM_FMTBIT_S24_LE | | 138 | .formats = (SNDRV_PCM_FMTBIT_S16_LE | |
139 | SNDRV_PCM_FMTBIT_S24_LE | | ||
139 | SNDRV_PCM_FMTBIT_S32_LE), | 140 | SNDRV_PCM_FMTBIT_S32_LE), |
140 | .rates = SNDRV_PCM_RATE_32000 | | 141 | .rates = SNDRV_PCM_RATE_32000 | |
141 | SNDRV_PCM_RATE_44100 | | 142 | SNDRV_PCM_RATE_44100 | |
@@ -290,12 +291,10 @@ static int had_prog_status_reg(struct snd_pcm_substream *substream, | |||
290 | AUD_CH_STATUS_0, ch_stat0.regval); | 291 | AUD_CH_STATUS_0, ch_stat0.regval); |
291 | 292 | ||
292 | switch (substream->runtime->format) { | 293 | switch (substream->runtime->format) { |
293 | #if 0 /* FIXME: not supported yet */ | ||
294 | case SNDRV_PCM_FORMAT_S16_LE: | 294 | case SNDRV_PCM_FORMAT_S16_LE: |
295 | ch_stat1.regx.max_wrd_len = MAX_SMPL_WIDTH_20; | 295 | ch_stat1.regx.max_wrd_len = MAX_SMPL_WIDTH_20; |
296 | ch_stat1.regx.wrd_len = SMPL_WIDTH_16BITS; | 296 | ch_stat1.regx.wrd_len = SMPL_WIDTH_16BITS; |
297 | break; | 297 | break; |
298 | #endif | ||
299 | case SNDRV_PCM_FORMAT_S24_LE: | 298 | case SNDRV_PCM_FORMAT_S24_LE: |
300 | case SNDRV_PCM_FORMAT_S32_LE: | 299 | case SNDRV_PCM_FORMAT_S32_LE: |
301 | ch_stat1.regx.max_wrd_len = MAX_SMPL_WIDTH_24; | 300 | ch_stat1.regx.max_wrd_len = MAX_SMPL_WIDTH_24; |
@@ -336,6 +335,9 @@ static int had_init_audio_ctrl(struct snd_pcm_substream *substream, | |||
336 | else | 335 | else |
337 | cfg_val.regx.layout = LAYOUT1; | 336 | cfg_val.regx.layout = LAYOUT1; |
338 | 337 | ||
338 | if (substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE) | ||
339 | cfg_val.regx.packet_mode = 1; | ||
340 | |||
339 | if (substream->runtime->format == SNDRV_PCM_FORMAT_S32_LE) | 341 | if (substream->runtime->format == SNDRV_PCM_FORMAT_S32_LE) |
340 | cfg_val.regx.left_align = 1; | 342 | cfg_val.regx.left_align = 1; |
341 | 343 | ||