You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
3.6 KiB
144 lines
3.6 KiB
#ifndef _UAPI_MDSS_ROTATOR_H_ |
|
#define _UAPI_MDSS_ROTATOR_H_ |
|
|
|
#include <linux/msm_mdp_ext.h> |
|
|
|
#define MDSS_ROTATOR_IOCTL_MAGIC 'w' |
|
|
|
/* open a rotation session */ |
|
#define MDSS_ROTATION_OPEN \ |
|
_IOWR(MDSS_ROTATOR_IOCTL_MAGIC, 1, struct mdp_rotation_config *) |
|
|
|
/* change the rotation session configuration */ |
|
#define MDSS_ROTATION_CONFIG \ |
|
_IOWR(MDSS_ROTATOR_IOCTL_MAGIC, 2, struct mdp_rotation_config *) |
|
|
|
/* queue the rotation request */ |
|
#define MDSS_ROTATION_REQUEST \ |
|
_IOWR(MDSS_ROTATOR_IOCTL_MAGIC, 3, struct mdp_rotation_request *) |
|
|
|
/* close a rotation session with the specified rotation session ID */ |
|
#define MDSS_ROTATION_CLOSE _IOW(MDSS_ROTATOR_IOCTL_MAGIC, 4, unsigned int) |
|
|
|
/********************************************************************** |
|
Rotation request flag |
|
**********************************************************************/ |
|
/* no rotation flag, i.e. color space conversion */ |
|
#define MDP_ROTATION_NOP 0x01 |
|
|
|
/* left/right flip */ |
|
#define MDP_ROTATION_FLIP_LR 0x02 |
|
|
|
/* up/down flip */ |
|
#define MDP_ROTATION_FLIP_UD 0x04 |
|
|
|
/* rotate 90 degree */ |
|
#define MDP_ROTATION_90 0x08 |
|
|
|
/* rotate 180 degre */ |
|
#define MDP_ROTATION_180 (MDP_ROTATION_FLIP_LR | MDP_ROTATION_FLIP_UD) |
|
|
|
/* rotate 270 degree */ |
|
#define MDP_ROTATION_270 (MDP_ROTATION_90 | MDP_ROTATION_180) |
|
|
|
/* format is interlaced */ |
|
#define MDP_ROTATION_DEINTERLACE 0x10 |
|
|
|
/* enable bwc */ |
|
#define MDP_ROTATION_BWC_EN 0x40 |
|
|
|
/* secure data */ |
|
#define MDP_ROTATION_SECURE 0x80 |
|
|
|
/********************************************************************** |
|
Rotation commit flag |
|
**********************************************************************/ |
|
/* Flag indicates to validate the rotation request */ |
|
#define MDSS_ROTATION_REQUEST_VALIDATE 0x01 |
|
|
|
#define MDP_ROTATION_REQUEST_VERSION_1_0 0x00010000 |
|
|
|
/* |
|
* Client can let driver to allocate the hardware resources with |
|
* this particular hw resource id. |
|
*/ |
|
#define MDSS_ROTATION_HW_ANY 0xFFFFFFFF |
|
|
|
/********************************************************************** |
|
configuration structures |
|
**********************************************************************/ |
|
struct mdp_rotation_buf_info { |
|
uint32_t width; |
|
uint32_t height; |
|
uint32_t format; |
|
struct mult_factor comp_ratio; |
|
}; |
|
|
|
struct mdp_rotation_config { |
|
uint32_t version; |
|
uint32_t session_id; |
|
struct mdp_rotation_buf_info input; |
|
struct mdp_rotation_buf_info output; |
|
uint32_t frame_rate; |
|
uint32_t flags; |
|
uint32_t reserved[6]; |
|
}; |
|
|
|
struct mdp_rotation_item { |
|
/* rotation request flag */ |
|
uint32_t flags; |
|
|
|
/* Source crop rectangle */ |
|
struct mdp_rect src_rect; |
|
|
|
/* Destination rectangle */ |
|
struct mdp_rect dst_rect; |
|
|
|
/* Input buffer for the request */ |
|
struct mdp_layer_buffer input; |
|
|
|
/* The output buffer for the request */ |
|
struct mdp_layer_buffer output; |
|
|
|
/* |
|
* DMA pipe selection for this request by client: |
|
* 0: DMA pipe 0 |
|
* 1: DMA pipe 1 |
|
* or MDSS_ROTATION_HW_ANY if client wants |
|
* driver to allocate any that is available |
|
*/ |
|
uint32_t pipe_idx; |
|
|
|
/* |
|
* Write-back block selection for this request by client: |
|
* 0: Write-back block 0 |
|
* 1: Write-back block 1 |
|
* or MDSS_ROTATION_HW_ANY if client wants |
|
* driver to allocate any that is available |
|
*/ |
|
uint32_t wb_idx; |
|
|
|
/* Which session ID is this request scheduled on */ |
|
uint32_t session_id; |
|
|
|
/* 32bits reserved value for future usage */ |
|
uint32_t reserved[6]; |
|
}; |
|
|
|
struct mdp_rotation_request { |
|
/* 32bit version indicates the request structure */ |
|
uint32_t version; |
|
|
|
uint32_t flags; |
|
|
|
/* Number of rotation request items in the list */ |
|
uint32_t count; |
|
|
|
/* Pointer to a list of rotation request items */ |
|
struct mdp_rotation_item __user *list; |
|
|
|
/* 32bits reserved value for future usage*/ |
|
uint32_t reserved[6]; |
|
}; |
|
|
|
#endif /*_UAPI_MDSS_ROTATOR_H_*/
|
|
|