From 5a4feccb481a065d8c36924d82e0902f96bb4115 Mon Sep 17 00:00:00 2001 From: Gopikrishnaiah Anandan Date: Thu, 8 Jan 2015 12:01:36 -0800 Subject: msm: mdss: ioctl to get pp feature version Some of the PP(post processing) features in MDP might be upgraded when new revision hardware is released. Clients of driver were relying on MDP revision to decide which version of the PP feature is supported. With MDP revision approach the client of driver needs to maintain a mapping between MDP revision and PP feature version. This change exposes ioctl to driver clients to query PP driver version of feature instead of maintaining mapping. Change-Id: I73f465400112445070c75f65f6ffd87c03eef2fb Signed-off-by: Gopikrishnaiah Anandan --- include/uapi/linux/msm_mdp.h | 74 ++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 34 deletions(-) (limited to 'include/uapi/linux') diff --git a/include/uapi/linux/msm_mdp.h b/include/uapi/linux/msm_mdp.h index fd16c53d6b62..f5548a3baf5e 100644 --- a/include/uapi/linux/msm_mdp.h +++ b/include/uapi/linux/msm_mdp.h @@ -72,6 +72,8 @@ #define MSMFB_OVERLAY_PREPARE _IOWR(MSMFB_IOCTL_MAGIC, 169, \ struct mdp_overlay_list) #define MSMFB_LPM_ENABLE _IOWR(MSMFB_IOCTL_MAGIC, 170, unsigned int) +#define MSMFB_MDP_PP_GET_FEATURE_VERSION _IOWR(MSMFB_IOCTL_MAGIC, 171, \ + struct mdp_pp_feature_version) #define FB_TYPE_3D_PANEL 0x10101010 #define MDP_IMGTYPE2_START 0x10000 @@ -539,10 +541,6 @@ struct mdp_pa_data_v1_7 { uint32_t *six_zone_curve_p1; }; -enum { - mdp_pa_v1_7 = 0x1, - mdp_pa_vmax, -}; struct mdp_pa_v2_cfg_data { uint32_t version; @@ -552,10 +550,6 @@ struct mdp_pa_v2_cfg_data { void *cfg_payload; }; -enum { - mdp_igc_v1_7 = 1, - mdp_igc_vmax, -}; enum { mdp_igc_rec601 = 1, @@ -588,11 +582,6 @@ struct mdp_histogram_cfg { uint16_t num_bins; }; -enum { - mdp_hist_lut_v1_7 = 1, - mdp_hist_lut_vmax, -}; - struct mdp_hist_lut_data_v1_7 { uint32_t len; uint32_t *data; @@ -608,11 +597,6 @@ struct mdp_hist_lut_data { void *cfg_payload; }; -enum { - mdp_pcc_v1_7 = 0x1, - mdp_pcc_vmax, -}; - struct mdp_pcc_coeff { uint32_t c, r, g, b, rr, gg, bb, rg, gb, rb, rgb_0, rgb_1; }; @@ -929,11 +913,6 @@ struct mdp_pgc_lut_data { void *cfg_payload; }; -enum { - mdp_pgc_v1_7 = 1, - mdp_pgc_vmax, -}; - #define PGC_LUT_ENTRIES 1024 struct mdp_pgc_lut_data_v1_7 { uint32_t len; @@ -961,11 +940,6 @@ struct mdp_pa_cfg_data { struct mdp_pa_cfg pa_data; }; -enum { - mdp_dither_v1_7 = 1, - mdp_dither_vmax, -}; - struct mdp_dither_data_v1_7 { uint32_t g_y_depth; uint32_t r_cr_depth; @@ -990,12 +964,6 @@ struct mdp_dither_cfg_data { #define MDP_GAMUT_SCALE_OFF_SZ 16 #define MDP_GAMUT_TABLE_V1_7_COARSE_SZ 32 -enum { - mdp_gamut_v1_7 = 1, - mdp_gamut_vmax, -}; - - struct mdp_gamut_cfg_data { uint32_t block; uint32_t flags; @@ -1338,4 +1306,42 @@ enum { MDP_CSC_ITU_R_601_FR, MDP_CSC_ITU_R_709, }; + +enum { + mdp_igc_v1_7 = 1, + mdp_igc_vmax, + mdp_hist_lut_v1_7, + mdp_hist_lut_vmax, + mdp_pgc_v1_7, + mdp_pgc_vmax, + mdp_dither_v1_7, + mdp_dither_vmax, + mdp_gamut_v1_7, + mdp_gamut_vmax, + mdp_pa_v1_7, + mdp_pa_vmax, + mdp_pcc_v1_7, + mdp_pcc_vmax, + mdp_pp_legacy, +}; + +/* PP Features */ +enum { + IGC = 1, + PCC, + GC, + PA, + GAMUT, + CSC, + DITHER, + QSEED, + HIST_LUT, + HIST, + PP_FEATURE_MAX, +}; + +struct mdp_pp_feature_version { + uint32_t pp_feature; + uint32_t version_info; +}; #endif /*_UAPI_MSM_MDP_H_*/ -- cgit v1.2.3