diff options
-rw-r--r-- | Documentation/devicetree/bindings/fb/mdss-dsi.txt | 4 | ||||
-rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.c | 4 | ||||
-rw-r--r-- | drivers/video/fbdev/msm/msm_mdss_io_8974.c | 11 |
3 files changed, 15 insertions, 4 deletions
diff --git a/Documentation/devicetree/bindings/fb/mdss-dsi.txt b/Documentation/devicetree/bindings/fb/mdss-dsi.txt index e978646b54f4..50e12ccde14f 100644 --- a/Documentation/devicetree/bindings/fb/mdss-dsi.txt +++ b/Documentation/devicetree/bindings/fb/mdss-dsi.txt @@ -84,8 +84,6 @@ Required properties: - qcom,mdss-fb-map-prim: pHandle that specifies the framebuffer to which the primary interface is mapped. - qcom,mdss-mdp: pHandle that specifies the mdss-mdp device. -- qcom,platform-regulator-settings: An array of length 7 or 5 that specifies the PHY - regulator settings. It use 5 bytes for 8996 pll. - qcom,platform-strength-ctrl: An array of length 2 or 10 that specifies the PHY strengthCtrl settings. It use 10 bytes for 8996 pll. - qcom,platform-lane-config: An array of length 45 or 20 that specifies the PHY @@ -113,6 +111,8 @@ Optional properties: controller. These pin configurations are installed in the pinctrl device node. Refer to pinctrl-bindings.txt - qcom,regulator-ldo-mode: Boolean to enable ldo mode for the dsi phy regulator +- qcom,platform-regulator-settings: An array of length 7 or 5 that specifies the PHY + regulator settings. It use 5 bytes for 8996 pll. - qcom,null-insertion-enabled: Boolean to enable NULL packet insertion feature for DSI controller. - qcom,dsi-irq-line: Boolean specifies if DSI has a different irq line than mdp. diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index 646f75653583..bb4114e90b6c 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -3748,9 +3748,9 @@ static int mdss_dsi_parse_ctrl_params(struct platform_device *ctrl_pdev, data = of_get_property(ctrl_pdev->dev.of_node, "qcom,platform-regulator-settings", &len); if (!data) { - pr_err("%s:%d, Unable to read Phy regulator settings\n", + pr_debug("%s:%d, Unable to read Phy regulator settings\n", __func__, __LINE__); - return -EINVAL; + pinfo->mipi.dsi_phy_db.regulator_len = 0; } else { pinfo->mipi.dsi_phy_db.regulator_len = len; for (i = 0; i < len; i++) diff --git a/drivers/video/fbdev/msm/msm_mdss_io_8974.c b/drivers/video/fbdev/msm/msm_mdss_io_8974.c index b23e24362af6..619c671650ea 100644 --- a/drivers/video/fbdev/msm/msm_mdss_io_8974.c +++ b/drivers/video/fbdev/msm/msm_mdss_io_8974.c @@ -564,6 +564,11 @@ static void mdss_dsi_28nm_phy_regulator_enable( struct mdss_dsi_phy_ctrl *pd; pd = &(((ctrl_pdata->panel_data).panel_info.mipi).dsi_phy_db); + if (pd->regulator_len == 0) { + pr_warn("%s: invalid regulator settings\n", __func__); + return; + } + if (pd->reg_ldo_mode) { /* Regulator ctrl 0 */ MIPI_OUTP(ctrl_pdata->phy_regulator_io.base, 0x0); @@ -855,6 +860,12 @@ static void mdss_dsi_8996_phy_regulator_enable( void __iomem *base; pd = &(((ctrl->panel_data).panel_info.mipi).dsi_phy_db); + + if (pd->regulator_len != 5) { + pr_warn("%s: invalid regulator settings\n", __func__); + return; + } + /* 4 lanes + clk lane configuration */ for (ln = 0; ln < 5; ln++) { /* |