summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDhaval Patel <pdhaval@codeaurora.org>2015-02-03 11:57:51 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:37:48 -0700
commit5a64010c84d41cbb0fd48c73254767a8592dd71d (patch)
tree3f86a0b27f577f03ae24f0ae65849ffb2546b2d8
parentf79792db8e6c501cac09a2f620e9ad7b3bcc06f2 (diff)
msm: mdss: fix rt bus path configuration
Num of bus path configuraiton represents the RT and NRT paths. Fix the realtime paths calculation. Change-Id: I5b3657d51e60bcfeb51cbbc220e121a2a4dc4d84 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
-rw-r--r--Documentation/devicetree/bindings/fb/mdss-mdp.txt3
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.c14
2 files changed, 13 insertions, 4 deletions
diff --git a/Documentation/devicetree/bindings/fb/mdss-mdp.txt b/Documentation/devicetree/bindings/fb/mdss-mdp.txt
index 424944d6aee2..19549d1cb0bd 100644
--- a/Documentation/devicetree/bindings/fb/mdss-mdp.txt
+++ b/Documentation/devicetree/bindings/fb/mdss-mdp.txt
@@ -160,7 +160,8 @@ Bus Scaling Data:
- qcom,msm-bus,num-paths: This represents the number of paths in each
Bus Scaling Usecase. This value depends on
how many number of AXI master ports are
- dedicated to MDSS for particular chipset.
+ dedicated to MDSS for particular chipset. This
+ value represents the RT + NRT AXI master ports.
- qcom,msm-bus,vectors-KBps: * A series of 4 cell properties, with a format
of (src, dst, ab, ib) which is defined at
Documentation/devicetree/bindings/arm/msm/msm_bus.txt
diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c
index 5219166dae99..d6213583cff6 100644
--- a/drivers/video/fbdev/msm/mdss_mdp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp.c
@@ -2805,11 +2805,11 @@ static int mdss_mdp_parse_dt_ppb_off(struct platform_device *pdev)
static int mdss_mdp_parse_dt_bus_scale(struct platform_device *pdev)
{
- int rc;
+ int rc, paths;
struct mdss_data_type *mdata = platform_get_drvdata(pdev);
- rc = of_property_read_u32(pdev->dev.of_node, "qcom,msm-bus,num-paths",
- &mdata->axi_port_cnt);
+ rc = of_property_read_u32(pdev->dev.of_node,
+ "qcom,msm-bus,num-paths", &paths);
if (rc) {
pr_err("Error. qcom,msm-bus,num-paths prop not found.rc=%d\n",
rc);
@@ -2826,6 +2826,14 @@ static int mdss_mdp_parse_dt_bus_scale(struct platform_device *pdev)
rc = 0;
}
+ if (paths > mdata->nrt_axi_port_cnt) {
+ mdata->axi_port_cnt = paths - mdata->nrt_axi_port_cnt;
+ } else {
+ pr_err("invalid real time path config, total ports:%d, nrt ports:%d\n",
+ paths, mdata->nrt_axi_port_cnt);
+ return -EINVAL;
+ }
+
mdata->bus_scale_table = msm_bus_cl_get_pdata(pdev);
if (IS_ERR_OR_NULL(mdata->bus_scale_table)) {
rc = PTR_ERR(mdata->bus_scale_table);