drm/armada: Don't use drm_device->dev_private
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 4 Sep 2020 14:39:19 +0000 (16:39 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 11 Sep 2020 08:47:19 +0000 (10:47 +0200)
Upcasting using a container_of macro is more typesafe, faster and
easier for the compiler to optimize.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Cc: Russell King <linux@armlinux.org.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200904143941.110665-3-daniel.vetter@ffwll.ch
drivers/gpu/drm/armada/armada_crtc.c
drivers/gpu/drm/armada/armada_debugfs.c
drivers/gpu/drm/armada/armada_drm.h
drivers/gpu/drm/armada/armada_drv.c
drivers/gpu/drm/armada/armada_fbdev.c
drivers/gpu/drm/armada/armada_gem.c
drivers/gpu/drm/armada/armada_overlay.c

index 38dfaa4..a887b6a 100644 (file)
@@ -757,7 +757,7 @@ static int armada_drm_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
 static void armada_drm_crtc_destroy(struct drm_crtc *crtc)
 {
        struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc);
-       struct armada_private *priv = crtc->dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(crtc->dev);
 
        if (dcrtc->cursor_obj)
                drm_gem_object_put(&dcrtc->cursor_obj->obj);
@@ -901,7 +901,7 @@ static int armada_drm_crtc_create(struct drm_device *drm, struct device *dev,
        struct resource *res, int irq, const struct armada_variant *variant,
        struct device_node *port)
 {
-       struct armada_private *priv = drm->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(drm);
        struct armada_crtc *dcrtc;
        struct drm_plane *primary;
        void __iomem *base;
index c6fc2f1..29f4b52 100644 (file)
@@ -19,7 +19,7 @@ static int armada_debugfs_gem_linear_show(struct seq_file *m, void *data)
 {
        struct drm_info_node *node = m->private;
        struct drm_device *dev = node->minor->dev;
-       struct armada_private *priv = dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(dev);
        struct drm_printer p = drm_seq_file_printer(m);
 
        mutex_lock(&priv->linear_lock);
index a11bdac..6a5a879 100644 (file)
@@ -73,6 +73,8 @@ struct armada_private {
 #endif
 };
 
+#define drm_to_armada_dev(dev) container_of(dev, struct armada_private, drm)
+
 int armada_fbdev_init(struct drm_device *);
 void armada_fbdev_fini(struct drm_device *);
 
index a8d5908..980d3f1 100644 (file)
@@ -106,8 +106,6 @@ static int armada_drm_bind(struct device *dev)
                return ret;
        }
 
-       priv->drm.dev_private = priv;
-
        dev_set_drvdata(dev, &priv->drm);
 
        /* Mode setting support */
@@ -169,7 +167,7 @@ static int armada_drm_bind(struct device *dev)
 static void armada_drm_unbind(struct device *dev)
 {
        struct drm_device *drm = dev_get_drvdata(dev);
-       struct armada_private *priv = drm->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(drm);
 
        drm_kms_helper_poll_fini(&priv->drm);
        armada_fbdev_fini(&priv->drm);
index 0c46012..38f5170 100644 (file)
@@ -117,7 +117,7 @@ static const struct drm_fb_helper_funcs armada_fb_helper_funcs = {
 
 int armada_fbdev_init(struct drm_device *dev)
 {
-       struct armada_private *priv = dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(dev);
        struct drm_fb_helper *fbh;
        int ret;
 
@@ -151,7 +151,7 @@ int armada_fbdev_init(struct drm_device *dev)
 
 void armada_fbdev_fini(struct drm_device *dev)
 {
-       struct armada_private *priv = dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(dev);
        struct drm_fb_helper *fbh = priv->fbdev;
 
        if (fbh) {
index 8005614..ecf8a55 100644 (file)
@@ -39,7 +39,7 @@ static size_t roundup_gem_size(size_t size)
 void armada_gem_free_object(struct drm_gem_object *obj)
 {
        struct armada_gem_object *dobj = drm_to_armada_gem(obj);
-       struct armada_private *priv = obj->dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(obj->dev);
 
        DRM_DEBUG_DRIVER("release obj %p\n", dobj);
 
@@ -77,7 +77,7 @@ void armada_gem_free_object(struct drm_gem_object *obj)
 int
 armada_gem_linear_back(struct drm_device *dev, struct armada_gem_object *obj)
 {
-       struct armada_private *priv = dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(dev);
        size_t size = obj->obj.size;
 
        if (obj->page || obj->linear)
index 07f0da4..30e0110 100644 (file)
@@ -344,7 +344,7 @@ static int armada_overlay_set_property(struct drm_plane *plane,
        struct drm_plane_state *state, struct drm_property *property,
        uint64_t val)
 {
-       struct armada_private *priv = plane->dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(plane->dev);
 
 #define K2R(val) (((val) >> 0) & 0xff)
 #define K2G(val) (((val) >> 8) & 0xff)
@@ -412,7 +412,7 @@ static int armada_overlay_get_property(struct drm_plane *plane,
        const struct drm_plane_state *state, struct drm_property *property,
        uint64_t *val)
 {
-       struct armada_private *priv = plane->dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(plane->dev);
 
 #define C2K(c,s)       (((c) >> (s)) & 0xff)
 #define R2BGR(r,g,b,s) (C2K(r,s) << 0 | C2K(g,s) << 8 | C2K(b,s) << 16)
@@ -505,7 +505,7 @@ static const struct drm_prop_enum_list armada_drm_colorkey_enum_list[] = {
 
 static int armada_overlay_create_properties(struct drm_device *dev)
 {
-       struct armada_private *priv = dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(dev);
 
        if (priv->colorkey_prop)
                return 0;
@@ -539,7 +539,7 @@ static int armada_overlay_create_properties(struct drm_device *dev)
 
 int armada_overlay_plane_create(struct drm_device *dev, unsigned long crtcs)
 {
-       struct armada_private *priv = dev->dev_private;
+       struct armada_private *priv = drm_to_armada_dev(dev);
        struct drm_mode_object *mobj;
        struct drm_plane *overlay;
        int ret;