Loading Documentation/devicetree/bindings/fb/mdss-mdp.txt +6 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,12 @@ Bus Scaling Data: Optional properties: - batfet-supply : Phandle for battery FET regulator device node. - vdd-cx-supply : Phandle for vdd CX regulator device node. - vdd-cx-min-uV : The minimum voltage level in uV for the CX rail whenever the display is on. If vdd-cx-supply is specified, then this binding is mandatory. - vdd-cx-max-uV : The maximum voltage level in uV for the CX rail whenever the display is on. If vdd-cx-supply is specified, then this binding is mandatory. - qcom,vbif-settings : Array with key-value pairs of constant VBIF register settings used to setup MDSS QoS for optimum performance. The key used should be offset from "vbif_phys" register Loading drivers/video/fbdev/msm/mdss.h +2 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,8 @@ struct mdss_data_type { struct regulator *fs; struct regulator *venus; struct regulator *vdd_cx; u32 vdd_cx_min_uv; u32 vdd_cx_max_uv; bool batfet_required; struct regulator *batfet; bool en_svs_high; Loading drivers/video/fbdev/msm/mdss_mdp.c +22 −4 Original line number Diff line number Diff line Loading @@ -1703,6 +1703,24 @@ static int mdss_mdp_irq_clk_setup(struct mdss_data_type *mdata) pr_debug("unable to get CX reg. rc=%d\n", PTR_RET(mdata->vdd_cx)); mdata->vdd_cx = NULL; } else { /* Parse CX voltage settings */ ret = of_property_read_u32(mdata->pdev->dev.of_node, "vdd-cx-min-uV", &mdata->vdd_cx_min_uv); if (ret) { pr_err("min uV for vdd-cx not specified. rc=%d\n", ret); return ret; } ret = of_property_read_u32(mdata->pdev->dev.of_node, "vdd-cx-max-uV", &mdata->vdd_cx_max_uv); if (ret) { pr_err("max uV for vdd-cx not specified. rc=%d\n", ret); return ret; } pr_debug("vdd_cx [min_uV, max_uV] = [%d %d]\n", mdata->vdd_cx_min_uv, mdata->vdd_cx_max_uv); } mdata->reg_bus_clt = mdss_reg_bus_vote_client_create("mdp\0"); Loading Loading @@ -4743,8 +4761,8 @@ static int mdss_mdp_cx_ctrl(struct mdss_data_type *mdata, int enable) if (enable) { rc = regulator_set_voltage( mdata->vdd_cx, RPM_REGULATOR_CORNER_SVS_SOC, RPM_REGULATOR_CORNER_SUPER_TURBO); mdata->vdd_cx_min_uv, mdata->vdd_cx_max_uv); if (rc < 0) goto vreg_set_voltage_fail; Loading @@ -4763,8 +4781,8 @@ static int mdss_mdp_cx_ctrl(struct mdss_data_type *mdata, int enable) } rc = regulator_set_voltage( mdata->vdd_cx, RPM_REGULATOR_CORNER_NONE, RPM_REGULATOR_CORNER_SUPER_TURBO); 0, mdata->vdd_cx_max_uv); if (rc < 0) goto vreg_set_voltage_fail; } Loading Loading
Documentation/devicetree/bindings/fb/mdss-mdp.txt +6 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,12 @@ Bus Scaling Data: Optional properties: - batfet-supply : Phandle for battery FET regulator device node. - vdd-cx-supply : Phandle for vdd CX regulator device node. - vdd-cx-min-uV : The minimum voltage level in uV for the CX rail whenever the display is on. If vdd-cx-supply is specified, then this binding is mandatory. - vdd-cx-max-uV : The maximum voltage level in uV for the CX rail whenever the display is on. If vdd-cx-supply is specified, then this binding is mandatory. - qcom,vbif-settings : Array with key-value pairs of constant VBIF register settings used to setup MDSS QoS for optimum performance. The key used should be offset from "vbif_phys" register Loading
drivers/video/fbdev/msm/mdss.h +2 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,8 @@ struct mdss_data_type { struct regulator *fs; struct regulator *venus; struct regulator *vdd_cx; u32 vdd_cx_min_uv; u32 vdd_cx_max_uv; bool batfet_required; struct regulator *batfet; bool en_svs_high; Loading
drivers/video/fbdev/msm/mdss_mdp.c +22 −4 Original line number Diff line number Diff line Loading @@ -1703,6 +1703,24 @@ static int mdss_mdp_irq_clk_setup(struct mdss_data_type *mdata) pr_debug("unable to get CX reg. rc=%d\n", PTR_RET(mdata->vdd_cx)); mdata->vdd_cx = NULL; } else { /* Parse CX voltage settings */ ret = of_property_read_u32(mdata->pdev->dev.of_node, "vdd-cx-min-uV", &mdata->vdd_cx_min_uv); if (ret) { pr_err("min uV for vdd-cx not specified. rc=%d\n", ret); return ret; } ret = of_property_read_u32(mdata->pdev->dev.of_node, "vdd-cx-max-uV", &mdata->vdd_cx_max_uv); if (ret) { pr_err("max uV for vdd-cx not specified. rc=%d\n", ret); return ret; } pr_debug("vdd_cx [min_uV, max_uV] = [%d %d]\n", mdata->vdd_cx_min_uv, mdata->vdd_cx_max_uv); } mdata->reg_bus_clt = mdss_reg_bus_vote_client_create("mdp\0"); Loading Loading @@ -4743,8 +4761,8 @@ static int mdss_mdp_cx_ctrl(struct mdss_data_type *mdata, int enable) if (enable) { rc = regulator_set_voltage( mdata->vdd_cx, RPM_REGULATOR_CORNER_SVS_SOC, RPM_REGULATOR_CORNER_SUPER_TURBO); mdata->vdd_cx_min_uv, mdata->vdd_cx_max_uv); if (rc < 0) goto vreg_set_voltage_fail; Loading @@ -4763,8 +4781,8 @@ static int mdss_mdp_cx_ctrl(struct mdss_data_type *mdata, int enable) } rc = regulator_set_voltage( mdata->vdd_cx, RPM_REGULATOR_CORNER_NONE, RPM_REGULATOR_CORNER_SUPER_TURBO); 0, mdata->vdd_cx_max_uv); if (rc < 0) goto vreg_set_voltage_fail; } Loading