summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorAravind Venkateswaran <aravindh@codeaurora.org>2016-03-30 14:59:56 -0700
committerJeevan Shriram <jshriram@codeaurora.org>2016-04-18 17:06:22 -0700
commit2ff913cbf016a337f2d6d63efc3986217ee413b9 (patch)
tree1ac3c7715c8b1719b0de8813ed0bb85b90d5b269 /drivers/video/fbdev
parenta302531f3e8b16229162c02c38a6748160a75d06 (diff)
msm: mdss: make DSI regulator settings an optional dt binding
Newer versions of the DSI phy do not require any programming of the lane regulator settings. Make this binding an optional property for the DSI device node. CRs-Fixed: 1000724 Change-Id: I696aab348cdb04db4068b2b62bcd049c839cbc33 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi.c4
-rw-r--r--drivers/video/fbdev/msm/msm_mdss_io_8974.c11
2 files changed, 13 insertions, 2 deletions
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++) {
/*