• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2016 MediaTek Inc.
4  * Author: PC Chen <pc.chen@mediatek.com>
5  */
6 
7 #ifndef _VDEC_IPI_MSG_H_
8 #define _VDEC_IPI_MSG_H_
9 
10 /**
11  * enum vdec_ipi_msgid - message id between AP and VPU
12  * @AP_IPIMSG_XXX	: AP to VPU cmd message id
13  * @VPU_IPIMSG_XXX_ACK	: VPU ack AP cmd message id
14  */
15 enum vdec_ipi_msgid {
16 	AP_IPIMSG_DEC_INIT = 0xA000,
17 	AP_IPIMSG_DEC_START = 0xA001,
18 	AP_IPIMSG_DEC_END = 0xA002,
19 	AP_IPIMSG_DEC_DEINIT = 0xA003,
20 	AP_IPIMSG_DEC_RESET = 0xA004,
21 
22 	VPU_IPIMSG_DEC_INIT_ACK = 0xB000,
23 	VPU_IPIMSG_DEC_START_ACK = 0xB001,
24 	VPU_IPIMSG_DEC_END_ACK = 0xB002,
25 	VPU_IPIMSG_DEC_DEINIT_ACK = 0xB003,
26 	VPU_IPIMSG_DEC_RESET_ACK = 0xB004,
27 };
28 
29 /**
30  * struct vdec_ap_ipi_cmd - generic AP to VPU ipi command format
31  * @msg_id	: vdec_ipi_msgid
32  * @vpu_inst_addr	: VPU decoder instance address
33  */
34 struct vdec_ap_ipi_cmd {
35 	uint32_t msg_id;
36 	uint32_t vpu_inst_addr;
37 };
38 
39 /**
40  * struct vdec_vpu_ipi_ack - generic VPU to AP ipi command format
41  * @msg_id	: vdec_ipi_msgid
42  * @status	: VPU exeuction result
43  * @ap_inst_addr	: AP video decoder instance address
44  */
45 struct vdec_vpu_ipi_ack {
46 	uint32_t msg_id;
47 	int32_t status;
48 	uint64_t ap_inst_addr;
49 };
50 
51 /**
52  * struct vdec_ap_ipi_init - for AP_IPIMSG_DEC_INIT
53  * @msg_id	: AP_IPIMSG_DEC_INIT
54  * @reserved	: Reserved field
55  * @ap_inst_addr	: AP video decoder instance address
56  */
57 struct vdec_ap_ipi_init {
58 	uint32_t msg_id;
59 	uint32_t reserved;
60 	uint64_t ap_inst_addr;
61 };
62 
63 /**
64  * struct vdec_ap_ipi_dec_start - for AP_IPIMSG_DEC_START
65  * @msg_id	: AP_IPIMSG_DEC_START
66  * @vpu_inst_addr	: VPU decoder instance address
67  * @data	: Header info
68  *	H264 decoder [0]:buf_sz [1]:nal_start
69  *	VP8 decoder  [0]:width/height
70  *	VP9 decoder  [0]:profile, [1][2] width/height
71  * @reserved	: Reserved field
72  */
73 struct vdec_ap_ipi_dec_start {
74 	uint32_t msg_id;
75 	uint32_t vpu_inst_addr;
76 	uint32_t data[3];
77 	uint32_t reserved;
78 };
79 
80 /**
81  * struct vdec_vpu_ipi_init_ack - for VPU_IPIMSG_DEC_INIT_ACK
82  * @msg_id	: VPU_IPIMSG_DEC_INIT_ACK
83  * @status	: VPU exeuction result
84  * @ap_inst_addr	: AP vcodec_vpu_inst instance address
85  * @vpu_inst_addr	: VPU decoder instance address
86  */
87 struct vdec_vpu_ipi_init_ack {
88 	uint32_t msg_id;
89 	int32_t status;
90 	uint64_t ap_inst_addr;
91 	uint32_t vpu_inst_addr;
92 };
93 
94 #endif
95