Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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__ */
|