cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mtk_mdp_ipi.h (2601B)


      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 */
     44struct mdp_ipi_comm {
     45	uint32_t msg_id;
     46	uint32_t ipi_id;
     47	uint64_t ap_inst;
     48	uint32_t vpu_inst_addr;
     49};
     50
     51/**
     52 * struct mdp_ipi_comm_ack - for VPU_MDP_DEINIT_ACK, VPU_MDP_PROCESS_ACK
     53 * @msg_id        : VPU_MDP_DEINIT_ACK, VPU_MDP_PROCESS_ACK
     54 * @ipi_id        : IPI_MDP
     55 * @ap_inst       : AP mtk_mdp_vpu address
     56 * @vpu_inst_addr : VPU MDP instance address
     57 * @status        : VPU exeuction result
     58 */
     59struct mdp_ipi_comm_ack {
     60	uint32_t msg_id;
     61	uint32_t ipi_id;
     62	uint64_t ap_inst;
     63	uint32_t vpu_inst_addr;
     64	int32_t status;
     65};
     66
     67/**
     68 * struct mdp_config - configured for source/destination image
     69 * @x        : left
     70 * @y        : top
     71 * @w        : width
     72 * @h        : height
     73 * @w_stride : bytes in horizontal
     74 * @h_stride : bytes in vertical
     75 * @crop_x   : cropped left
     76 * @crop_y   : cropped top
     77 * @crop_w   : cropped width
     78 * @crop_h   : cropped height
     79 * @format   : color format
     80 */
     81struct mdp_config {
     82	int32_t x;
     83	int32_t y;
     84	int32_t w;
     85	int32_t h;
     86	int32_t w_stride;
     87	int32_t h_stride;
     88	int32_t crop_x;
     89	int32_t crop_y;
     90	int32_t crop_w;
     91	int32_t crop_h;
     92	int32_t format;
     93};
     94
     95struct mdp_buffer {
     96	uint64_t addr_mva[MTK_MDP_MAX_NUM_PLANE];
     97	int32_t plane_size[MTK_MDP_MAX_NUM_PLANE];
     98	int32_t plane_num;
     99};
    100
    101struct mdp_config_misc {
    102	int32_t orientation; /* 0, 90, 180, 270 */
    103	int32_t hflip; /* 1 will enable the flip */
    104	int32_t vflip; /* 1 will enable the flip */
    105	int32_t alpha; /* global alpha */
    106};
    107
    108struct mdp_process_vsi {
    109	struct mdp_config src_config;
    110	struct mdp_buffer src_buffer;
    111	struct mdp_config dst_config;
    112	struct mdp_buffer dst_buffer;
    113	struct mdp_config_misc misc;
    114};
    115
    116#pragma pack(pop)
    117
    118#endif /* __MTK_MDP_IPI_H__ */