summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2021-06-23 14:06:20 -0700
committerRob Clark <robdclark@chromium.org>2021-06-23 14:06:20 -0700
commite88bbc91849b2bf57683119c339e52916d34433f (patch)
treefe1716c56f72d4b74543d90da31650e5b7badb42 /drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
parentc1d12c19efd91b9cda5472bc4ec48854e67c24a8 (diff)
downloadlinux-e88bbc91849b2bf57683119c339e52916d34433f.tar.bz2
Revert "drm/msm/mdp5: provide dynamic bandwidth management"
This reverts commit c1d12c19efd91b9cda5472bc4ec48854e67c24a8. Breaks armv7 build ERROR: modpost: "__aeabi_ldivmod" [drivers/gpu/drm/msm/msm.ko] undefined! Signed-off-by: Rob Clark <robdclark@chromium.org>
Diffstat (limited to 'drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c')
-rw-r--r--drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c44
1 files changed, 0 insertions, 44 deletions
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
index a9332078aa13..f482e0911d03 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
@@ -43,9 +43,6 @@ struct mdp5_crtc {
/* for unref'ing cursor bo's after scanout completes: */
struct drm_flip_work unref_cursor_work;
- /* for lowering down the bandwidth after previous frame is complete */
- struct drm_flip_work lower_bw_work;
-
struct mdp_irq vblank;
struct mdp_irq err;
struct mdp_irq pp_done;
@@ -174,28 +171,12 @@ static void unref_cursor_worker(struct drm_flip_work *work, void *val)
drm_gem_object_put(val);
}
-static void lower_bw_worker(struct drm_flip_work *work, void *val)
-{
- struct mdp5_crtc *mdp5_crtc =
- container_of(work, struct mdp5_crtc, lower_bw_work);
- struct drm_crtc *crtc = &mdp5_crtc->base;
- struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state);
- struct mdp5_kms *mdp5_kms = get_kms(&mdp5_crtc->base);
-
- if (mdp5_cstate->old_crtc_bw > mdp5_cstate->new_crtc_bw) {
- DBG("DOWN BW to %lld\n", mdp5_cstate->new_crtc_bw);
- mdp5_kms_set_bandwidth(mdp5_kms);
- mdp5_cstate->old_crtc_bw = mdp5_cstate->new_crtc_bw;
- }
-}
-
static void mdp5_crtc_destroy(struct drm_crtc *crtc)
{
struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc);
drm_crtc_cleanup(crtc);
drm_flip_work_cleanup(&mdp5_crtc->unref_cursor_work);
- drm_flip_work_cleanup(&mdp5_crtc->lower_bw_work);
kfree(mdp5_crtc);
}
@@ -710,7 +691,6 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc,
struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
crtc);
struct mdp5_kms *mdp5_kms = get_kms(crtc);
- struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc_state);
struct drm_plane *plane;
struct drm_device *dev = crtc->dev;
struct plane_state pstates[STAGE_MAX + 1];
@@ -721,7 +701,6 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc,
bool need_right_mixer = false;
int cnt = 0, i;
int ret;
- u64 crtc_bw = 0;
enum mdp_mixer_stage_id start;
DBG("%s: check", crtc->name);
@@ -739,9 +718,6 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc,
*/
if (pstates[cnt].state->r_hwpipe)
need_right_mixer = true;
-
- crtc_bw += pstates[cnt].state->plane_bw;
-
cnt++;
if (plane->type == DRM_PLANE_TYPE_CURSOR)
@@ -754,10 +730,6 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc,
hw_cfg = mdp5_cfg_get_hw_config(mdp5_kms->cfg);
- if (hw_cfg->perf.ab_inefficiency)
- crtc_bw = mult_frac(crtc_bw, hw_cfg->perf.ab_inefficiency, 100);
- mdp5_cstate->new_crtc_bw = crtc_bw;
-
/*
* we need a right hwmixer if the mode's width is greater than a single
* LM's max width
@@ -813,7 +785,6 @@ static void mdp5_crtc_atomic_flush(struct drm_crtc *crtc,
{
struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc);
struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state);
- struct mdp5_kms *mdp5_kms = get_kms(crtc);
struct drm_device *dev = crtc->dev;
unsigned long flags;
@@ -837,12 +808,6 @@ static void mdp5_crtc_atomic_flush(struct drm_crtc *crtc,
blend_setup(crtc);
- if (mdp5_cstate->old_crtc_bw < mdp5_cstate->new_crtc_bw) {
- DBG("UP BW to %lld\n", mdp5_cstate->new_crtc_bw);
- mdp5_kms_set_bandwidth(mdp5_kms);
- mdp5_cstate->old_crtc_bw = mdp5_cstate->new_crtc_bw;
- }
-
/* PP_DONE irq is only used by command mode for now.
* It is better to request pending before FLUSH and START trigger
* to make sure no pp_done irq missed.
@@ -1190,7 +1155,6 @@ static void mdp5_crtc_vblank_irq(struct mdp_irq *irq, uint32_t irqstatus)
{
struct mdp5_crtc *mdp5_crtc = container_of(irq, struct mdp5_crtc, vblank);
struct drm_crtc *crtc = &mdp5_crtc->base;
- struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state);
struct msm_drm_private *priv = crtc->dev->dev_private;
unsigned pending;
@@ -1198,11 +1162,6 @@ static void mdp5_crtc_vblank_irq(struct mdp_irq *irq, uint32_t irqstatus)
pending = atomic_xchg(&mdp5_crtc->pending, 0);
- if (mdp5_cstate->old_crtc_bw > mdp5_cstate->new_crtc_bw) {
- drm_flip_work_queue(&mdp5_crtc->lower_bw_work, NULL);
- drm_flip_work_commit(&mdp5_crtc->lower_bw_work, priv->wq);
- }
-
if (pending & PENDING_FLIP) {
complete_flip(crtc, NULL);
}
@@ -1359,9 +1318,6 @@ struct drm_crtc *mdp5_crtc_init(struct drm_device *dev,
drm_flip_work_init(&mdp5_crtc->unref_cursor_work,
"unref cursor", unref_cursor_worker);
- drm_flip_work_init(&mdp5_crtc->lower_bw_work,
- "lower bw", lower_bw_worker);
-
drm_crtc_helper_add(crtc, &mdp5_crtc_helper_funcs);
return crtc;