File Index
Files and directories
Sign in
FILE

mtk_mdp_ipi.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/platform/mediatek/mdp/mtk_mdp_ipi.h C
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 * Copyright (c) 2015-2016 MediaTek Inc.
  4 * Author: Houlong Wei <houlong.wei@mediatek.com>
  5 *         Ming Hsiu Tsai <minghsiu.tsai@mediatek.com>
  6 */
  7
  8#ifndef __MTK_MDP_IPI_H__
  9#define __MTK_MDP_IPI_H__
 10
 11#define MTK_MDP_MAX_NUM_PLANE		3
 12
 13enum mdp_ipi_msgid {
 14	AP_MDP_INIT		= 0xd000,
 15	AP_MDP_DEINIT		= 0xd001,
 16	AP_MDP_PROCESS		= 0xd002,
 17
 18	VPU_MDP_INIT_ACK	= 0xe000,
 19	VPU_MDP_DEINIT_ACK	= 0xe001,
 20	VPU_MDP_PROCESS_ACK	= 0xe002
 21};
 22
 23#pragma pack(push, 4)
 24
 25/**
 26 * struct mdp_ipi_init - for AP_MDP_INIT
 27 * @msg_id   : AP_MDP_INIT
 28 * @ipi_id   : IPI_MDP
 29 * @ap_inst  : AP mtk_mdp_vpu address
 30 */
 31struct mdp_ipi_init {
 32	uint32_t msg_id;
 33	uint32_t ipi_id;
 34	uint64_t ap_inst;
 35};
 36
 37/**
 38 * struct mdp_ipi_comm - for AP_MDP_PROCESS, AP_MDP_DEINIT
 39 * @msg_id        : AP_MDP_PROCESS, AP_MDP_DEINIT
 40 * @ipi_id        : IPI_MDP
 41 * @ap_inst       : AP mtk_mdp_vpu address
 42 * @vpu_inst_addr : VPU MDP instance address
 43 * @padding       : Alignment padding
 44 */
 45struct mdp_ipi_comm {
 46	uint32_t msg_id;
 47	uint32_t ipi_id;
 48	uint64_t ap_inst;
 49	uint32_t vpu_inst_addr;
 50	uint32_t padding;
 51};
 52
 53/**
 54 * struct mdp_ipi_comm_ack - for VPU_MDP_DEINIT_ACK, VPU_MDP_PROCESS_ACK
 55 * @msg_id        : VPU_MDP_DEINIT_ACK, VPU_MDP_PROCESS_ACK
 56 * @ipi_id        : IPI_MDP
 57 * @ap_inst       : AP mtk_mdp_vpu address
 58 * @vpu_inst_addr : VPU MDP instance address
 59 * @status        : VPU exeuction result
 60 */
 61struct mdp_ipi_comm_ack {
 62	uint32_t msg_id;
 63	uint32_t ipi_id;
 64	uint64_t ap_inst;
 65	uint32_t vpu_inst_addr;
 66	int32_t status;
 67};
 68
 69/**
 70 * struct mdp_config - configured for source/destination image
 71 * @x        : left
 72 * @y        : top
 73 * @w        : width
 74 * @h        : height
 75 * @w_stride : bytes in horizontal
 76 * @h_stride : bytes in vertical
 77 * @crop_x   : cropped left
 78 * @crop_y   : cropped top
 79 * @crop_w   : cropped width
 80 * @crop_h   : cropped height
 81 * @format   : color format
 82 */
 83struct mdp_config {
 84	int32_t x;
 85	int32_t y;
 86	int32_t w;
 87	int32_t h;
 88	int32_t w_stride;
 89	int32_t h_stride;
 90	int32_t crop_x;
 91	int32_t crop_y;
 92	int32_t crop_w;
 93	int32_t crop_h;
 94	int32_t format;
 95};
 96
 97struct mdp_buffer {
 98	uint64_t addr_mva[MTK_MDP_MAX_NUM_PLANE];
 99	int32_t plane_size[MTK_MDP_MAX_NUM_PLANE];
100	int32_t plane_num;
101};
102
103struct mdp_config_misc {
104	int32_t orientation; /* 0, 90, 180, 270 */
105	int32_t hflip; /* 1 will enable the flip */
106	int32_t vflip; /* 1 will enable the flip */
107	int32_t alpha; /* global alpha */
108};
109
110struct mdp_process_vsi {
111	struct mdp_config src_config;
112	struct mdp_buffer src_buffer;
113	struct mdp_config dst_config;
114	struct mdp_buffer dst_buffer;
115	struct mdp_config_misc misc;
116};
117
118#pragma pack(pop)
119
120#endif /* __MTK_MDP_IPI_H__ */
~/ Read-only file preview.