Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2100695 authored by Rob Clark's avatar Rob Clark
Browse files

drm/msm/mdp5: nuke mdp5_plane_complete_flip()



We can do this all from mdp5_plane_complete_commit(), so simplify things
a bit and drop mdp5_plane_complete_flip().

Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent cee26588
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -135,7 +135,6 @@ static void complete_flip(struct drm_crtc *crtc, struct drm_file *file)
	struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc);
	struct drm_device *dev = crtc->dev;
	struct drm_pending_vblank_event *event;
	struct drm_plane *plane;
	unsigned long flags;

	spin_lock_irqsave(&dev->event_lock, flags);
@@ -153,10 +152,6 @@ static void complete_flip(struct drm_crtc *crtc, struct drm_file *file)
	}
	spin_unlock_irqrestore(&dev->event_lock, flags);

	drm_atomic_crtc_for_each_plane(plane, crtc) {
		mdp5_plane_complete_flip(plane);
	}

	if (mdp5_crtc->ctl && !crtc->state->enable) {
		/* set STAGE_UNUSED for all layers */
		mdp5_ctl_blend(mdp5_crtc->ctl, NULL, 0, 0);
+0 −1
Original line number Diff line number Diff line
@@ -208,7 +208,6 @@ int mdp5_irq_domain_init(struct mdp5_kms *mdp5_kms);
void mdp5_irq_domain_fini(struct mdp5_kms *mdp5_kms);

uint32_t mdp5_plane_get_flush(struct drm_plane *plane);
void mdp5_plane_complete_flip(struct drm_plane *plane);
void mdp5_plane_complete_commit(struct drm_plane *plane,
	struct drm_plane_state *state);
enum mdp5_pipe mdp5_plane_pipe(struct drm_plane *plane);
+10 −17
Original line number Diff line number Diff line
@@ -852,20 +852,6 @@ static int mdp5_plane_mode_set(struct drm_plane *plane,
	return ret;
}

void mdp5_plane_complete_flip(struct drm_plane *plane)
{
	struct mdp5_kms *mdp5_kms = get_kms(plane);
	struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
	enum mdp5_pipe pipe = mdp5_plane->pipe;

	DBG("%s: complete flip", mdp5_plane->name);

	if (mdp5_kms->smp)
		mdp5_smp_commit(mdp5_kms->smp, pipe);

	to_mdp5_plane_state(plane->state)->pending = false;
}

enum mdp5_pipe mdp5_plane_pipe(struct drm_plane *plane)
{
	struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
@@ -887,12 +873,19 @@ void mdp5_plane_complete_commit(struct drm_plane *plane,
	struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
	enum mdp5_pipe pipe = mdp5_plane->pipe;

	if (!plane_enabled(plane->state) && mdp5_kms->smp) {
	if (mdp5_kms->smp) {
		if (plane_enabled(plane->state)) {
			DBG("%s: complete flip", mdp5_plane->name);
			mdp5_smp_commit(mdp5_kms->smp, pipe);
		} else {
			DBG("%s: free SMP", mdp5_plane->name);
			mdp5_smp_release(mdp5_kms->smp, pipe);
		}
	}

	to_mdp5_plane_state(plane->state)->pending = false;
}

/* initialize plane */
struct drm_plane *mdp5_plane_init(struct drm_device *dev,
		enum mdp5_pipe pipe, bool private_plane, uint32_t reg_offset,