summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/amphion/vpu_cmds.h
diff options
context:
space:
mode:
authorMing Qian <ming.qian@nxp.com>2022-02-24 11:10:03 +0800
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2022-03-07 17:13:33 +0100
commit61cbf1c1fa6d74a6a232a365e0aeddcab11036e4 (patch)
tree1357d4d2d9b29b4c1625e97aed3b35a2cd3c4ec5 /drivers/media/platform/amphion/vpu_cmds.h
parent9f599f351e86acf0fc13e42771f97b7fb4dbbea4 (diff)
downloadlinux-61cbf1c1fa6d74a6a232a365e0aeddcab11036e4.tar.gz
linux-61cbf1c1fa6d74a6a232a365e0aeddcab11036e4.tar.bz2
linux-61cbf1c1fa6d74a6a232a365e0aeddcab11036e4.zip
media: amphion: implement vpu core communication based on mailbox
driver use mailbox to communicate with vpu core. and there are a command buffer and a message buffer. driver will write commands to the command buffer, then trigger a vpu core interrupt vpu core will write messages to the message buffer, then trigger a cpu interrupt. Signed-off-by: Ming Qian <ming.qian@nxp.com> Signed-off-by: Shijie Qin <shijie.qin@nxp.com> Signed-off-by: Zhou Peng <eagle.zhou@nxp.com> Reported-by: kernel test robot <lkp@intel.com> Tested-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'drivers/media/platform/amphion/vpu_cmds.h')
-rw-r--r--drivers/media/platform/amphion/vpu_cmds.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/media/platform/amphion/vpu_cmds.h b/drivers/media/platform/amphion/vpu_cmds.h
new file mode 100644
index 000000000000..bc538d277bc9
--- /dev/null
+++ b/drivers/media/platform/amphion/vpu_cmds.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2020-2021 NXP
+ */
+
+#ifndef _AMPHION_VPU_CMDS_H
+#define _AMPHION_VPU_CMDS_H
+
+int vpu_session_configure_codec(struct vpu_inst *inst);
+int vpu_session_start(struct vpu_inst *inst);
+int vpu_session_stop(struct vpu_inst *inst);
+int vpu_session_abort(struct vpu_inst *inst);
+int vpu_session_rst_buf(struct vpu_inst *inst);
+int vpu_session_encode_frame(struct vpu_inst *inst, s64 timestamp);
+int vpu_session_alloc_fs(struct vpu_inst *inst, struct vpu_fs_info *fs);
+int vpu_session_release_fs(struct vpu_inst *inst, struct vpu_fs_info *fs);
+int vpu_session_fill_timestamp(struct vpu_inst *inst, struct vpu_ts_info *info);
+int vpu_session_update_parameters(struct vpu_inst *inst, void *arg);
+int vpu_core_snapshot(struct vpu_core *core);
+int vpu_core_sw_reset(struct vpu_core *core);
+int vpu_response_cmd(struct vpu_inst *inst, u32 response, u32 handled);
+void vpu_clear_request(struct vpu_inst *inst);
+int vpu_session_debug(struct vpu_inst *inst);
+
+#endif