tile_info
BIT_FLAG(&ctrl_fh->tile_info, V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING);
vdec_av1_slice_setup_tile(frame, &ctrl_fh->tile_info);
static void recompute_tile_info(unsigned short *tile_info, unsigned int tiles, unsigned int sbs)
*tile_info++ = next_accumulated - accumulated;
struct hantro_aux_buf tile_info;
const struct v4l2_av1_tile_info *tile_info = &ctrls->frame->tile_info;
unsigned int num_tile_cols = tile_info->tile_cols;
if (av1_dec->tile_info.cpu)
dma_free_coherent(vpu->dev, av1_dec->tile_info.size,
av1_dec->tile_info.cpu,
av1_dec->tile_info.dma);
av1_dec->tile_info.cpu = NULL;
av1_dec->tile_info.cpu = dma_alloc_coherent(vpu->dev, AV1_TILE_INFO_SIZE,
&av1_dec->tile_info.dma,
if (!av1_dec->tile_info.cpu)
av1_dec->tile_info.size = AV1_TILE_INFO_SIZE;
const struct v4l2_av1_tile_info *tile_info = &ctrls->frame->tile_info;
tile_info->context_update_tile_id / tile_info->tile_cols;
tile_info->context_update_tile_id % tile_info->tile_cols;
context_update_x * tile_info->tile_rows + context_update_y;
u8 *dst = av1_dec->tile_info.cpu;
memset(dst, 0, av1_dec->tile_info.size);
for (tile0 = 0; tile0 < tile_info->tile_cols; tile0++) {
for (tile1 = 0; tile1 < tile_info->tile_rows; tile1++) {
int tile_id = tile1 * tile_info->tile_cols + tile0;
tile_info->height_in_sbs_minus_1[tile1] + 1;
u32 x0 = tile_info->width_in_sbs_minus_1[tile0] + 1;
!!((tile_info->tile_cols > 1) || (tile_info->tile_rows > 1)));
hantro_reg_write(vpu, &av1_num_tile_cols_8k, tile_info->tile_cols);
hantro_reg_write(vpu, &av1_num_tile_rows_8k, tile_info->tile_rows);
if (rockchip_vpu981_av1_tile_log2(tile_info->tile_cols) ||
rockchip_vpu981_av1_tile_log2(tile_info->tile_rows))
hantro_reg_write(vpu, &av1_dec_tile_size_mag, tile_info->tile_size_bytes - 1);
hantro_write_addr(vpu, AV1_TILE_BASE, av1_dec->tile_info.dma);
__print_array(__entry->f.tile_info.width_in_sbs_minus_1,
ARRAY_SIZE(__entry->f.tile_info.width_in_sbs_minus_1),
sizeof(__entry->f.tile_info.width_in_sbs_minus_1[0])),
__print_array(__entry->f.tile_info.height_in_sbs_minus_1,
ARRAY_SIZE(__entry->f.tile_info.height_in_sbs_minus_1),
sizeof(__entry->f.tile_info.height_in_sbs_minus_1[0])),
__entry->f.tile_info.tile_size_bytes,
__print_flags(__entry->f.tile_info.flags, "|",
__entry->f.tile_info.context_update_tile_id,
__entry->f.tile_info.tile_cols,
__entry->f.tile_info.tile_rows,
__print_array(__entry->f.tile_info.mi_col_starts,
ARRAY_SIZE(__entry->f.tile_info.mi_col_starts),
sizeof(__entry->f.tile_info.mi_col_starts[0])),
__print_array(__entry->f.tile_info.mi_row_starts,
ARRAY_SIZE(__entry->f.tile_info.mi_row_starts),
sizeof(__entry->f.tile_info.mi_row_starts[0])),
const struct tile_info *info = &sc8180x_tile_info[i];
static const struct tile_info sc8180x_tile_info[] = {
struct v4l2_av1_tile_info tile_info;