Lines Matching refs:msg
44 allegro_enc_init(u32 *dst, struct mcu_msg_init_request *msg)
47 enum mcu_msg_version version = msg->header.version;
49 dst[i++] = msg->reserved0;
50 dst[i++] = msg->suballoc_dma;
51 dst[i++] = msg->suballoc_size;
52 dst[i++] = msg->encoder_buffer_size;
53 dst[i++] = msg->encoder_buffer_color_depth;
54 dst[i++] = msg->num_cores;
56 dst[i++] = msg->clk_rate;
233 allegro_enc_create_channel(u32 *dst, struct mcu_msg_create_channel *msg)
235 enum mcu_msg_version version = msg->header.version;
238 dst[i++] = msg->user_id;
241 dst[i++] = msg->blob_mcu_addr;
243 memcpy(&dst[i], msg->blob, msg->blob_size);
244 i += msg->blob_size / sizeof(*dst);
248 dst[i++] = msg->ep1_addr;
254 struct mcu_msg_create_channel_response *msg,
257 enum mcu_msg_version version = msg->header.version;
263 param->num_ref_idx_l0 = msg->num_ref_idx_l0;
264 param->num_ref_idx_l1 = msg->num_ref_idx_l1;
271 allegro_enc_destroy_channel(u32 *dst, struct mcu_msg_destroy_channel *msg)
275 dst[i++] = msg->channel_id;
281 allegro_enc_push_buffers(u32 *dst, struct mcu_msg_push_buffers_internal *msg)
285 unsigned int num_buffers = msg->num_buffers;
288 dst[i++] = msg->channel_id;
291 buffer = &msg->buffer[j];
302 struct mcu_msg_put_stream_buffer *msg)
306 dst[i++] = msg->channel_id;
307 dst[i++] = msg->dma_addr;
308 dst[i++] = msg->mcu_addr;
309 dst[i++] = msg->size;
310 dst[i++] = msg->offset;
311 dst[i++] = lower_32_bits(msg->dst_handle);
312 dst[i++] = upper_32_bits(msg->dst_handle);
318 allegro_enc_encode_frame(u32 *dst, struct mcu_msg_encode_frame *msg)
320 enum mcu_msg_version version = msg->header.version;
323 dst[i++] = msg->channel_id;
325 dst[i++] = msg->reserved;
326 dst[i++] = msg->encoding_options;
327 dst[i++] = FIELD_PREP(GENMASK(31, 16), msg->padding) |
328 FIELD_PREP(GENMASK(15, 0), msg->pps_qp);
337 dst[i++] = lower_32_bits(msg->user_param);
338 dst[i++] = upper_32_bits(msg->user_param);
339 dst[i++] = lower_32_bits(msg->src_handle);
340 dst[i++] = upper_32_bits(msg->src_handle);
341 dst[i++] = msg->request_options;
342 dst[i++] = msg->src_y;
343 dst[i++] = msg->src_uv;
345 dst[i++] = msg->is_10_bit;
346 dst[i++] = msg->stride;
348 dst[i++] = msg->format;
349 dst[i++] = msg->ep2;
350 dst[i++] = lower_32_bits(msg->ep2_v);
351 dst[i++] = upper_32_bits(msg->ep2_v);
357 allegro_dec_init(struct mcu_msg_init_response *msg, u32 *src)
361 msg->reserved0 = src[i++];
367 allegro_dec_create_channel(struct mcu_msg_create_channel_response *msg,
370 enum mcu_msg_version version = msg->header.version;
373 msg->channel_id = src[i++];
374 msg->user_id = src[i++];
380 msg->options = src[i++];
381 msg->num_core = src[i++];
382 msg->num_ref_idx_l0 = FIELD_GET(GENMASK(7, 4), src[i]);
383 msg->num_ref_idx_l1 = FIELD_GET(GENMASK(11, 8), src[i++]);
385 msg->int_buffers_count = src[i++];
386 msg->int_buffers_size = src[i++];
387 msg->rec_buffers_count = src[i++];
388 msg->rec_buffers_size = src[i++];
389 msg->reserved = src[i++];
390 msg->error_code = src[i++];
396 allegro_dec_destroy_channel(struct mcu_msg_destroy_channel_response *msg,
401 msg->channel_id = src[i++];
407 allegro_dec_encode_frame(struct mcu_msg_encode_frame_response *msg, u32 *src)
409 enum mcu_msg_version version = msg->header.version;
413 msg->channel_id = src[i++];
415 msg->dst_handle = src[i++];
416 msg->dst_handle |= (((u64)src[i++]) << 32);
417 msg->user_param = src[i++];
418 msg->user_param |= (((u64)src[i++]) << 32);
419 msg->src_handle = src[i++];
420 msg->src_handle |= (((u64)src[i++]) << 32);
421 msg->skip = FIELD_GET(GENMASK(31, 16), src[i]);
422 msg->is_ref = FIELD_GET(GENMASK(15, 0), src[i++]);
423 msg->initial_removal_delay = src[i++];
424 msg->dpb_output_delay = src[i++];
425 msg->size = src[i++];
426 msg->frame_tag_size = src[i++];
427 msg->stuffing = src[i++];
428 msg->filler = src[i++];
429 msg->num_row = FIELD_GET(GENMASK(31, 16), src[i]);
430 msg->num_column = FIELD_GET(GENMASK(15, 0), src[i++]);
431 msg->num_ref_idx_l1 = FIELD_GET(GENMASK(31, 24), src[i]);
432 msg->num_ref_idx_l0 = FIELD_GET(GENMASK(23, 16), src[i]);
433 msg->qp = FIELD_GET(GENMASK(15, 0), src[i++]);
434 msg->partition_table_offset = src[i++];
435 msg->partition_table_size = src[i++];
436 msg->sum_complex = src[i++];
438 msg->tile_width[j] = src[i++];
440 msg->tile_height[j] = src[i++];
441 msg->error_code = src[i++];
442 msg->slice_type = src[i++];
443 msg->pic_struct = src[i++];
444 msg->reserved = FIELD_GET(GENMASK(31, 24), src[i]);
445 msg->is_last_slice = FIELD_GET(GENMASK(23, 16), src[i]);
446 msg->is_first_slice = FIELD_GET(GENMASK(15, 8), src[i]);
447 msg->is_idr = FIELD_GET(GENMASK(7, 0), src[i++]);
449 msg->reserved1 = FIELD_GET(GENMASK(31, 16), src[i]);
450 msg->pps_qp = FIELD_GET(GENMASK(15, 0), src[i++]);
452 msg->reserved2 = src[i++];
454 msg->reserved3 = src[i++];
455 msg->reserved4 = src[i++];
456 msg->reserved5 = src[i++];
457 msg->reserved6 = src[i++];
466 * @msg: The allegro message that will be encoded
468 ssize_t allegro_encode_mail(u32 *dst, void *msg)
470 const struct mcu_msg_header *header = msg;
473 if (!msg || !dst)
478 size = allegro_enc_init(&dst[1], msg);
481 size = allegro_enc_create_channel(&dst[1], msg);
484 size = allegro_enc_destroy_channel(&dst[1], msg);
487 size = allegro_enc_encode_frame(&dst[1], msg);
490 size = allegro_enc_put_stream_buffer(&dst[1], msg);
494 size = allegro_enc_push_buffers(&dst[1], msg);
513 * @msg: The mcu_msg_response that will be filled with parsed values.
520 int allegro_decode_mail(void *msg, u32 *src)
524 if (!src || !msg)
527 header = msg;
533 allegro_dec_init(msg, src);
536 allegro_dec_create_channel(msg, src);
539 allegro_dec_destroy_channel(msg, src);
542 allegro_dec_encode_frame(msg, src);