Lines Matching full:frame
55 * @frame: HDMI AVI infoframe
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()
73 * @frame: HDMI AVI infoframe
77 * Packs the information contained in the @frame structure into a binary
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()
96 if (frame->picture_aspect > HDMI_PICTURE_ASPECT_16_9) in hdmi_avi_infoframe_pack()
101 ptr[0] = frame->type; in hdmi_avi_infoframe_pack()
102 ptr[1] = frame->version; in hdmi_avi_infoframe_pack()
103 ptr[2] = frame->length; in hdmi_avi_infoframe_pack()
109 ptr[0] = ((frame->colorspace & 0x3) << 5) | (frame->scan_mode & 0x3); in hdmi_avi_infoframe_pack()
115 if (frame->active_aspect & 0xf) in hdmi_avi_infoframe_pack()
119 if (frame->top_bar || frame->bottom_bar) in hdmi_avi_infoframe_pack()
122 if (frame->left_bar || frame->right_bar) in hdmi_avi_infoframe_pack()
125 ptr[1] = ((frame->colorimetry & 0x3) << 6) | in hdmi_avi_infoframe_pack()
126 ((frame->picture_aspect & 0x3) << 4) | in hdmi_avi_infoframe_pack()
127 (frame->active_aspect & 0xf); in hdmi_avi_infoframe_pack()
129 ptr[2] = ((frame->extended_colorimetry & 0x7) << 4) | in hdmi_avi_infoframe_pack()
130 ((frame->quantization_range & 0x3) << 2) | in hdmi_avi_infoframe_pack()
131 (frame->nups & 0x3); in hdmi_avi_infoframe_pack()
133 if (frame->itc) in hdmi_avi_infoframe_pack()
136 ptr[3] = frame->video_code & 0x7f; in hdmi_avi_infoframe_pack()
138 ptr[4] = ((frame->ycc_quantization_range & 0x3) << 6) | in hdmi_avi_infoframe_pack()
139 ((frame->content_type & 0x3) << 4) | in hdmi_avi_infoframe_pack()
140 (frame->pixel_repeat & 0xf); in hdmi_avi_infoframe_pack()
142 ptr[5] = frame->top_bar & 0xff; in hdmi_avi_infoframe_pack()
143 ptr[6] = (frame->top_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
144 ptr[7] = frame->bottom_bar & 0xff; in hdmi_avi_infoframe_pack()
145 ptr[8] = (frame->bottom_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
146 ptr[9] = frame->left_bar & 0xff; in hdmi_avi_infoframe_pack()
147 ptr[10] = (frame->left_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
148 ptr[11] = frame->right_bar & 0xff; in hdmi_avi_infoframe_pack()
149 ptr[12] = (frame->right_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
159 * @frame: HDMI SPD infoframe
165 int hdmi_spd_infoframe_init(struct hdmi_spd_infoframe *frame, in hdmi_spd_infoframe_init() argument
168 memset(frame, 0, sizeof(*frame)); in hdmi_spd_infoframe_init()
170 frame->type = HDMI_INFOFRAME_TYPE_SPD; in hdmi_spd_infoframe_init()
171 frame->version = 1; in hdmi_spd_infoframe_init()
172 frame->length = HDMI_SPD_INFOFRAME_SIZE; in hdmi_spd_infoframe_init()
174 strncpy(frame->vendor, vendor, sizeof(frame->vendor)); in hdmi_spd_infoframe_init()
175 strncpy(frame->product, product, sizeof(frame->product)); in hdmi_spd_infoframe_init()
183 * @frame: HDMI SPD infoframe
187 * Packs the information contained in the @frame structure into a binary
195 ssize_t hdmi_spd_infoframe_pack(struct hdmi_spd_infoframe *frame, void *buffer, in hdmi_spd_infoframe_pack() argument
201 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_spd_infoframe_pack()
208 ptr[0] = frame->type; in hdmi_spd_infoframe_pack()
209 ptr[1] = frame->version; in hdmi_spd_infoframe_pack()
210 ptr[2] = frame->length; in hdmi_spd_infoframe_pack()
216 memcpy(ptr, frame->vendor, sizeof(frame->vendor)); in hdmi_spd_infoframe_pack()
217 memcpy(ptr + 8, frame->product, sizeof(frame->product)); in hdmi_spd_infoframe_pack()
219 ptr[24] = frame->sdi; in hdmi_spd_infoframe_pack()
229 * @frame: HDMI audio infoframe
233 int hdmi_audio_infoframe_init(struct hdmi_audio_infoframe *frame) in hdmi_audio_infoframe_init() argument
235 memset(frame, 0, sizeof(*frame)); in hdmi_audio_infoframe_init()
237 frame->type = HDMI_INFOFRAME_TYPE_AUDIO; in hdmi_audio_infoframe_init()
238 frame->version = 1; in hdmi_audio_infoframe_init()
239 frame->length = HDMI_AUDIO_INFOFRAME_SIZE; in hdmi_audio_infoframe_init()
247 * @frame: HDMI audio infoframe
251 * Packs the information contained in the @frame structure into a binary
259 ssize_t hdmi_audio_infoframe_pack(struct hdmi_audio_infoframe *frame, in hdmi_audio_infoframe_pack() argument
266 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_audio_infoframe_pack()
273 if (frame->channels >= 2) in hdmi_audio_infoframe_pack()
274 channels = frame->channels - 1; in hdmi_audio_infoframe_pack()
278 ptr[0] = frame->type; in hdmi_audio_infoframe_pack()
279 ptr[1] = frame->version; in hdmi_audio_infoframe_pack()
280 ptr[2] = frame->length; in hdmi_audio_infoframe_pack()
286 ptr[0] = ((frame->coding_type & 0xf) << 4) | (channels & 0x7); in hdmi_audio_infoframe_pack()
287 ptr[1] = ((frame->sample_frequency & 0x7) << 2) | in hdmi_audio_infoframe_pack()
288 (frame->sample_size & 0x3); in hdmi_audio_infoframe_pack()
289 ptr[2] = frame->coding_type_ext & 0x1f; in hdmi_audio_infoframe_pack()
290 ptr[3] = frame->channel_allocation; in hdmi_audio_infoframe_pack()
291 ptr[4] = (frame->level_shift_value & 0xf) << 3; in hdmi_audio_infoframe_pack()
293 if (frame->downmix_inhibit) in hdmi_audio_infoframe_pack()
304 * @frame: HDMI vendor infoframe
308 int hdmi_vendor_infoframe_init(struct hdmi_vendor_infoframe *frame) in hdmi_vendor_infoframe_init() argument
310 memset(frame, 0, sizeof(*frame)); in hdmi_vendor_infoframe_init()
312 frame->type = HDMI_INFOFRAME_TYPE_VENDOR; in hdmi_vendor_infoframe_init()
313 frame->version = 1; in hdmi_vendor_infoframe_init()
315 frame->oui = HDMI_IEEE_OUI; in hdmi_vendor_infoframe_init()
321 frame->s3d_struct = HDMI_3D_STRUCTURE_INVALID; in hdmi_vendor_infoframe_init()
327 static int hdmi_vendor_infoframe_length(const struct hdmi_vendor_infoframe *frame) in hdmi_vendor_infoframe_length() argument
330 if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_infoframe_length()
332 else if (frame->vic != 0 || frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) in hdmi_vendor_infoframe_length()
340 * @frame: HDMI infoframe
344 * Packs the information contained in the @frame structure into a binary
352 ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame, in hdmi_vendor_infoframe_pack() argument
359 if (frame->vic != 0 && frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) in hdmi_vendor_infoframe_pack()
362 frame->length = hdmi_vendor_infoframe_length(frame); in hdmi_vendor_infoframe_pack()
364 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_vendor_infoframe_pack()
371 ptr[0] = frame->type; in hdmi_vendor_infoframe_pack()
372 ptr[1] = frame->version; in hdmi_vendor_infoframe_pack()
373 ptr[2] = frame->length; in hdmi_vendor_infoframe_pack()
381 if (frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) { in hdmi_vendor_infoframe_pack()
383 ptr[8] = (frame->s3d_struct & 0xf) << 4; in hdmi_vendor_infoframe_pack()
384 if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_infoframe_pack()
385 ptr[9] = (frame->s3d_ext_data & 0xf) << 4; in hdmi_vendor_infoframe_pack()
386 } else if (frame->vic) { in hdmi_vendor_infoframe_pack()
388 ptr[8] = frame->vic; in hdmi_vendor_infoframe_pack()
403 hdmi_vendor_any_infoframe_pack(union hdmi_vendor_any_infoframe *frame, in hdmi_vendor_any_infoframe_pack() argument
407 if (frame->any.oui != HDMI_IEEE_OUI) in hdmi_vendor_any_infoframe_pack()
410 return hdmi_vendor_infoframe_pack(&frame->hdmi, buffer, size); in hdmi_vendor_any_infoframe_pack()
415 * @frame: HDMI infoframe
419 * Packs the information contained in the @frame structure into a binary
428 hdmi_infoframe_pack(union hdmi_infoframe *frame, void *buffer, size_t size) in hdmi_infoframe_pack() argument
432 switch (frame->any.type) { in hdmi_infoframe_pack()
434 length = hdmi_avi_infoframe_pack(&frame->avi, buffer, size); in hdmi_infoframe_pack()
437 length = hdmi_spd_infoframe_pack(&frame->spd, buffer, size); in hdmi_infoframe_pack()
440 length = hdmi_audio_infoframe_pack(&frame->audio, buffer, size); in hdmi_infoframe_pack()
443 length = hdmi_vendor_any_infoframe_pack(&frame->vendor, in hdmi_infoframe_pack()
447 WARN(1, "Bad infoframe type %d\n", frame->any.type); in hdmi_infoframe_pack()
474 struct hdmi_any_infoframe *frame) in hdmi_infoframe_log_header() argument
477 hdmi_infoframe_type_get_name(frame->type), in hdmi_infoframe_log_header()
478 frame->version, frame->length); in hdmi_infoframe_log_header()
672 * @frame: HDMI AVI infoframe
676 struct hdmi_avi_infoframe *frame) in hdmi_avi_infoframe_log() argument
679 (struct hdmi_any_infoframe *)frame); in hdmi_avi_infoframe_log()
682 hdmi_colorspace_get_name(frame->colorspace)); in hdmi_avi_infoframe_log()
684 hdmi_scan_mode_get_name(frame->scan_mode)); in hdmi_avi_infoframe_log()
686 hdmi_colorimetry_get_name(frame->colorimetry)); in hdmi_avi_infoframe_log()
688 hdmi_picture_aspect_get_name(frame->picture_aspect)); in hdmi_avi_infoframe_log()
690 hdmi_active_aspect_get_name(frame->active_aspect)); in hdmi_avi_infoframe_log()
691 hdmi_log(" itc: %s\n", frame->itc ? "IT Content" : "No Data"); in hdmi_avi_infoframe_log()
693 hdmi_extended_colorimetry_get_name(frame->extended_colorimetry)); in hdmi_avi_infoframe_log()
695 hdmi_quantization_range_get_name(frame->quantization_range)); in hdmi_avi_infoframe_log()
696 hdmi_log(" nups: %s\n", hdmi_nups_get_name(frame->nups)); in hdmi_avi_infoframe_log()
697 hdmi_log(" video code: %u\n", frame->video_code); in hdmi_avi_infoframe_log()
699 hdmi_ycc_quantization_range_get_name(frame->ycc_quantization_range)); in hdmi_avi_infoframe_log()
701 hdmi_content_type_get_name(frame->content_type)); in hdmi_avi_infoframe_log()
702 hdmi_log(" pixel repeat: %u\n", frame->pixel_repeat); in hdmi_avi_infoframe_log()
704 frame->top_bar, frame->bottom_bar, in hdmi_avi_infoframe_log()
705 frame->left_bar, frame->right_bar); in hdmi_avi_infoframe_log()
749 * @frame: HDMI SPD infoframe
753 struct hdmi_spd_infoframe *frame) in hdmi_spd_infoframe_log() argument
758 (struct hdmi_any_infoframe *)frame); in hdmi_spd_infoframe_log()
762 strncpy(buf, frame->vendor, 8); in hdmi_spd_infoframe_log()
764 strncpy(buf, frame->product, 16); in hdmi_spd_infoframe_log()
767 hdmi_spd_sdi_get_name(frame->sdi), frame->sdi); in hdmi_spd_infoframe_log()
885 * @frame: HDMI AUDIO infoframe
889 struct hdmi_audio_infoframe *frame) in hdmi_audio_infoframe_log() argument
892 (struct hdmi_any_infoframe *)frame); in hdmi_audio_infoframe_log()
894 if (frame->channels) in hdmi_audio_infoframe_log()
895 hdmi_log(" channels: %u\n", frame->channels - 1); in hdmi_audio_infoframe_log()
899 hdmi_audio_coding_type_get_name(frame->coding_type)); in hdmi_audio_infoframe_log()
901 hdmi_audio_sample_size_get_name(frame->sample_size)); in hdmi_audio_infoframe_log()
903 hdmi_audio_sample_frequency_get_name(frame->sample_frequency)); in hdmi_audio_infoframe_log()
905 hdmi_audio_coding_type_ext_get_name(frame->coding_type_ext)); in hdmi_audio_infoframe_log()
907 frame->channel_allocation); in hdmi_audio_infoframe_log()
909 frame->level_shift_value); in hdmi_audio_infoframe_log()
911 frame->downmix_inhibit ? "Yes" : "No"); in hdmi_audio_infoframe_log()
922 return "Frame Packing"; in hdmi_3d_structure_get_name()
947 * @frame: HDMI VENDOR infoframe
952 union hdmi_vendor_any_infoframe *frame) in hdmi_vendor_any_infoframe_log() argument
954 struct hdmi_vendor_infoframe *hvf = &frame->hdmi; in hdmi_vendor_any_infoframe_log()
957 (struct hdmi_any_infoframe *)frame); in hdmi_vendor_any_infoframe_log()
959 if (frame->any.oui != HDMI_IEEE_OUI) { in hdmi_vendor_any_infoframe_log()
964 hdmi_log(" empty frame\n"); in hdmi_vendor_any_infoframe_log()
983 * @frame: HDMI infoframe
987 union hdmi_infoframe *frame) in hdmi_infoframe_log() argument
989 switch (frame->any.type) { in hdmi_infoframe_log()
991 hdmi_avi_infoframe_log(level, dev, &frame->avi); in hdmi_infoframe_log()
994 hdmi_spd_infoframe_log(level, dev, &frame->spd); in hdmi_infoframe_log()
997 hdmi_audio_infoframe_log(level, dev, &frame->audio); in hdmi_infoframe_log()
1000 hdmi_vendor_any_infoframe_log(level, dev, &frame->vendor); in hdmi_infoframe_log()
1009 * @frame: HDMI AVI infoframe
1012 * @frame of the HDMI Auxiliary Video (AVI) information frame.
1018 static int hdmi_avi_infoframe_unpack(struct hdmi_avi_infoframe *frame, in hdmi_avi_infoframe_unpack() argument
1032 ret = hdmi_avi_infoframe_init(frame); in hdmi_avi_infoframe_unpack()
1038 frame->colorspace = (ptr[0] >> 5) & 0x3; in hdmi_avi_infoframe_unpack()
1040 frame->active_aspect = ptr[1] & 0xf; in hdmi_avi_infoframe_unpack()
1042 frame->top_bar = (ptr[6] << 8) | ptr[5]; in hdmi_avi_infoframe_unpack()
1043 frame->bottom_bar = (ptr[8] << 8) | ptr[7]; in hdmi_avi_infoframe_unpack()
1046 frame->left_bar = (ptr[10] << 8) | ptr[9]; in hdmi_avi_infoframe_unpack()
1047 frame->right_bar = (ptr[12] << 8) | ptr[11]; in hdmi_avi_infoframe_unpack()
1049 frame->scan_mode = ptr[0] & 0x3; in hdmi_avi_infoframe_unpack()
1051 frame->colorimetry = (ptr[1] >> 6) & 0x3; in hdmi_avi_infoframe_unpack()
1052 frame->picture_aspect = (ptr[1] >> 4) & 0x3; in hdmi_avi_infoframe_unpack()
1053 frame->active_aspect = ptr[1] & 0xf; in hdmi_avi_infoframe_unpack()
1055 frame->itc = ptr[2] & 0x80 ? true : false; in hdmi_avi_infoframe_unpack()
1056 frame->extended_colorimetry = (ptr[2] >> 4) & 0x7; in hdmi_avi_infoframe_unpack()
1057 frame->quantization_range = (ptr[2] >> 2) & 0x3; in hdmi_avi_infoframe_unpack()
1058 frame->nups = ptr[2] & 0x3; in hdmi_avi_infoframe_unpack()
1060 frame->video_code = ptr[3] & 0x7f; in hdmi_avi_infoframe_unpack()
1061 frame->ycc_quantization_range = (ptr[4] >> 6) & 0x3; in hdmi_avi_infoframe_unpack()
1062 frame->content_type = (ptr[4] >> 4) & 0x3; in hdmi_avi_infoframe_unpack()
1064 frame->pixel_repeat = ptr[4] & 0xf; in hdmi_avi_infoframe_unpack()
1072 * @frame: HDMI SPD infoframe
1075 * @frame of the HDMI Source Product Description (SPD) information frame.
1081 static int hdmi_spd_infoframe_unpack(struct hdmi_spd_infoframe *frame, in hdmi_spd_infoframe_unpack() argument
1098 ret = hdmi_spd_infoframe_init(frame, ptr, ptr + 8); in hdmi_spd_infoframe_unpack()
1102 frame->sdi = ptr[24]; in hdmi_spd_infoframe_unpack()
1110 * @frame: HDMI Audio infoframe
1113 * @frame of the HDMI Audio information frame.
1119 static int hdmi_audio_infoframe_unpack(struct hdmi_audio_infoframe *frame, in hdmi_audio_infoframe_unpack() argument
1134 ret = hdmi_audio_infoframe_init(frame); in hdmi_audio_infoframe_unpack()
1140 frame->channels = ptr[0] & 0x7; in hdmi_audio_infoframe_unpack()
1141 frame->coding_type = (ptr[0] >> 4) & 0xf; in hdmi_audio_infoframe_unpack()
1142 frame->sample_size = ptr[1] & 0x3; in hdmi_audio_infoframe_unpack()
1143 frame->sample_frequency = (ptr[1] >> 2) & 0x7; in hdmi_audio_infoframe_unpack()
1144 frame->coding_type_ext = ptr[2] & 0x1f; in hdmi_audio_infoframe_unpack()
1145 frame->channel_allocation = ptr[3]; in hdmi_audio_infoframe_unpack()
1146 frame->level_shift_value = (ptr[4] >> 3) & 0xf; in hdmi_audio_infoframe_unpack()
1147 frame->downmix_inhibit = ptr[4] & 0x80 ? true : false; in hdmi_audio_infoframe_unpack()
1155 * @frame: HDMI Vendor infoframe
1158 * @frame of the HDMI Vendor information frame.
1165 hdmi_vendor_any_infoframe_unpack(union hdmi_vendor_any_infoframe *frame, in hdmi_vendor_any_infoframe_unpack() argument
1172 struct hdmi_vendor_infoframe *hvf = &frame->hdmi; in hdmi_vendor_any_infoframe_unpack()
1228 * @frame: HDMI infoframe
1231 * @frame of a HDMI infoframe.
1237 int hdmi_infoframe_unpack(union hdmi_infoframe *frame, void *buffer) in hdmi_infoframe_unpack() argument
1244 ret = hdmi_avi_infoframe_unpack(&frame->avi, buffer); in hdmi_infoframe_unpack()
1247 ret = hdmi_spd_infoframe_unpack(&frame->spd, buffer); in hdmi_infoframe_unpack()
1250 ret = hdmi_audio_infoframe_unpack(&frame->audio, buffer); in hdmi_infoframe_unpack()
1253 ret = hdmi_vendor_any_infoframe_unpack(&frame->vendor, buffer); in hdmi_infoframe_unpack()