1
0
mirror of https://github.com/physwizz/a155-U-u1.git synced 2025-09-26 19:04:54 +00:00
Files
physwizz 99537be4e2 first
2024-03-11 06:53:12 +11:00

93 lines
1.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2021 MediaTek Inc.
*/
#ifndef __MTK_MML_TILE_H__
#define __MTK_MML_TILE_H__
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include "mtk-mml.h"
#include "mtk-mml-core.h"
#include "DpTileScaler.h"
struct rdma_tile_data {
enum mml_color src_fmt;
u32 blk_shift_w;
u32 blk_shift_h;
struct mml_rect crop;
u32 max_width;
};
struct hdr_tile_data {
bool relay_mode;
u32 min_width;
};
struct aal_tile_data {
u32 min_width;
u32 max_width;
u32 min_hist_width;
};
struct rsz_tile_data {
bool use_121filter;
u32 coeff_step_x;
u32 coeff_step_y;
u32 precision_x;
u32 precision_y;
struct mml_crop crop;
bool hor_scale;
enum scaler_algo hor_algo;
bool ver_scale;
enum scaler_algo ver_algo;
s32 c42_out_frame_w;
s32 c24_in_frame_w;
s32 prz_out_tile_w;
s32 prz_back_xs;
s32 prz_back_xe;
bool ver_first;
bool ver_cubic_trunc;
u32 max_width;
};
struct tdshp_tile_data {
u32 max_width;
};
struct wrot_tile_data {
enum mml_color dest_fmt;
u32 rotate;
bool flip;
bool alpharot;
bool racing;
bool enable_x_crop;
bool enable_y_crop;
struct mml_rect crop;
u32 max_width;
u8 racing_h;
};
struct dlo_tile_data {
bool enable_x_crop;
struct mml_rect crop;
};
union mml_tile_data {
struct rdma_tile_data rdma;
struct hdr_tile_data hdr;
struct aal_tile_data aal;
struct rsz_tile_data rsz;
struct tdshp_tile_data tdshp;
struct wrot_tile_data wrot;
struct dlo_tile_data dlo;
};
s32 calc_tile(struct mml_task *task, u32 pipe, struct mml_tile_cache *tile_cache);
void destroy_tile_output(struct mml_tile_output *output);
void dump_tile_output(struct mml_tile_output *output);
#endif /* __MTK_MML_TILE_H__ */