drm/arc: Stop using drm_device->dev_private
[linux-2.6-microblaze.git] / drivers / gpu / drm / arc / arcpgu_crtc.c
index 042d7b5..2254421 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
  */
 
+#include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_device.h>
 #include <drm/drm_fb_cma_helper.h>
@@ -145,16 +146,18 @@ static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = {
 };
 
 static void arc_pgu_plane_atomic_update(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 arcpgu_drm_private *arcpgu;
        struct drm_gem_cma_object *gem;
 
-       if (!plane->state->crtc || !plane->state->fb)
+       if (!new_plane_state->crtc || !new_plane_state->fb)
                return;
 
-       arcpgu = crtc_to_arcpgu_priv(plane->state->crtc);
-       gem = drm_fb_cma_get_gem_obj(plane->state->fb, 0);
+       arcpgu = crtc_to_arcpgu_priv(new_plane_state->crtc);
+       gem = drm_fb_cma_get_gem_obj(new_plane_state->fb, 0);
        arc_pgu_write(arcpgu, ARCPGU_REG_BUF0_ADDR, gem->paddr);
 }
 
@@ -162,15 +165,10 @@ static const struct drm_plane_helper_funcs arc_pgu_plane_helper_funcs = {
        .atomic_update = arc_pgu_plane_atomic_update,
 };
 
-static void arc_pgu_plane_destroy(struct drm_plane *plane)
-{
-       drm_plane_cleanup(plane);
-}
-
 static const struct drm_plane_funcs arc_pgu_plane_funcs = {
        .update_plane           = drm_atomic_helper_update_plane,
        .disable_plane          = drm_atomic_helper_disable_plane,
-       .destroy                = arc_pgu_plane_destroy,
+       .destroy                = drm_plane_cleanup,
        .reset                  = drm_atomic_helper_plane_reset,
        .atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
        .atomic_destroy_state   = drm_atomic_helper_plane_destroy_state,
@@ -178,7 +176,7 @@ static const struct drm_plane_funcs arc_pgu_plane_funcs = {
 
 static struct drm_plane *arc_pgu_plane_init(struct drm_device *drm)
 {
-       struct arcpgu_drm_private *arcpgu = drm->dev_private;
+       struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm);
        struct drm_plane *plane = NULL;
        int ret;
 
@@ -202,7 +200,7 @@ static struct drm_plane *arc_pgu_plane_init(struct drm_device *drm)
 
 int arc_pgu_setup_crtc(struct drm_device *drm)
 {
-       struct arcpgu_drm_private *arcpgu = drm->dev_private;
+       struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm);
        struct drm_plane *primary;
        int ret;
 
@@ -213,7 +211,7 @@ int arc_pgu_setup_crtc(struct drm_device *drm)
        ret = drm_crtc_init_with_planes(drm, &arcpgu->crtc, primary, NULL,
                                        &arc_pgu_crtc_funcs, NULL);
        if (ret) {
-               arc_pgu_plane_destroy(primary);
+               drm_plane_cleanup(primary);
                return ret;
        }