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

Commit 40ccc72b authored by Mika Kuoppala's avatar Mika Kuoppala Committed by Daniel Vetter
Browse files

drm/i915: release cursor when crtc is destroyed



crtc is holding a reference to a cursor bo and it needs
to be released when crtc is destroyed so that we don't leak
the cursor bo.

v2: Enhance set and move cursor so that disabled
cursor is handled correctly (Ville Syrjälä)

Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 2e7c8ee7
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -6509,7 +6509,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
	intel_crtc->cursor_width = width;
	intel_crtc->cursor_height = height;

	intel_crtc_update_cursor(crtc, true);
	intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL);

	return 0;
fail_unpin:
@@ -6528,7 +6528,7 @@ static int intel_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
	intel_crtc->cursor_x = x;
	intel_crtc->cursor_y = y;

	intel_crtc_update_cursor(crtc, true);
	intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL);

	return 0;
}
@@ -7042,6 +7042,8 @@ static void intel_crtc_destroy(struct drm_crtc *crtc)
		kfree(work);
	}

	intel_crtc_cursor_set(crtc, NULL, 0, 0, 0);

	drm_crtc_cleanup(crtc);

	kfree(intel_crtc);