Commit 71dc6c08 authored by Krishna Manikandan's avatar Krishna Manikandan Committed by Rob Clark

drm/msm/dpu: update bandwidth threshold check

Maximum allowed bandwidth  has no dependency on the type
of panel used. Hence, cleanup the code to use max_bw_high
as the threshold value for bandwidth checks.

Update the maximum allowed bandwidth as 6.8Gbps for
SC7180 target.
Signed-off-by: default avatarKrishna Manikandan <mkrishn@codeaurora.org>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 04d9044f
...@@ -103,22 +103,6 @@ static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc) ...@@ -103,22 +103,6 @@ static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc)
return to_dpu_kms(priv->kms); return to_dpu_kms(priv->kms);
} }
static bool _dpu_core_video_mode_intf_connected(struct drm_crtc *crtc)
{
struct drm_crtc *tmp_crtc;
drm_for_each_crtc(tmp_crtc, crtc->dev) {
if ((dpu_crtc_get_intf_mode(tmp_crtc) == INTF_MODE_VIDEO) &&
tmp_crtc->enabled) {
DPU_DEBUG("video interface connected crtc:%d\n",
tmp_crtc->base.id);
return true;
}
}
return false;
}
static void _dpu_core_perf_calc_crtc(struct dpu_kms *kms, static void _dpu_core_perf_calc_crtc(struct dpu_kms *kms,
struct drm_crtc *crtc, struct drm_crtc *crtc,
struct drm_crtc_state *state, struct drm_crtc_state *state,
...@@ -160,7 +144,6 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, ...@@ -160,7 +144,6 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc,
u32 bw, threshold; u32 bw, threshold;
u64 bw_sum_of_intfs = 0; u64 bw_sum_of_intfs = 0;
enum dpu_crtc_client_type curr_client_type; enum dpu_crtc_client_type curr_client_type;
bool is_video_mode;
struct dpu_crtc_state *dpu_cstate; struct dpu_crtc_state *dpu_cstate;
struct drm_crtc *tmp_crtc; struct drm_crtc *tmp_crtc;
struct dpu_kms *kms; struct dpu_kms *kms;
...@@ -206,11 +189,7 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, ...@@ -206,11 +189,7 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc,
bw = DIV_ROUND_UP_ULL(bw_sum_of_intfs, 1000); bw = DIV_ROUND_UP_ULL(bw_sum_of_intfs, 1000);
DPU_DEBUG("calculated bandwidth=%uk\n", bw); DPU_DEBUG("calculated bandwidth=%uk\n", bw);
is_video_mode = dpu_crtc_get_intf_mode(crtc) == INTF_MODE_VIDEO; threshold = kms->catalog->perf.max_bw_high;
threshold = (is_video_mode ||
_dpu_core_video_mode_intf_connected(crtc)) ?
kms->catalog->perf.max_bw_low :
kms->catalog->perf.max_bw_high;
DPU_DEBUG("final threshold bw limit = %d\n", threshold); DPU_DEBUG("final threshold bw limit = %d\n", threshold);
......
...@@ -537,8 +537,8 @@ static const struct dpu_perf_cfg sdm845_perf_data = { ...@@ -537,8 +537,8 @@ static const struct dpu_perf_cfg sdm845_perf_data = {
}; };
static const struct dpu_perf_cfg sc7180_perf_data = { static const struct dpu_perf_cfg sc7180_perf_data = {
.max_bw_low = 3900000, .max_bw_low = 6800000,
.max_bw_high = 5500000, .max_bw_high = 6800000,
.min_core_ib = 2400000, .min_core_ib = 2400000,
.min_llcc_ib = 800000, .min_llcc_ib = 800000,
.min_dram_ib = 1600000, .min_dram_ib = 1600000,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment