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