diff options
| author | abeykun <abeykun@codeaurora.org> | 2016-11-28 13:02:01 -0500 |
|---|---|---|
| committer | abeykun <abeykun@codeaurora.org> | 2016-12-01 14:59:54 -0500 |
| commit | 98a396274bb0666a2d8ebb80f79e552b43aa37e5 (patch) | |
| tree | 2f131047136f356d49af10ea62fb78392ed9209c /include | |
| parent | c7ef2fa30934421806f873b8c40278376618c486 (diff) | |
drm/msm/sde: update pixel extension uapi
Patch changes pixel extension uapi to match FB driver and exposes
QSEED3 filter configuration defines.
Change-Id: Id5dba041df77d1c663742fcda74f420ca3d228f9
Signed-off-by: abeykun <abeykun@codeaurora.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/uapi/drm/sde_drm.h | 109 |
1 files changed, 73 insertions, 36 deletions
diff --git a/include/uapi/drm/sde_drm.h b/include/uapi/drm/sde_drm.h index 1fc31ac025cb..c7bed3b1ccf3 100644 --- a/include/uapi/drm/sde_drm.h +++ b/include/uapi/drm/sde_drm.h @@ -6,6 +6,30 @@ /* Total number of parameterized detail enhancer mapping curves */ #define SDE_MAX_DE_CURVES 3 + + /* Y/RGB and UV filter configuration */ +#define FILTER_EDGE_DIRECTED_2D 0x0 +#define FILTER_CIRCULAR_2D 0x1 +#define FILTER_SEPARABLE_1D 0x2 +#define FILTER_BILINEAR 0x3 + +/* Alpha filters */ +#define FILTER_ALPHA_DROP_REPEAT 0x0 +#define FILTER_ALPHA_BILINEAR 0x1 +#define FILTER_ALPHA_2D 0x3 + +/* Blend filters */ +#define FILTER_BLEND_CIRCULAR_2D 0x0 +#define FILTER_BLEND_SEPARABLE_1D 0x1 + +/* LUT configuration flags */ +#define SCALER_LUT_SWAP 0x1 +#define SCALER_LUT_DIR_WR 0x2 +#define SCALER_LUT_Y_CIR_WR 0x4 +#define SCALER_LUT_UV_CIR_WR 0x8 +#define SCALER_LUT_Y_SEP_WR 0x10 +#define SCALER_LUT_UV_SEP_WR 0x20 + /** * Blend operations for "blend_op" property * @@ -42,38 +66,42 @@ /** * struct sde_drm_pix_ext_v1 - version 1 of pixel ext structure - * @num_pxls_start: Number of start pixels - * @num_pxls_end: Number of end pixels - * @ftch_start: Number of overfetch start pixels - * @ftch_end: Number of overfetch end pixels - * @rpt_start: Number of repeat start pixels - * @rpt_end: Number of repeat end pixels - * @roi: Input ROI settings + * @num_ext_pxls_lr: Number of total horizontal pixels + * @num_ext_pxls_tb: Number of total vertical lines + * @left_ftch: Number of extra pixels to overfetch from left + * @right_ftch: Number of extra pixels to overfetch from right + * @top_ftch: Number of extra lines to overfetch from top + * @btm_ftch: Number of extra lines to overfetch from bottom + * @left_rpt: Number of extra pixels to repeat from left + * @right_rpt: Number of extra pixels to repeat from right + * @top_rpt: Number of extra lines to repeat from top + * @btm_rpt: Number of extra lines to repeat from bottom */ struct sde_drm_pix_ext_v1 { /* * Number of pixels ext in left, right, top and bottom direction - * for all color components. This pixel value for each color - * component should be sum of fetch + repeat pixels. + * for all color components. */ - int32_t num_pxls_start[SDE_MAX_PLANES]; - int32_t num_pxls_end[SDE_MAX_PLANES]; + int32_t num_ext_pxls_lr[SDE_MAX_PLANES]; + int32_t num_ext_pxls_tb[SDE_MAX_PLANES]; /* * Number of pixels needs to be overfetched in left, right, top * and bottom directions from source image for scaling. */ - int32_t ftch_start[SDE_MAX_PLANES]; - int32_t ftch_end[SDE_MAX_PLANES]; - + int32_t left_ftch[SDE_MAX_PLANES]; + int32_t right_ftch[SDE_MAX_PLANES]; + int32_t top_ftch[SDE_MAX_PLANES]; + int32_t btm_ftch[SDE_MAX_PLANES]; /* * Number of pixels needs to be repeated in left, right, top and * bottom directions for scaling. */ - int32_t rpt_start[SDE_MAX_PLANES]; - int32_t rpt_end[SDE_MAX_PLANES]; + int32_t left_rpt[SDE_MAX_PLANES]; + int32_t right_rpt[SDE_MAX_PLANES]; + int32_t top_rpt[SDE_MAX_PLANES]; + int32_t btm_rpt[SDE_MAX_PLANES]; - uint32_t roi[SDE_MAX_PLANES]; }; /** @@ -91,9 +119,7 @@ struct sde_drm_scaler_v1 { /* * Pix ext settings */ - struct sde_drm_pix_ext_v1 lr; - struct sde_drm_pix_ext_v1 tb; - + struct sde_drm_pix_ext_v1 pe; /* * Phase settings */ @@ -144,17 +170,32 @@ struct sde_drm_de_v1 { /** * struct sde_drm_scaler_v2 - version 2 of struct sde_drm_scaler - * @enable: Mask of SDE_DRM_SCALER_ bits - * @lr: Pixel extension settings for left/right - * @tb: Pixel extension settings for top/botton - * @horz_decimate: Horizontal decimation factor - * @vert_decimate: Vertical decimation factor - * @init_phase_x: Initial scaler phase values for x - * @phase_step_x: Phase step values for x - * @init_phase_y: Initial scaler phase values for y - * @phase_step_y: Phase step values for y - * @horz_filter: Horizontal filter array - * @vert_filter: Vertical filter array + * @enable: Scaler enable + * @dir_en: Detail enhancer enable + * @pe: Pixel extension settings + * @horz_decimate: Horizontal decimation factor + * @vert_decimate: Vertical decimation factor + * @init_phase_x: Initial scaler phase values for x + * @phase_step_x: Phase step values for x + * @init_phase_y: Initial scaler phase values for y + * @phase_step_y: Phase step values for y + * @preload_x: Horizontal preload value + * @preload_y: Vertical preload value + * @src_width: Source width + * @src_height: Source height + * @dst_width: Destination width + * @dst_height: Destination height + * @y_rgb_filter_cfg: Y/RGB plane filter configuration + * @uv_filter_cfg: UV plane filter configuration + * @alpha_filter_cfg: Alpha filter configuration + * @blend_cfg: Selection of blend coefficients + * @lut_flag: LUT configuration flags + * @dir_lut_idx: 2d 4x4 LUT index + * @y_rgb_cir_lut_idx: Y/RGB circular LUT index + * @uv_cir_lut_idx: UV circular LUT index + * @y_rgb_sep_lut_idx: Y/RGB separable LUT index + * @uv_sep_lut_idx: UV separable LUT index + * @de: Detail enhancer settings */ struct sde_drm_scaler_v2 { /* @@ -166,8 +207,7 @@ struct sde_drm_scaler_v2 { /* * Pix ext settings */ - struct sde_drm_pix_ext_v1 lr; - struct sde_drm_pix_ext_v1 tb; + struct sde_drm_pix_ext_v1 pe; /* * Decimation settings @@ -183,9 +223,6 @@ struct sde_drm_scaler_v2 { int32_t init_phase_y[SDE_MAX_PLANES]; int32_t phase_step_y[SDE_MAX_PLANES]; - /* alpha plane can only be scaled using bilinear or pixel - * repeat/drop, specify these for Y and UV planes only - */ uint32_t preload_x[SDE_MAX_PLANES]; uint32_t preload_y[SDE_MAX_PLANES]; uint32_t src_width[SDE_MAX_PLANES]; |
