platform: msm_shared: add DSC support
Add DSC (display stream compressed) support. Generate
128 bytes PPS base on DSC parameters defined at panel
file and use PPS to enable/configure panel DSC feature.
Change-Id: I76aef67e6c18139a70b282de80293aa26ed7afe5
diff --git a/platform/msm_shared/include/mdp5.h b/platform/msm_shared/include/mdp5.h
index 43e2c0e..9253548 100644
--- a/platform/msm_shared/include/mdp5.h
+++ b/platform/msm_shared/include/mdp5.h
@@ -196,6 +196,31 @@
#define MDSS_MDP_REG_PP_FBC_BUDGET_CTL 0x038
#define MDSS_MDP_REG_PP_FBC_LOSSY_MODE 0x03C
+#define MDSS_MDP_REG_DCE_SEL REG_MDP(0x1450)
+
+#define MDSS_MDP_PP_DSC_MODE 0x0A0
+#define MDSS_MDP_PP_DCE_DATA_OUT_SWAP 0x0C8
+
+#define MDSS_MDP_DSC_COMMON_MODE 0x00
+#define MDSS_MDP_DSC_ENC 0x04
+#define MDSS_MDP_DSC_PICTURE 0x08
+#define MDSS_MDP_DSC_SLICE 0x0c
+#define MDSS_MDP_DSC_CHUNK_SIZE 0x10
+#define MDSS_MDP_DSC_DELAY 0x14
+#define MDSS_MDP_DSC_SCALE_INITIAL 0x18
+#define MDSS_MDP_DSC_SCALE_DEC_INTERVAL 0x1c
+#define MDSS_MDP_DSC_SCALE_INC_INTERVAL 0x20
+#define MDSS_MDP_DSC_FIRST_LINE_BPG_OFFSET 0x24
+#define MDSS_MDP_DSC_BPG_OFFSET 0x28
+#define MDSS_MDP_DSC_DSC_OFFSET 0x2c
+#define MDSS_MDP_DSC_FLATNESS 0x30
+#define MDSS_MDP_DSC_RC_MODEL_SIZE 0x34
+#define MDSS_MDP_DSC_RC 0x38
+#define MDSS_MDP_DSC_RC_BUF_THRESH 0x3c /* 14 bytes */
+#define MDSS_MDP_DSC_RANGE_MIN_QP 0x74 /* 15 bytes */
+#define MDSS_MDP_DSC_RANGE_MAX_QP 0xB0 /* 15 bytes */
+#define MDSS_MDP_DSC_RANGE_BPG_OFFSET 0xEc /* 15 bytes */
+
void mdp_set_revision(int rev);
int mdp_get_revision();
int mdp_dsi_video_config(struct msm_panel_info *pinfo, struct fbcon_config *fb);
@@ -222,4 +247,10 @@
void mdss_hdmi_get_vic(char *buf);
int msm_display_off();
void display_shutdown(void);
+
+void mdss_dsc_parameters_calc(struct msm_panel_info *pinfo);
+int mdss_dsc_to_buf(struct msm_panel_info *pinfo);
+void mdss_dsc_dsi_config(uint32_t ctl_base, int mode, struct dsc_desc *dsc);
+void mdss_dsc_mdp_config(struct msm_panel_info *pinfo);
+
#endif