8 Jan
2016
8 Jan
'16
3:09 p.m.
On Wed, Dec 09, 2015 at 09:46:12PM +0530, Subhransu S. Prusty wrote:
+static int hdac_hdmi_eld_limit_formats(struct snd_pcm_runtime *runtime,
void *eld)
+{
- u64 formats = SNDRV_PCM_FMTBIT_S16;
- int i;
- const u8 *sad, *eld_buf = eld;
- sad = drm_eld_sad(eld_buf);
- if (!sad)
goto format_constraint;
- for (i = drm_eld_sad_count(eld_buf); i > 0; i--, sad += 3) {
if (sad_format(sad) == 1) { /* AUDIO_CODING_TYPE_LPCM */
switch (sad_format(sad)) { case AUDIO_CODING_TYPE_LPCM:
/* 20 bit and 24 bit */
if (sad_sample_bits_lpcm(sad) & 0x6)
formats |= SNDRV_PCM_FMTBIT_S32;
}
- }
I really don't have a clear idea what the above is supposed to do or why this is specific to HDAC and not handled...
- return 0;
- return snd_pcm_hw_constraint_eld(substream->runtime,
dai_map->pin->eld.eld_buffer);
...here.