summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorPadmanabhan Komanduru <pkomandu@codeaurora.org>2014-07-03 12:05:06 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:31:35 -0700
commit022d7ffdfdbb4d7c938fc204b76837c4043a67cf (patch)
tree7ba66afbcf00f366382b0231beb92ada03142f5d /drivers/video/fbdev
parent332378092471e5446ecc4051ea0cb42118d008ed (diff)
msm: mdss: update the PHY settings for DSI1 for 8939
For 8939, the DSI_1_PHY_DSIPHY_GLBL_TEST_CTRL register setting is different when compared to other chipsets. Update the register settings for this based on the DSI_HW_VERSION check. This enables dual DSI panel support on 8939. Change-Id: Iebf8015d4a4c978283e74b104bd955a6bf7004c2 Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.h3
-rw-r--r--drivers/video/fbdev/msm/msm_mdss_io_8974.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi.h b/drivers/video/fbdev/msm/mdss_dsi.h
index 62df757052d4..998ac9d7e95f 100644
--- a/drivers/video/fbdev/msm/mdss_dsi.h
+++ b/drivers/video/fbdev/msm/mdss_dsi.h
@@ -45,10 +45,13 @@
#define DSI_PANEL_MAX 8
#define MDSS_DSI_HW_REV_100 0x10000000 /* 8974 */
+#define MDSS_DSI_HW_REV_100_1 0x10000001 /* 8x26 */
+#define MDSS_DSI_HW_REV_100_2 0x10000002 /* 8x26v2 */
#define MDSS_DSI_HW_REV_101 0x10010000 /* 8974v2 */
#define MDSS_DSI_HW_REV_101_1 0x10010001 /* 8974Pro */
#define MDSS_DSI_HW_REV_102 0x10020000 /* 8084 */
#define MDSS_DSI_HW_REV_103 0x10030000 /* 8994 */
+#define MDSS_DSI_HW_REV_103_1 0x10030001 /* 8916/8936 */
enum { /* mipi dsi panel */
diff --git a/drivers/video/fbdev/msm/msm_mdss_io_8974.c b/drivers/video/fbdev/msm/msm_mdss_io_8974.c
index 80364a7b4a97..80badaf41496 100644
--- a/drivers/video/fbdev/msm/msm_mdss_io_8974.c
+++ b/drivers/video/fbdev/msm/msm_mdss_io_8974.c
@@ -1151,6 +1151,7 @@ void mdss_dsi_phy_init(struct mdss_panel_data *pdata)
struct mdss_dsi_phy_ctrl *pd;
int i, off, ln, offset;
struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL, *temp_ctrl = NULL;
+ u32 ctrl_rev;
ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
@@ -1237,8 +1238,11 @@ void mdss_dsi_phy_init(struct mdss_panel_data *pdata)
MIPI_OUTP((ctrl_pdata->phy_io.base) + 0x0170, 0x5f);
wmb();
+ ctrl_rev = MIPI_INP(ctrl_pdata->ctrl_base);
+
/* DSI_0_PHY_DSIPHY_GLBL_TEST_CTRL */
- if ((ctrl_pdata->panel_data).panel_info.pdest == DISPLAY_1)
+ if (((ctrl_pdata->panel_data).panel_info.pdest == DISPLAY_1) ||
+ (ctrl_rev == MDSS_DSI_HW_REV_103_1))
MIPI_OUTP((ctrl_pdata->phy_io.base) + 0x01d4, 0x01);
else
MIPI_OUTP((ctrl_pdata->phy_io.base) + 0x01d4, 0x00);