treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
[sfrench/cifs-2.6.git] / drivers / media / platform / mtk-vcodec / vdec_ipi_msg.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
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