diff options
Diffstat (limited to 'drivers/gpu/drm/meson/meson_overlay.c')
| -rw-r--r-- | drivers/gpu/drm/meson/meson_overlay.c | 31 | 
1 files changed, 18 insertions, 13 deletions
| diff --git a/drivers/gpu/drm/meson/meson_overlay.c b/drivers/gpu/drm/meson/meson_overlay.c index 1ffbbecafa22..ed063152aecd 100644 --- a/drivers/gpu/drm/meson/meson_overlay.c +++ b/drivers/gpu/drm/meson/meson_overlay.c @@ -10,11 +10,11 @@  #include <drm/drm_atomic.h>  #include <drm/drm_atomic_helper.h>  #include <drm/drm_device.h> +#include <drm/drm_fb_cma_helper.h>  #include <drm/drm_fourcc.h> -#include <drm/drm_plane_helper.h> +#include <drm/drm_gem_atomic_helper.h>  #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_fb_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_plane_helper.h>  #include "meson_overlay.h"  #include "meson_registers.h" @@ -165,18 +165,22 @@ struct meson_overlay {  #define FRAC_16_16(mult, div)    (((mult) << 16) / (div))  static int meson_overlay_atomic_check(struct drm_plane *plane, -				      struct drm_plane_state *state) +				      struct drm_atomic_state *state)  { +	struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, +										 plane);  	struct drm_crtc_state *crtc_state; -	if (!state->crtc) +	if (!new_plane_state->crtc)  		return 0; -	crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc); +	crtc_state = drm_atomic_get_crtc_state(state, +					       new_plane_state->crtc);  	if (IS_ERR(crtc_state))  		return PTR_ERR(crtc_state); -	return drm_atomic_helper_check_plane_state(state, crtc_state, +	return drm_atomic_helper_check_plane_state(new_plane_state, +						   crtc_state,  						   FRAC_16_16(1, 5),  						   FRAC_16_16(5, 1),  						   true, true); @@ -464,11 +468,12 @@ static void meson_overlay_setup_scaler_params(struct meson_drm *priv,  }  static void meson_overlay_atomic_update(struct drm_plane *plane, -					struct drm_plane_state *old_state) +					struct drm_atomic_state *state)  {  	struct meson_overlay *meson_overlay = to_meson_overlay(plane); -	struct drm_plane_state *state = plane->state; -	struct drm_framebuffer *fb = state->fb; +	struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, +									   plane); +	struct drm_framebuffer *fb = new_state->fb;  	struct meson_drm *priv = meson_overlay->priv;  	struct drm_gem_cma_object *gem;  	unsigned long flags; @@ -476,7 +481,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane,  	DRM_DEBUG_DRIVER("\n"); -	interlace_mode = state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE; +	interlace_mode = new_state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE;  	spin_lock_irqsave(&priv->drm->event_lock, flags); @@ -717,7 +722,7 @@ static void meson_overlay_atomic_update(struct drm_plane *plane,  }  static void meson_overlay_atomic_disable(struct drm_plane *plane, -				       struct drm_plane_state *old_state) +				       struct drm_atomic_state *state)  {  	struct meson_overlay *meson_overlay = to_meson_overlay(plane);  	struct meson_drm *priv = meson_overlay->priv; @@ -742,7 +747,7 @@ static const struct drm_plane_helper_funcs meson_overlay_helper_funcs = {  	.atomic_check	= meson_overlay_atomic_check,  	.atomic_disable	= meson_overlay_atomic_disable,  	.atomic_update	= meson_overlay_atomic_update, -	.prepare_fb	= drm_gem_fb_prepare_fb, +	.prepare_fb	= drm_gem_plane_helper_prepare_fb,  };  static bool meson_overlay_format_mod_supported(struct drm_plane *plane, | 
