#include <linux/mailbox_controller.h>
#include <linux/platform_device.h>
#include "mtk-mdp3-cfg.h"
#include "mtk-mdp3-cmdq.h"
#include "mtk-mdp3-comp.h"
#include "mtk-mdp3-core.h"
#include "mtk-mdp3-m2m.h"
#include "mtk-img-ipi.h"
#define MDP_PATH_MAX_COMPS …
struct mdp_path { … };
#define has_op(ctx, op) …
#define call_op(ctx, op, ...) …
static bool is_output_disabled(int p_id, const struct img_compparam *param, u32 count)
{ … }
static struct mtk_mutex *__get_mutex(const struct mdp_dev *mdp_dev,
const struct mdp_pipe_info *p)
{ … }
static u8 __get_pp_num(enum mdp_stream_type type)
{ … }
static enum mdp_pipe_id __get_pipe(const struct mdp_dev *mdp_dev,
enum mtk_mdp_comp_id id)
{ … }
static struct img_config *__get_config_offset(struct mdp_dev *mdp,
struct mdp_cmdq_param *param,
u8 pp_idx)
{ … }
static int mdp_path_subfrm_require(const struct mdp_path *path,
struct mdp_cmdq_cmd *cmd,
struct mdp_pipe_info *p, u32 count)
{ … }
static int mdp_path_subfrm_run(const struct mdp_path *path,
struct mdp_cmdq_cmd *cmd,
struct mdp_pipe_info *p, u32 count)
{ … }
static int mdp_path_ctx_init(struct mdp_dev *mdp, struct mdp_path *path)
{ … }
static int mdp_path_config_subfrm(struct mdp_cmdq_cmd *cmd,
struct mdp_path *path, u32 count)
{ … }
static int mdp_path_config(struct mdp_dev *mdp, struct mdp_cmdq_cmd *cmd,
struct mdp_path *path)
{ … }
static int mdp_cmdq_pkt_create(struct cmdq_client *client, struct cmdq_pkt *pkt,
size_t size)
{ … }
static void mdp_cmdq_pkt_destroy(struct cmdq_pkt *pkt)
{ … }
static void mdp_auto_release_work(struct work_struct *work)
{ … }
static void mdp_handle_cmdq_callback(struct mbox_client *cl, void *mssg)
{ … }
static struct mdp_cmdq_cmd *mdp_cmdq_prepare(struct mdp_dev *mdp,
struct mdp_cmdq_param *param,
u8 pp_idx)
{ … }
int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param)
{ … }
EXPORT_SYMBOL_GPL(…);