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: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
2e7c8ee7a6
commit
40ccc72b84
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user