mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 17:42:27 -04:00
For performance and multi-chip support, use dynamic layout instead of
statically configured pools.
Divide the shared memory into the 3 64-bit aligned layouts listed below:
vpu->param_addr -> +-----------------------------------------+
| |
| To SCP : Input frame parameters |
| (struct img_ipi_frameparam) |
| |
+-----------------------------------------+
vpu->work_addr -> +-----------------------------------------+
| |
| In SCP : Reserve for SCP calculation |
| |
+-----------------------------------------+
vpu->config_addr -> +-----------------------------------------+
| |
| From SCP : Output component config |
| (struct img_config) |
| |
+-----------------------------------------+
Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
48 lines
1023 B
C
48 lines
1023 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2022 MediaTek Inc.
|
|
* Author: Ping-Hsun Wu <ping-hsun.wu@mediatek.com>
|
|
*/
|
|
|
|
#ifndef __MTK_MDP3_M2M_H__
|
|
#define __MTK_MDP3_M2M_H__
|
|
|
|
#include <media/v4l2-ctrls.h>
|
|
#include "mtk-mdp3-core.h"
|
|
#include "mtk-mdp3-vpu.h"
|
|
#include "mtk-mdp3-regs.h"
|
|
|
|
#define MDP_MAX_CTRLS 10
|
|
|
|
enum {
|
|
MDP_M2M_SRC = 0,
|
|
MDP_M2M_DST = 1,
|
|
MDP_M2M_MAX,
|
|
};
|
|
|
|
struct mdp_m2m_ctrls {
|
|
struct v4l2_ctrl *hflip;
|
|
struct v4l2_ctrl *vflip;
|
|
struct v4l2_ctrl *rotate;
|
|
};
|
|
|
|
struct mdp_m2m_ctx {
|
|
u32 id;
|
|
struct mdp_dev *mdp_dev;
|
|
struct v4l2_fh fh;
|
|
struct v4l2_ctrl_handler ctrl_handler;
|
|
struct mdp_m2m_ctrls ctrls;
|
|
struct v4l2_m2m_ctx *m2m_ctx;
|
|
u32 frame_count[MDP_M2M_MAX];
|
|
|
|
struct mdp_frameparam curr_param;
|
|
/* synchronization protect for mdp m2m context */
|
|
struct mutex ctx_lock;
|
|
};
|
|
|
|
int mdp_m2m_device_register(struct mdp_dev *mdp);
|
|
void mdp_m2m_device_unregister(struct mdp_dev *mdp);
|
|
void mdp_m2m_job_finish(struct mdp_m2m_ctx *ctx);
|
|
|
|
#endif /* __MTK_MDP3_M2M_H__ */
|