[PATCH 4/4] drm/tinydrm: Use damage helper for dirtyfb

David Lechner david at lechnology.com
Fri Jan 11 01:06:44 UTC 2019


On 1/9/19 11:49 AM, Noralf Trønnes wrote:
> This switches to drm_atomic_helper_dirtyfb() as the framebuffer dirty
> handler. All flushing will now happen in the pipe functions.
> 
> Also enable the damage plane property for all except repaper which can
> only do full updates.
> 
> ili9225:
> This change made ili9225_init() equal to mipi_dbi_init() so use it.
> 
> Cc: David Lechner <david at lechnology.com>
> Cc: Eric Anholt <eric at anholt.net>
> Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
> ---

...

> +static void ili9225_pipe_update(struct drm_simple_display_pipe *pipe,
> +				struct drm_plane_state *old_state)
> +{
> +	struct drm_plane_state *state = pipe->plane.state;
> +	struct drm_crtc *crtc = &pipe->crtc;
> +	struct drm_rect rect;
> +
> +	if (drm_atomic_helper_damage_merged(old_state, state, &rect))
> +		ili9225_fb_dirty(state->fb, &rect);
> +
> +	if (crtc->state->event) {
> +		spin_lock_irq(&crtc->dev->event_lock);
> +		drm_crtc_send_vblank_event(crtc, crtc->state->event);
> +		spin_unlock_irq(&crtc->dev->event_lock);
> +		crtc->state->event = NULL;
> +	}
> +}

It looks like this function body is repeated 4 times with the only
difference being the dirty function. Perhaps a helper function is
called for?

Also, I was going to test out this series the displays that I have,
but I guess I will wait until it is easier to apply the patches.


More information about the dri-devel mailing list