From 3f2675c9cdffa29cf1c65f0363b8629368ee13b0 Mon Sep 17 00:00:00 2001 From: Ujwal Patel Date: Tue, 19 May 2015 10:10:18 -0700 Subject: [PATCH] msm: mdss: clean-up terminology used for different bus bw votes Current driver votes for bandwidth on two different kinds of buses, data (AXI) and register (AHB). However terminology used to track these voting is not consistent and easily lead to misunderstanding. Clean-up some of these terminology to make driver code more readable. Change-Id: I54d636125786876e8326d6c0279b5a76a1591ae9 Signed-off-by: Ujwal Patel --- drivers/video/fbdev/msm/mdss.h | 20 ++++---- drivers/video/fbdev/msm/mdss_hdmi_tx.c | 6 +-- drivers/video/fbdev/msm/mdss_mdp.c | 56 +++++++++++----------- drivers/video/fbdev/msm/mdss_smmu.c | 6 +-- drivers/video/fbdev/msm/msm_mdss_io_8974.c | 6 +-- 5 files changed, 48 insertions(+), 46 deletions(-) diff --git a/drivers/video/fbdev/msm/mdss.h b/drivers/video/fbdev/msm/mdss.h index 52459920ebf5..4fa2fad2b02f 100644 --- a/drivers/video/fbdev/msm/mdss.h +++ b/drivers/video/fbdev/msm/mdss.h @@ -285,11 +285,20 @@ struct mdss_data_type { u32 rot_block_size; + /* data bus (AXI) */ + u32 bus_hdl; + u32 bus_ref_cnt; + struct mutex bus_lock; + + /* register bus (AHB) */ + u32 reg_bus_hdl; + u32 reg_bus_ref_cnt; + struct mutex reg_bus_lock; + u32 axi_port_cnt; u32 nrt_axi_port_cnt; u32 bus_channels; u32 curr_bw_uc_idx; - u32 bus_hdl; struct msm_bus_scale_pdata *bus_scale_table; u32 max_bw_low; u32 max_bw_high; @@ -297,10 +306,6 @@ struct mdss_data_type { u32 *vbif_rt_qos; u32 *vbif_nrt_qos; u32 npriority_lvl; - u32 bus_bw_cnt; - struct mutex bus_bw_lock; - - u32 reg_bus_hdl; struct mdss_fudge_factor ab_factor; struct mdss_fudge_factor ib_factor; @@ -398,9 +403,6 @@ struct mdss_data_type { struct mdss_mdp_dsc *dsc_off; u32 ndsc; - struct mutex mdp_bus_lock; - u32 bus_ref_cnt; - struct mdss_max_bw_settings *max_bw_settings; u32 bw_mode_bitmap; u32 max_bw_settings_cnt; @@ -425,7 +427,7 @@ struct irq_info *mdss_intr_line(void); void mdss_bus_bandwidth_ctrl(int enable); int mdss_iommu_ctrl(int enable); int mdss_bus_scale_set_quota(int client, u64 ab_quota, u64 ib_quota); -int mdss_enable_bus_vote(int usecase_ndx); +int mdss_update_reg_bus_vote(int usecase_ndx); struct mdss_util_intf { bool mdp_probe_done; diff --git a/drivers/video/fbdev/msm/mdss_hdmi_tx.c b/drivers/video/fbdev/msm/mdss_hdmi_tx.c index 34d04b805fd1..39e63e8a3edd 100644 --- a/drivers/video/fbdev/msm/mdss_hdmi_tx.c +++ b/drivers/video/fbdev/msm/mdss_hdmi_tx.c @@ -2199,7 +2199,7 @@ static int hdmi_tx_enable_power(struct hdmi_tx_ctrl *hdmi_ctrl, __func__, hdmi_tx_pm_name(module), rc); goto disable_vreg; } - mdss_enable_bus_vote(VOTE_INDEX_19_MHZ); + mdss_update_reg_bus_vote(VOTE_INDEX_19_MHZ); rc = msm_dss_clk_set_rate(power_data->clk_config, power_data->num_clk); @@ -2219,7 +2219,7 @@ static int hdmi_tx_enable_power(struct hdmi_tx_ctrl *hdmi_ctrl, } else { msm_dss_enable_clk(power_data->clk_config, power_data->num_clk, 0); - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); msm_dss_enable_gpio(power_data->gpio_config, power_data->num_gpio, 0); hdmi_tx_pinctrl_set_state(hdmi_ctrl, module, 0); @@ -2230,7 +2230,7 @@ static int hdmi_tx_enable_power(struct hdmi_tx_ctrl *hdmi_ctrl, return rc; disable_gpio: - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); msm_dss_enable_gpio(power_data->gpio_config, power_data->num_gpio, 0); disable_vreg: msm_dss_enable_vreg(power_data->vreg_config, power_data->num_vreg, 0); diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c index 8fcb39513290..08a80ae5ab8b 100644 --- a/drivers/video/fbdev/msm/mdss_mdp.c +++ b/drivers/video/fbdev/msm/mdss_mdp.c @@ -303,7 +303,7 @@ static void mdss_mdp_bus_scale_unregister(struct mdss_data_type *mdata) } /* - * Caller needs to hold mdata->bus_bw_lock lock before calling this function. + * Caller needs to hold mdata->bus_lock lock before calling this function. */ static int mdss_mdp_bus_scale_set_quota(u64 ab_quota_rt, u64 ab_quota_nrt, u64 ib_quota_rt, u64 ib_quota_nrt) @@ -398,7 +398,7 @@ static int mdss_mdp_bus_scale_set_quota(u64 ab_quota_rt, u64 ab_quota_nrt, } mdss_res->curr_bw_uc_idx = new_uc_idx; - if ((mdss_res->bus_bw_cnt == 0) && mdss_res->curr_bw_uc_idx) { + if ((mdss_res->bus_ref_cnt == 0) && mdss_res->curr_bw_uc_idx) { rc = 0; } else { /* vote BW if bus_bw_cnt > 0 or uc_idx is zero */ ATRACE_BEGIN("msm_bus_scale_req"); @@ -409,35 +409,35 @@ static int mdss_mdp_bus_scale_set_quota(u64 ab_quota_rt, u64 ab_quota_nrt, return rc; } -int mdss_enable_bus_vote(int usecase_ndx) +int mdss_update_reg_bus_vote(int usecase_ndx) { int changed = 0, ret = 0; if (!mdss_res || !mdss_res->reg_bus_hdl) return 0; - mutex_lock(&mdss_res->mdp_bus_lock); + mutex_lock(&mdss_res->reg_bus_lock); if (usecase_ndx) { - if (mdss_res->bus_ref_cnt == 0) + if (mdss_res->reg_bus_ref_cnt == 0) changed++; - mdss_res->bus_ref_cnt++; + mdss_res->reg_bus_ref_cnt++; } else { - if (mdss_res->bus_ref_cnt) { - mdss_res->bus_ref_cnt--; - if (mdss_res->bus_ref_cnt == 0) + if (mdss_res->reg_bus_ref_cnt) { + mdss_res->reg_bus_ref_cnt--; + if (mdss_res->reg_bus_ref_cnt == 0) changed++; } else { pr_err("Can not be turned off\n"); } } - pr_debug("%s: clk_cnt=%d changed=%d usecase_index=%d\n", - __func__, mdss_res->bus_ref_cnt, changed, usecase_ndx); + pr_debug("clk_cnt=%d changed=%d usecase_index=%d\n", + mdss_res->reg_bus_ref_cnt, changed, usecase_ndx); if (changed) ret = msm_bus_scale_client_update_request(mdss_res->reg_bus_hdl, usecase_ndx); - mutex_unlock(&mdss_res->mdp_bus_lock); + mutex_unlock(&mdss_res->reg_bus_lock); return ret; } @@ -449,7 +449,7 @@ int mdss_bus_scale_set_quota(int client, u64 ab_quota, u64 ib_quota) u64 total_ab_rt = 0, total_ib_rt = 0; u64 total_ab_nrt = 0, total_ib_nrt = 0; - mutex_lock(&mdss_res->bus_bw_lock); + mutex_lock(&mdss_res->bus_lock); mdss_res->ab[client] = ab_quota; mdss_res->ib[client] = ib_quota; @@ -468,7 +468,7 @@ int mdss_bus_scale_set_quota(int client, u64 ab_quota, u64 ib_quota) rc = mdss_mdp_bus_scale_set_quota(total_ab_rt, total_ab_nrt, total_ib_rt, total_ib_nrt); - mutex_unlock(&mdss_res->bus_bw_lock); + mutex_unlock(&mdss_res->bus_lock); return rc; } @@ -780,15 +780,15 @@ void mdss_bus_bandwidth_ctrl(int enable) struct mdss_data_type *mdata = mdss_mdp_get_mdata(); int changed = 0; - mutex_lock(&mdata->bus_bw_lock); + mutex_lock(&mdata->bus_lock); if (enable) { - if (mdata->bus_bw_cnt == 0) + if (mdata->bus_ref_cnt == 0) changed++; - mdata->bus_bw_cnt++; + mdata->bus_ref_cnt++; } else { - if (mdata->bus_bw_cnt) { - mdata->bus_bw_cnt--; - if (mdata->bus_bw_cnt == 0) + if (mdata->bus_ref_cnt) { + mdata->bus_ref_cnt--; + if (mdata->bus_ref_cnt == 0) changed++; } else { pr_err("Can not be turned off\n"); @@ -796,7 +796,7 @@ void mdss_bus_bandwidth_ctrl(int enable) } pr_debug("bw_cnt=%d changed=%d enable=%d\n", - mdata->bus_bw_cnt, changed, enable); + mdata->bus_ref_cnt, changed, enable); if (changed) { if (!enable) { @@ -812,7 +812,7 @@ void mdss_bus_bandwidth_ctrl(int enable) } } - mutex_unlock(&mdata->bus_bw_lock); + mutex_unlock(&mdata->bus_lock); } EXPORT_SYMBOL(mdss_bus_bandwidth_ctrl); @@ -846,7 +846,7 @@ void mdss_mdp_clk_ctrl(int enable) if (changed) { if (enable) { pm_runtime_get_sync(&mdata->pdev->dev); - mdss_enable_bus_vote(VOTE_INDEX_19_MHZ); + mdss_update_reg_bus_vote(VOTE_INDEX_19_MHZ); } mdata->clk_ena = enable; @@ -859,7 +859,7 @@ void mdss_mdp_clk_ctrl(int enable) mdss_mdp_clk_update(MDSS_CLK_MDP_VSYNC, enable); if (!enable) { - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); pm_runtime_mark_last_busy(&mdata->pdev->dev); pm_runtime_put_autosuspend(&mdata->pdev->dev); } @@ -901,7 +901,7 @@ static void __mdss_restore_sec_cfg(struct mdss_data_type *mdata) pr_debug("restoring mdss secure config\n"); - mdss_enable_bus_vote(VOTE_INDEX_19_MHZ); + mdss_update_reg_bus_vote(VOTE_INDEX_19_MHZ); mdss_mdp_clk_update(MDSS_CLK_AHB, 1); mdss_mdp_clk_update(MDSS_CLK_AXI, 1); mdss_mdp_clk_update(MDSS_CLK_MDP_CORE, 1); @@ -912,7 +912,7 @@ static void __mdss_restore_sec_cfg(struct mdss_data_type *mdata) ret, scm_ret); mdss_mdp_clk_update(MDSS_CLK_AHB, 0); - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); mdss_mdp_clk_update(MDSS_CLK_AXI, 0); mdss_mdp_clk_update(MDSS_CLK_MDP_CORE, 0); } @@ -1501,8 +1501,8 @@ static int mdss_mdp_probe(struct platform_device *pdev) platform_set_drvdata(pdev, mdata); mdss_res = mdata; mutex_init(&mdata->reg_lock); - mutex_init(&mdata->mdp_bus_lock); - mutex_init(&mdata->bus_bw_lock); + mutex_init(&mdata->reg_bus_lock); + mutex_init(&mdata->bus_lock); atomic_set(&mdata->sd_client_count, 0); atomic_set(&mdata->active_intf_cnt, 0); diff --git a/drivers/video/fbdev/msm/mdss_smmu.c b/drivers/video/fbdev/msm/mdss_smmu.c index 035b8eb6e080..6f2d34aff5cb 100644 --- a/drivers/video/fbdev/msm/mdss_smmu.c +++ b/drivers/video/fbdev/msm/mdss_smmu.c @@ -113,18 +113,18 @@ static int mdss_smmu_enable_power(struct dss_module_power *mp, bool enable) pr_err("vreg enable failed - rc:%d\n", rc); goto end; } - mdss_enable_bus_vote(VOTE_INDEX_19_MHZ); + mdss_update_reg_bus_vote(VOTE_INDEX_19_MHZ); rc = msm_dss_enable_clk(mp->clk_config, mp->num_clk, true); if (rc) { pr_err("clock enable failed - rc:%d\n", rc); - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); msm_dss_enable_vreg(mp->vreg_config, mp->num_vreg, false); goto end; } } else { msm_dss_enable_clk(mp->clk_config, mp->num_clk, false); - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); msm_dss_enable_vreg(mp->vreg_config, mp->num_vreg, false); } end: diff --git a/drivers/video/fbdev/msm/msm_mdss_io_8974.c b/drivers/video/fbdev/msm/msm_mdss_io_8974.c index 79599a2800bf..267d5d171e97 100644 --- a/drivers/video/fbdev/msm/msm_mdss_io_8974.c +++ b/drivers/video/fbdev/msm/msm_mdss_io_8974.c @@ -945,7 +945,7 @@ static int mdss_dsi_bus_clk_start(struct mdss_dsi_ctrl_pdata *ctrl_pdata) __func__, rc); goto error; } - mdss_enable_bus_vote(VOTE_INDEX_19_MHZ); + mdss_update_reg_bus_vote(VOTE_INDEX_19_MHZ); rc = clk_prepare_enable(ctrl_pdata->ahb_clk); if (rc) { @@ -974,7 +974,7 @@ disable_axi_clk: disable_ahb_clk: clk_disable_unprepare(ctrl_pdata->ahb_clk); disable_core_clk: - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); clk_disable_unprepare(ctrl_pdata->mdp_core_clk); error: return rc; @@ -986,7 +986,7 @@ static void mdss_dsi_bus_clk_stop(struct mdss_dsi_ctrl_pdata *ctrl_pdata) clk_disable_unprepare(ctrl_pdata->mmss_misc_ahb_clk); clk_disable_unprepare(ctrl_pdata->axi_clk); clk_disable_unprepare(ctrl_pdata->ahb_clk); - mdss_enable_bus_vote(VOTE_INDEX_DISABLE); + mdss_update_reg_bus_vote(VOTE_INDEX_DISABLE); clk_disable_unprepare(ctrl_pdata->mdp_core_clk); }