summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandeep Panda <spanda@codeaurora.org>2015-12-14 19:49:01 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:14:17 -0700
commit56c024f4f8c54cc8644066479f289ef0efeee3b2 (patch)
tree0538cf333432143ca1275776bb047318ba22a50e
parent3a37212ae9f542659b68a6914ae1d864fe2623e8 (diff)
msm: mdss: update DSI PHY enable sequence based on PHY revision
In the current implementation DSI controller version is used to determine which PHY enable sequence should be used. But this will fail in case of platforms where DSI controller version is same as older platforms but PHY version is new. So change the version check to be based on PHY version instead for controller version. Change-Id: I636a6442e84f1bd549b6a125cfb991402e53c796 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/msm_mdss_io_8974.c61
1 files changed, 25 insertions, 36 deletions
diff --git a/drivers/video/fbdev/msm/msm_mdss_io_8974.c b/drivers/video/fbdev/msm/msm_mdss_io_8974.c
index d38bf4ceed52..a30d73f328c9 100644
--- a/drivers/video/fbdev/msm/msm_mdss_io_8974.c
+++ b/drivers/video/fbdev/msm/msm_mdss_io_8974.c
@@ -441,10 +441,7 @@ void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl)
return;
}
- if (IS_MDSS_MAJOR_MINOR_SAME(ctrl->shared_data->hw_rev,
- MDSS_DSI_HW_REV_104) &&
- (MDSS_GET_STEP(ctrl->shared_data->hw_rev) !=
- MDSS_DSI_HW_REV_STEP_2)) {
+ if (ctrl->shared_data->phy_rev == DSI_PHY_REV_20) {
if (mdss_dsi_is_ctrl_clk_master(ctrl))
sctrl = mdss_dsi_get_ctrl_clk_slave();
else
@@ -481,10 +478,7 @@ static void mdss_dsi_phy_regulator_disable(struct mdss_dsi_ctrl_pdata *ctrl)
return;
}
- if (IS_MDSS_MAJOR_MINOR_SAME(ctrl->shared_data->hw_rev,
- MDSS_DSI_HW_REV_104) &&
- (MDSS_GET_STEP(ctrl->shared_data->hw_rev) !=
- MDSS_DSI_HW_REV_STEP_2))
+ if (ctrl->shared_data->phy_rev == DSI_PHY_REV_20)
return;
MIPI_OUTP(ctrl->phy_regulator_io.base + 0x018, 0x000);
@@ -497,10 +491,7 @@ static void mdss_dsi_phy_shutdown(struct mdss_dsi_ctrl_pdata *ctrl)
return;
}
- if (IS_MDSS_MAJOR_MINOR_SAME(ctrl->shared_data->hw_rev,
- MDSS_DSI_HW_REV_104) &&
- (MDSS_GET_STEP(ctrl->shared_data->hw_rev) !=
- MDSS_DSI_HW_REV_STEP_2)) {
+ if (ctrl->shared_data->phy_rev == DSI_PHY_REV_20) {
MIPI_OUTP(ctrl->phy_io.base + DSIPHY_PLL_CLKBUFLR_EN, 0);
MIPI_OUTP(ctrl->phy_io.base + DSIPHY_CMN_GLBL_TEST_CTRL, 0);
MIPI_OUTP(ctrl->phy_io.base + DSIPHY_CMN_CTRL_0, 0);
@@ -525,10 +516,7 @@ void mdss_dsi_lp_cd_rx(struct mdss_dsi_ctrl_pdata *ctrl)
return;
}
- if (IS_MDSS_MAJOR_MINOR_SAME(ctrl->shared_data->hw_rev,
- MDSS_DSI_HW_REV_104) &&
- (MDSS_GET_STEP(ctrl->shared_data->hw_rev) !=
- MDSS_DSI_HW_REV_STEP_2))
+ if (ctrl->shared_data->phy_rev == DSI_PHY_REV_20)
return;
pd = &(((ctrl->panel_data).panel_info.mipi).dsi_phy_db);
@@ -965,17 +953,17 @@ static void mdss_dsi_phy_regulator_ctrl(struct mdss_dsi_ctrl_pdata *ctrl,
mutex_lock(&sdata->phy_reg_lock);
if (enable) {
- switch (ctrl->shared_data->hw_rev) {
- case MDSS_DSI_HW_REV_104:
- case MDSS_DSI_HW_REV_104_1:
+ if (ctrl->shared_data->phy_rev == DSI_PHY_REV_20) {
mdss_dsi_8996_phy_regulator_enable(ctrl);
- break;
- case MDSS_DSI_HW_REV_103:
- mdss_dsi_20nm_phy_regulator_enable(ctrl);
- break;
- default:
- mdss_dsi_28nm_phy_regulator_enable(ctrl);
- break;
+ } else {
+ switch (ctrl->shared_data->hw_rev) {
+ case MDSS_DSI_HW_REV_103:
+ mdss_dsi_20nm_phy_regulator_enable(ctrl);
+ break;
+ default:
+ mdss_dsi_28nm_phy_regulator_enable(ctrl);
+ break;
+ }
}
ctrl->is_phyreg_enabled = 1;
} else {
@@ -1006,17 +994,18 @@ static void mdss_dsi_phy_ctrl(struct mdss_dsi_ctrl_pdata *ctrl, bool enable)
}
if (enable) {
- switch (ctrl->shared_data->hw_rev) {
- case MDSS_DSI_HW_REV_104:
- case MDSS_DSI_HW_REV_104_1:
+
+ if (ctrl->shared_data->phy_rev == DSI_PHY_REV_20) {
mdss_dsi_8996_phy_config(ctrl);
- break;
- case MDSS_DSI_HW_REV_103:
- mdss_dsi_20nm_phy_config(ctrl);
- break;
- default:
- mdss_dsi_28nm_phy_config(ctrl);
- break;
+ } else {
+ switch (ctrl->shared_data->hw_rev) {
+ case MDSS_DSI_HW_REV_103:
+ mdss_dsi_20nm_phy_config(ctrl);
+ break;
+ default:
+ mdss_dsi_28nm_phy_config(ctrl);
+ break;
+ }
}
} else {
/*