Lines Matching +full:4 +full:e
30 CEA_EDID_VER_RESERVED = 4,
33 static const char * const eld_connection_type_names[4] = {
45 AUDIO_CODING_TYPE_MP3 = 4,
68 AUDIO_CODING_XTYPE_FIRST_RESERVED = 4,
76 /* 4 */ "MP3",
82 /* 10 */ "E-AC-3/DD+ (Dolby Digital Plus)",
95 * - CEA E-EDID Extension (sink to source)
101 static const int cea_sample_sizes[4] = {
116 SNDRV_PCM_RATE_88200, /* 4: 88200Hz */
163 a->format = GRAB_BITS(buf, 0, 3, 4); in hdmi_update_short_audio_desc()
224 int snd_hdmi_parse_eld(struct hda_codec *codec, struct parsed_hdmi_eld *e, in snd_hdmi_parse_eld() argument
230 memset(e, 0, sizeof(*e)); in snd_hdmi_parse_eld()
231 e->eld_ver = GRAB_BITS(buf, 0, 3, 5); in snd_hdmi_parse_eld()
232 if (e->eld_ver != ELD_VER_CEA_861D && in snd_hdmi_parse_eld()
233 e->eld_ver != ELD_VER_PARTIAL) { in snd_hdmi_parse_eld()
234 codec_info(codec, "HDMI: Unknown ELD version %d\n", e->eld_ver); in snd_hdmi_parse_eld()
238 e->baseline_len = GRAB_BITS(buf, 2, 0, 8); in snd_hdmi_parse_eld()
239 mnl = GRAB_BITS(buf, 4, 0, 5); in snd_hdmi_parse_eld()
240 e->cea_edid_ver = GRAB_BITS(buf, 4, 5, 3); in snd_hdmi_parse_eld()
242 e->support_hdcp = GRAB_BITS(buf, 5, 0, 1); in snd_hdmi_parse_eld()
243 e->support_ai = GRAB_BITS(buf, 5, 1, 1); in snd_hdmi_parse_eld()
244 e->conn_type = GRAB_BITS(buf, 5, 2, 2); in snd_hdmi_parse_eld()
245 e->sad_count = GRAB_BITS(buf, 5, 4, 4); in snd_hdmi_parse_eld()
247 e->aud_synch_delay = GRAB_BITS(buf, 6, 0, 8) * 2; in snd_hdmi_parse_eld()
248 e->spk_alloc = GRAB_BITS(buf, 7, 0, 7); in snd_hdmi_parse_eld()
250 e->port_id = get_unaligned_le64(buf + 8); in snd_hdmi_parse_eld()
253 e->manufacture_id = get_unaligned_le16(buf + 16); in snd_hdmi_parse_eld()
254 e->product_id = get_unaligned_le16(buf + 18); in snd_hdmi_parse_eld()
263 strscpy(e->monitor_name, buf + ELD_FIXED_BYTES, mnl + 1); in snd_hdmi_parse_eld()
265 for (i = 0; i < e->sad_count; i++) { in snd_hdmi_parse_eld()
270 hdmi_update_short_audio_desc(codec, e->sad + i, in snd_hdmi_parse_eld()
275 * HDMI sink's ELD info cannot always be retrieved for now, e.g. in snd_hdmi_parse_eld()
279 if (!e->spk_alloc) in snd_hdmi_parse_eld()
280 e->spk_alloc = 0xffff; in snd_hdmi_parse_eld()
396 void snd_hdmi_show_eld(struct hda_codec *codec, struct parsed_hdmi_eld *e) in snd_hdmi_show_eld() argument
401 e->monitor_name, in snd_hdmi_show_eld()
402 eld_connection_type_names[e->conn_type]); in snd_hdmi_show_eld()
404 if (e->spk_alloc) { in snd_hdmi_show_eld()
406 snd_hdac_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); in snd_hdmi_show_eld()
410 for (i = 0; i < e->sad_count; i++) in snd_hdmi_show_eld()
411 hdmi_show_short_audio_desc(codec, e->sad + i); in snd_hdmi_show_eld()
446 struct parsed_hdmi_eld *e = &eld->info; in snd_hdmi_print_eld_info() local
461 [4 ... 7] = "reserved" in snd_hdmi_print_eld_info()
471 snd_iprintf(buffer, "monitor_name\t\t%s\n", e->monitor_name); in snd_hdmi_print_eld_info()
473 eld_connection_type_names[e->conn_type]); in snd_hdmi_print_eld_info()
474 snd_iprintf(buffer, "eld_version\t\t[0x%x] %s\n", e->eld_ver, in snd_hdmi_print_eld_info()
475 eld_version_names[e->eld_ver]); in snd_hdmi_print_eld_info()
476 snd_iprintf(buffer, "edid_version\t\t[0x%x] %s\n", e->cea_edid_ver, in snd_hdmi_print_eld_info()
477 cea_edid_version_names[e->cea_edid_ver]); in snd_hdmi_print_eld_info()
478 snd_iprintf(buffer, "manufacture_id\t\t0x%x\n", e->manufacture_id); in snd_hdmi_print_eld_info()
479 snd_iprintf(buffer, "product_id\t\t0x%x\n", e->product_id); in snd_hdmi_print_eld_info()
480 snd_iprintf(buffer, "port_id\t\t\t0x%llx\n", (long long)e->port_id); in snd_hdmi_print_eld_info()
481 snd_iprintf(buffer, "support_hdcp\t\t%d\n", e->support_hdcp); in snd_hdmi_print_eld_info()
482 snd_iprintf(buffer, "support_ai\t\t%d\n", e->support_ai); in snd_hdmi_print_eld_info()
483 snd_iprintf(buffer, "audio_sync_delay\t%d\n", e->aud_synch_delay); in snd_hdmi_print_eld_info()
485 snd_hdac_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); in snd_hdmi_print_eld_info()
486 snd_iprintf(buffer, "speakers\t\t[0x%x]%s\n", e->spk_alloc, buf); in snd_hdmi_print_eld_info()
488 snd_iprintf(buffer, "sad_count\t\t%d\n", e->sad_count); in snd_hdmi_print_eld_info()
490 for (i = 0; i < e->sad_count; i++) in snd_hdmi_print_eld_info()
491 hdmi_print_sad_info(i, e->sad + i, buffer); in snd_hdmi_print_eld_info()
497 struct parsed_hdmi_eld *e = &eld->info; in snd_hdmi_write_eld_info() local
517 e->conn_type = val; in snd_hdmi_write_eld_info()
519 e->port_id = val; in snd_hdmi_write_eld_info()
521 e->support_hdcp = val; in snd_hdmi_write_eld_info()
523 e->support_ai = val; in snd_hdmi_write_eld_info()
525 e->aud_synch_delay = val; in snd_hdmi_write_eld_info()
527 e->spk_alloc = val; in snd_hdmi_write_eld_info()
529 e->sad_count = val; in snd_hdmi_write_eld_info()
531 sname = name + 4; in snd_hdmi_write_eld_info()
533 if (name[4] >= '0' && name[4] <= '9') { in snd_hdmi_write_eld_info()
535 n = 10 * n + name[4] - '0'; in snd_hdmi_write_eld_info()
540 e->sad[n].format = val; in snd_hdmi_write_eld_info()
542 e->sad[n].channels = val; in snd_hdmi_write_eld_info()
544 e->sad[n].rates = val; in snd_hdmi_write_eld_info()
546 e->sad[n].sample_bits = val; in snd_hdmi_write_eld_info()
548 e->sad[n].max_bitrate = val; in snd_hdmi_write_eld_info()
550 e->sad[n].profile = val; in snd_hdmi_write_eld_info()
551 if (n >= e->sad_count) in snd_hdmi_write_eld_info()
552 e->sad_count = n + 1; in snd_hdmi_write_eld_info()
559 void snd_hdmi_eld_update_pcm_info(struct parsed_hdmi_eld *e, in snd_hdmi_eld_update_pcm_info() argument
576 for (i = 0; i < e->sad_count; i++) { in snd_hdmi_eld_update_pcm_info()
577 struct cea_sad *a = &e->sad[i]; in snd_hdmi_eld_update_pcm_info()
631 ATI_INFO_IDX_PORT_ID_HIGH = 4,
694 buf[4] |= sink_desc_len; in snd_hdmi_get_eld_ati()
760 buf[5] |= ((pos - ELD_FIXED_BYTES - sink_desc_len) / 3) << 4; in snd_hdmi_get_eld_ati()
762 /* Baseline ELD block length is 4-byte aligned */ in snd_hdmi_get_eld_ati()
763 pos = round_up(pos, 4); in snd_hdmi_get_eld_ati()
765 /* Baseline ELD length (4-byte header is not counted in) */ in snd_hdmi_get_eld_ati()
766 buf[2] = (pos - 4) / 4; in snd_hdmi_get_eld_ati()