summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/fb/mdss-dsi.txt4
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.c4
-rw-r--r--drivers/video/fbdev/msm/msm_mdss_io_8974.c11
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++) {
/*