From fb6aedada1da98f246eb56a991455f4e992e64df Mon Sep 17 00:00:00 2001 From: Ping Li Date: Tue, 19 Feb 2013 16:19:39 -0500 Subject: [PATCH] msm: display: Add data stuctures for MSM8974 target support Add data structures for picture adjustment, IGC, QSEED2 sharpening/smooth feature support on MSM8974. These data structures are needed by the hardware/qcom/display project, which is shared between multiple jb branches, including B-family jb branches. Change-Id: I0e228c90b70dbe4655173b753032eaae5748f7d9 Signed-off-by: Ping Li --- include/linux/msm_mdp.h | 45 ++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/include/linux/msm_mdp.h b/include/linux/msm_mdp.h index eee85721f61..3e5652570b1 100644 --- a/include/linux/msm_mdp.h +++ b/include/linux/msm_mdp.h @@ -274,8 +274,10 @@ struct msmfb_writeback_data { struct msmfb_img img; }; +#define MDP_PP_OPS_ENABLE 0x1 #define MDP_PP_OPS_READ 0x2 #define MDP_PP_OPS_WRITE 0x4 +#define MDP_PP_OPS_DISABLE 0x8 struct mdp_qseed_cfg { uint32_t table_num; @@ -289,8 +291,19 @@ struct mdp_qseed_cfg_data { struct mdp_qseed_cfg qseed_data; }; +struct mdp_sharp_cfg { + uint32_t flags; + uint32_t strength; + uint32_t edge_thr; + uint32_t smooth_thr; + uint32_t noise_thr; +}; + #define MDP_OVERLAY_PP_CSC_CFG 0x1 #define MDP_OVERLAY_PP_QSEED_CFG 0x2 +#define MDP_OVERLAY_PP_PA_CFG 0x4 +#define MDP_OVERLAY_PP_IGC_CFG 0x8 +#define MDP_OVERLAY_PP_SHARP_CFG 0x10 #define MDP_CSC_FLAG_ENABLE 0x1 #define MDP_CSC_FLAG_YUV_IN 0x2 @@ -311,10 +324,28 @@ struct mdp_csc_cfg_data { struct mdp_csc_cfg csc_data; }; +struct mdp_pa_cfg { + uint32_t flags; + uint32_t hue_adj; + uint32_t sat_adj; + uint32_t val_adj; + uint32_t cont_adj; +}; + +struct mdp_igc_lut_data { + uint32_t block; + uint32_t len, ops; + uint32_t *c0_c1_data; + uint32_t *c2_data; +}; + struct mdp_overlay_pp_params { uint32_t config_ops; struct mdp_csc_cfg csc_cfg; struct mdp_qseed_cfg qseed_cfg[2]; + struct mdp_pa_cfg pa_cfg; + struct mdp_igc_lut_data igc_cfg; + struct mdp_sharp_cfg sharp_cfg; }; struct mdp_overlay { @@ -429,13 +460,6 @@ enum { mdp_lut_max, }; -struct mdp_igc_lut_data { - uint32_t block; - uint32_t len, ops; - uint32_t *c0_c1_data; - uint32_t *c2_data; -}; - struct mdp_ar_gc_lut_data { uint32_t x_start; uint32_t slope; @@ -481,6 +505,11 @@ struct mdp_calib_config_data { uint32_t data; }; +struct mdp_pa_cfg_data { + uint32_t block; + struct mdp_pa_cfg pa_data; +}; + enum { mdp_op_pcc_cfg, mdp_op_csc_cfg, @@ -488,6 +517,7 @@ enum { mdp_op_qseed_cfg, mdp_bl_scale_cfg, mdp_op_calib_cfg, + mdp_op_pa_cfg, mdp_op_max, }; @@ -500,6 +530,7 @@ struct msmfb_mdp_pp { struct mdp_qseed_cfg_data qseed_cfg_data; struct mdp_bl_scale_data bl_scale_data; struct mdp_calib_config_data calib_cfg; + struct mdp_pa_cfg_data pa_cfg_data; } data; };