Lines Matching refs:frame
59 int hdmi_avi_infoframe_init(struct hdmi_avi_infoframe *frame) in hdmi_avi_infoframe_init() argument
61 memset(frame, 0, sizeof(*frame)); in hdmi_avi_infoframe_init()
63 frame->type = HDMI_INFOFRAME_TYPE_AVI; in hdmi_avi_infoframe_init()
64 frame->version = 2; in hdmi_avi_infoframe_init()
65 frame->length = HDMI_AVI_INFOFRAME_SIZE; in hdmi_avi_infoframe_init()
85 ssize_t hdmi_avi_infoframe_pack(struct hdmi_avi_infoframe *frame, void *buffer, in hdmi_avi_infoframe_pack() argument
91 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_avi_infoframe_pack()
98 ptr[0] = frame->type; in hdmi_avi_infoframe_pack()
99 ptr[1] = frame->version; in hdmi_avi_infoframe_pack()
100 ptr[2] = frame->length; in hdmi_avi_infoframe_pack()
106 ptr[0] = ((frame->colorspace & 0x3) << 5) | (frame->scan_mode & 0x3); in hdmi_avi_infoframe_pack()
112 if (frame->active_aspect & 0xf) in hdmi_avi_infoframe_pack()
116 if (frame->top_bar || frame->bottom_bar) in hdmi_avi_infoframe_pack()
119 if (frame->left_bar || frame->right_bar) in hdmi_avi_infoframe_pack()
122 ptr[1] = ((frame->colorimetry & 0x3) << 6) | in hdmi_avi_infoframe_pack()
123 ((frame->picture_aspect & 0x3) << 4) | in hdmi_avi_infoframe_pack()
124 (frame->active_aspect & 0xf); in hdmi_avi_infoframe_pack()
126 ptr[2] = ((frame->extended_colorimetry & 0x7) << 4) | in hdmi_avi_infoframe_pack()
127 ((frame->quantization_range & 0x3) << 2) | in hdmi_avi_infoframe_pack()
128 (frame->nups & 0x3); in hdmi_avi_infoframe_pack()
130 if (frame->itc) in hdmi_avi_infoframe_pack()
133 ptr[3] = frame->video_code & 0x7f; in hdmi_avi_infoframe_pack()
135 ptr[4] = ((frame->ycc_quantization_range & 0x3) << 6) | in hdmi_avi_infoframe_pack()
136 ((frame->content_type & 0x3) << 4) | in hdmi_avi_infoframe_pack()
137 (frame->pixel_repeat & 0xf); in hdmi_avi_infoframe_pack()
139 ptr[5] = frame->top_bar & 0xff; in hdmi_avi_infoframe_pack()
140 ptr[6] = (frame->top_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
141 ptr[7] = frame->bottom_bar & 0xff; in hdmi_avi_infoframe_pack()
142 ptr[8] = (frame->bottom_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
143 ptr[9] = frame->left_bar & 0xff; in hdmi_avi_infoframe_pack()
144 ptr[10] = (frame->left_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
145 ptr[11] = frame->right_bar & 0xff; in hdmi_avi_infoframe_pack()
146 ptr[12] = (frame->right_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
162 int hdmi_spd_infoframe_init(struct hdmi_spd_infoframe *frame, in hdmi_spd_infoframe_init() argument
165 memset(frame, 0, sizeof(*frame)); in hdmi_spd_infoframe_init()
167 frame->type = HDMI_INFOFRAME_TYPE_SPD; in hdmi_spd_infoframe_init()
168 frame->version = 1; in hdmi_spd_infoframe_init()
169 frame->length = HDMI_SPD_INFOFRAME_SIZE; in hdmi_spd_infoframe_init()
171 strncpy(frame->vendor, vendor, sizeof(frame->vendor)); in hdmi_spd_infoframe_init()
172 strncpy(frame->product, product, sizeof(frame->product)); in hdmi_spd_infoframe_init()
192 ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer, in hdmi_spd_infoframe_pack() argument
198 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_spd_infoframe_pack()
205 ptr[0] = frame->type; in hdmi_spd_infoframe_pack()
206 ptr[1] = frame->version; in hdmi_spd_infoframe_pack()
207 ptr[2] = frame->length; in hdmi_spd_infoframe_pack()
213 memcpy(ptr, frame->vendor, sizeof(frame->vendor)); in hdmi_spd_infoframe_pack()
214 memcpy(ptr + 8, frame->product, sizeof(frame->product)); in hdmi_spd_infoframe_pack()
216 ptr[24] = frame->sdi; in hdmi_spd_infoframe_pack()
230 int hdmi_audio_infoframe_init(struct hdmi_audio_infoframe *frame) in hdmi_audio_infoframe_init() argument
232 memset(frame, 0, sizeof(*frame)); in hdmi_audio_infoframe_init()
234 frame->type = HDMI_INFOFRAME_TYPE_AUDIO; in hdmi_audio_infoframe_init()
235 frame->version = 1; in hdmi_audio_infoframe_init()
236 frame->length = HDMI_AUDIO_INFOFRAME_SIZE; in hdmi_audio_infoframe_init()
256 ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame, in hdmi_audio_infoframe_pack() argument
263 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_audio_infoframe_pack()
270 if (frame->channels >= 2) in hdmi_audio_infoframe_pack()
271 channels = frame->channels - 1; in hdmi_audio_infoframe_pack()
275 ptr[0] = frame->type; in hdmi_audio_infoframe_pack()
276 ptr[1] = frame->version; in hdmi_audio_infoframe_pack()
277 ptr[2] = frame->length; in hdmi_audio_infoframe_pack()
283 ptr[0] = ((frame->coding_type & 0xf) << 4) | (channels & 0x7); in hdmi_audio_infoframe_pack()
284 ptr[1] = ((frame->sample_frequency & 0x7) << 2) | in hdmi_audio_infoframe_pack()
285 (frame->sample_size & 0x3); in hdmi_audio_infoframe_pack()
286 ptr[2] = frame->coding_type_ext & 0x1f; in hdmi_audio_infoframe_pack()
287 ptr[3] = frame->channel_allocation; in hdmi_audio_infoframe_pack()
288 ptr[4] = (frame->level_shift_value & 0xf) << 3; in hdmi_audio_infoframe_pack()
290 if (frame->downmix_inhibit) in hdmi_audio_infoframe_pack()
305 int hdmi_vendor_infoframe_init(struct hdmi_vendor_infoframe *frame) in hdmi_vendor_infoframe_init() argument
307 memset(frame, 0, sizeof(*frame)); in hdmi_vendor_infoframe_init()
309 frame->type = HDMI_INFOFRAME_TYPE_VENDOR; in hdmi_vendor_infoframe_init()
310 frame->version = 1; in hdmi_vendor_infoframe_init()
312 frame->oui = HDMI_IEEE_OUI; in hdmi_vendor_infoframe_init()
318 frame->s3d_struct = HDMI_3D_STRUCTURE_INVALID; in hdmi_vendor_infoframe_init()
338 ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame, in hdmi_vendor_infoframe_pack() argument
345 if (frame->vic == 0 && frame->s3d_struct == HDMI_3D_STRUCTURE_INVALID) in hdmi_vendor_infoframe_pack()
349 if (frame->vic != 0 && frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) in hdmi_vendor_infoframe_pack()
353 if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_infoframe_pack()
354 frame->length = 6; in hdmi_vendor_infoframe_pack()
356 frame->length = 5; in hdmi_vendor_infoframe_pack()
358 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_vendor_infoframe_pack()
365 ptr[0] = frame->type; in hdmi_vendor_infoframe_pack()
366 ptr[1] = frame->version; in hdmi_vendor_infoframe_pack()
367 ptr[2] = frame->length; in hdmi_vendor_infoframe_pack()
375 if (frame->vic) { in hdmi_vendor_infoframe_pack()
377 ptr[8] = frame->vic; in hdmi_vendor_infoframe_pack()
380 ptr[8] = (frame->s3d_struct & 0xf) << 4; in hdmi_vendor_infoframe_pack()
381 if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_infoframe_pack()
382 ptr[9] = (frame->s3d_ext_data & 0xf) << 4; in hdmi_vendor_infoframe_pack()
395 hdmi_vendor_any_infoframe_pack(union hdmi_vendor_any_infoframe *frame, in hdmi_vendor_any_infoframe_pack() argument
399 if (frame->any.oui != HDMI_IEEE_OUI) in hdmi_vendor_any_infoframe_pack()
402 return hdmi_vendor_infoframe_pack(&frame->hdmi, buffer, size); in hdmi_vendor_any_infoframe_pack()
420 hdmi_infoframe_pack(union hdmi_infoframe *frame, void *buffer, size_t size) in hdmi_infoframe_pack() argument
424 switch (frame->any.type) { in hdmi_infoframe_pack()
426 length = hdmi_avi_infoframe_pack(&frame->avi, buffer, size); in hdmi_infoframe_pack()
429 length = hdmi_spd_infoframe_pack(&frame->spd, buffer, size); in hdmi_infoframe_pack()
432 length = hdmi_audio_infoframe_pack(&frame->audio, buffer, size); in hdmi_infoframe_pack()
435 length = hdmi_vendor_any_infoframe_pack(&frame->vendor, in hdmi_infoframe_pack()
439 WARN(1, "Bad infoframe type %d\n", frame->any.type); in hdmi_infoframe_pack()
466 struct hdmi_any_infoframe *frame) in hdmi_infoframe_log_header() argument
469 hdmi_infoframe_type_get_name(frame->type), in hdmi_infoframe_log_header()
470 frame->version, frame->length); in hdmi_infoframe_log_header()
664 struct hdmi_avi_infoframe *frame) in hdmi_avi_infoframe_log() argument
667 (struct hdmi_any_infoframe *)frame); in hdmi_avi_infoframe_log()
670 hdmi_colorspace_get_name(frame->colorspace)); in hdmi_avi_infoframe_log()
672 hdmi_scan_mode_get_name(frame->scan_mode)); in hdmi_avi_infoframe_log()
674 hdmi_colorimetry_get_name(frame->colorimetry)); in hdmi_avi_infoframe_log()
676 hdmi_picture_aspect_get_name(frame->picture_aspect)); in hdmi_avi_infoframe_log()
678 hdmi_active_aspect_get_name(frame->active_aspect)); in hdmi_avi_infoframe_log()
679 hdmi_log(" itc: %s\n", frame->itc ? "IT Content" : "No Data"); in hdmi_avi_infoframe_log()
681 hdmi_extended_colorimetry_get_name(frame->extended_colorimetry)); in hdmi_avi_infoframe_log()
683 hdmi_quantization_range_get_name(frame->quantization_range)); in hdmi_avi_infoframe_log()
684 hdmi_log(" nups: %s\n", hdmi_nups_get_name(frame->nups)); in hdmi_avi_infoframe_log()
685 hdmi_log(" video code: %u\n", frame->video_code); in hdmi_avi_infoframe_log()
687 hdmi_ycc_quantization_range_get_name(frame->ycc_quantization_range)); in hdmi_avi_infoframe_log()
689 hdmi_content_type_get_name(frame->content_type)); in hdmi_avi_infoframe_log()
690 hdmi_log(" pixel repeat: %u\n", frame->pixel_repeat); in hdmi_avi_infoframe_log()
692 frame->top_bar, frame->bottom_bar, in hdmi_avi_infoframe_log()
693 frame->left_bar, frame->right_bar); in hdmi_avi_infoframe_log()
741 struct hdmi_spd_infoframe *frame) in hdmi_spd_infoframe_log() argument
746 (struct hdmi_any_infoframe *)frame); in hdmi_spd_infoframe_log()
750 strncpy(buf, frame->vendor, 8); in hdmi_spd_infoframe_log()
752 strncpy(buf, frame->product, 16); in hdmi_spd_infoframe_log()
755 hdmi_spd_sdi_get_name(frame->sdi), frame->sdi); in hdmi_spd_infoframe_log()
877 struct hdmi_audio_infoframe *frame) in hdmi_audio_infoframe_log() argument
880 (struct hdmi_any_infoframe *)frame); in hdmi_audio_infoframe_log()
882 if (frame->channels) in hdmi_audio_infoframe_log()
883 hdmi_log(" channels: %u\n", frame->channels - 1); in hdmi_audio_infoframe_log()
887 hdmi_audio_coding_type_get_name(frame->coding_type)); in hdmi_audio_infoframe_log()
889 hdmi_audio_sample_size_get_name(frame->sample_size)); in hdmi_audio_infoframe_log()
891 hdmi_audio_sample_frequency_get_name(frame->sample_frequency)); in hdmi_audio_infoframe_log()
893 hdmi_audio_coding_type_ext_get_name(frame->coding_type_ext)); in hdmi_audio_infoframe_log()
895 frame->channel_allocation); in hdmi_audio_infoframe_log()
897 frame->level_shift_value); in hdmi_audio_infoframe_log()
899 frame->downmix_inhibit ? "Yes" : "No"); in hdmi_audio_infoframe_log()
940 union hdmi_vendor_any_infoframe *frame) in hdmi_vendor_any_infoframe_log() argument
942 struct hdmi_vendor_infoframe *hvf = &frame->hdmi; in hdmi_vendor_any_infoframe_log()
945 (struct hdmi_any_infoframe *)frame); in hdmi_vendor_any_infoframe_log()
947 if (frame->any.oui != HDMI_IEEE_OUI) { in hdmi_vendor_any_infoframe_log()
975 union hdmi_infoframe *frame) in hdmi_infoframe_log() argument
977 switch (frame->any.type) { in hdmi_infoframe_log()
979 hdmi_avi_infoframe_log(level, dev, &frame->avi); in hdmi_infoframe_log()
982 hdmi_spd_infoframe_log(level, dev, &frame->spd); in hdmi_infoframe_log()
985 hdmi_audio_infoframe_log(level, dev, &frame->audio); in hdmi_infoframe_log()
988 hdmi_vendor_any_infoframe_log(level, dev, &frame->vendor); in hdmi_infoframe_log()
1006 static int hdmi_avi_infoframe_unpack(struct hdmi_avi_infoframe *frame, in hdmi_avi_infoframe_unpack() argument
1020 ret = hdmi_avi_infoframe_init(frame); in hdmi_avi_infoframe_unpack()
1026 frame->colorspace = (ptr[0] >> 5) & 0x3; in hdmi_avi_infoframe_unpack()
1028 frame->active_aspect = ptr[1] & 0xf; in hdmi_avi_infoframe_unpack()
1030 frame->top_bar = (ptr[5] << 8) + ptr[6]; in hdmi_avi_infoframe_unpack()
1031 frame->bottom_bar = (ptr[7] << 8) + ptr[8]; in hdmi_avi_infoframe_unpack()
1034 frame->left_bar = (ptr[9] << 8) + ptr[10]; in hdmi_avi_infoframe_unpack()
1035 frame->right_bar = (ptr[11] << 8) + ptr[12]; in hdmi_avi_infoframe_unpack()
1037 frame->scan_mode = ptr[0] & 0x3; in hdmi_avi_infoframe_unpack()
1039 frame->colorimetry = (ptr[1] >> 6) & 0x3; in hdmi_avi_infoframe_unpack()
1040 frame->picture_aspect = (ptr[1] >> 4) & 0x3; in hdmi_avi_infoframe_unpack()
1041 frame->active_aspect = ptr[1] & 0xf; in hdmi_avi_infoframe_unpack()
1043 frame->itc = ptr[2] & 0x80 ? true : false; in hdmi_avi_infoframe_unpack()
1044 frame->extended_colorimetry = (ptr[2] >> 4) & 0x7; in hdmi_avi_infoframe_unpack()
1045 frame->quantization_range = (ptr[2] >> 2) & 0x3; in hdmi_avi_infoframe_unpack()
1046 frame->nups = ptr[2] & 0x3; in hdmi_avi_infoframe_unpack()
1048 frame->video_code = ptr[3] & 0x7f; in hdmi_avi_infoframe_unpack()
1049 frame->ycc_quantization_range = (ptr[4] >> 6) & 0x3; in hdmi_avi_infoframe_unpack()
1050 frame->content_type = (ptr[4] >> 4) & 0x3; in hdmi_avi_infoframe_unpack()
1052 frame->pixel_repeat = ptr[4] & 0xf; in hdmi_avi_infoframe_unpack()
1069 static int hdmi_spd_infoframe_unpack(struct hdmi_spd_infoframe *frame, in hdmi_spd_infoframe_unpack() argument
1086 ret = hdmi_spd_infoframe_init(frame, ptr, ptr + 8); in hdmi_spd_infoframe_unpack()
1090 frame->sdi = ptr[24]; in hdmi_spd_infoframe_unpack()
1107 static int hdmi_audio_infoframe_unpack(struct hdmi_audio_infoframe *frame, in hdmi_audio_infoframe_unpack() argument
1122 ret = hdmi_audio_infoframe_init(frame); in hdmi_audio_infoframe_unpack()
1128 frame->channels = ptr[0] & 0x7; in hdmi_audio_infoframe_unpack()
1129 frame->coding_type = (ptr[0] >> 4) & 0xf; in hdmi_audio_infoframe_unpack()
1130 frame->sample_size = ptr[1] & 0x3; in hdmi_audio_infoframe_unpack()
1131 frame->sample_frequency = (ptr[1] >> 2) & 0x7; in hdmi_audio_infoframe_unpack()
1132 frame->coding_type_ext = ptr[2] & 0x1f; in hdmi_audio_infoframe_unpack()
1133 frame->channel_allocation = ptr[3]; in hdmi_audio_infoframe_unpack()
1134 frame->level_shift_value = (ptr[4] >> 3) & 0xf; in hdmi_audio_infoframe_unpack()
1135 frame->downmix_inhibit = ptr[4] & 0x80 ? true : false; in hdmi_audio_infoframe_unpack()
1153 hdmi_vendor_any_infoframe_unpack(union hdmi_vendor_any_infoframe *frame, in hdmi_vendor_any_infoframe_unpack() argument
1160 struct hdmi_vendor_infoframe *hvf = &frame->hdmi; in hdmi_vendor_any_infoframe_unpack()
1219 int hdmi_infoframe_unpack(union hdmi_infoframe *frame, void *buffer) in hdmi_infoframe_unpack() argument
1226 ret = hdmi_avi_infoframe_unpack(&frame->avi, buffer); in hdmi_infoframe_unpack()
1229 ret = hdmi_spd_infoframe_unpack(&frame->spd, buffer); in hdmi_infoframe_unpack()
1232 ret = hdmi_audio_infoframe_unpack(&frame->audio, buffer); in hdmi_infoframe_unpack()
1235 ret = hdmi_vendor_any_infoframe_unpack(&frame->vendor, buffer); in hdmi_infoframe_unpack()