drm/mode: move framebuffer_free up above framebuffer_init
authorDave Airlie <airlied@redhat.com>
Fri, 15 Apr 2016 05:10:33 +0000 (15:10 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 22 Apr 2016 00:26:42 +0000 (10:26 +1000)
A later patch will use it in framebuffer_init, and I want
to keep the diff cleaner.

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_crtc.c

index 7724266dbaca7724a97c631809ee7eb0ed56c06d..339d6ca21f57c59a799c14a57b9782a8a1cb1097 100644 (file)
@@ -389,6 +389,35 @@ struct drm_mode_object *drm_mode_object_find(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_mode_object_find);
 
+/* dev->mode_config.fb_lock must be held! */
+static void __drm_framebuffer_unregister(struct drm_device *dev,
+                                        struct drm_framebuffer *fb)
+{
+       drm_mode_object_put(dev, &fb->base);
+
+       fb->base.id = 0;
+}
+
+static void drm_framebuffer_free(struct kref *kref)
+{
+       struct drm_framebuffer *fb =
+                       container_of(kref, struct drm_framebuffer, refcount);
+       struct drm_device *dev = fb->dev;
+
+       /*
+        * The lookup idr holds a weak reference, which has not necessarily been
+        * removed at this point. Check for that.
+        */
+       mutex_lock(&dev->mode_config.fb_lock);
+       if (fb->base.id) {
+               /* Mark fb as reaped and drop idr ref. */
+               __drm_framebuffer_unregister(dev, fb);
+       }
+       mutex_unlock(&dev->mode_config.fb_lock);
+
+       fb->funcs->destroy(fb);
+}
+
 /**
  * drm_framebuffer_init - initialize a framebuffer
  * @dev: DRM device
@@ -431,35 +460,6 @@ out:
 }
 EXPORT_SYMBOL(drm_framebuffer_init);
 
-/* dev->mode_config.fb_lock must be held! */
-static void __drm_framebuffer_unregister(struct drm_device *dev,
-                                        struct drm_framebuffer *fb)
-{
-       drm_mode_object_put(dev, &fb->base);
-
-       fb->base.id = 0;
-}
-
-static void drm_framebuffer_free(struct kref *kref)
-{
-       struct drm_framebuffer *fb =
-                       container_of(kref, struct drm_framebuffer, refcount);
-       struct drm_device *dev = fb->dev;
-
-       /*
-        * The lookup idr holds a weak reference, which has not necessarily been
-        * removed at this point. Check for that.
-        */
-       mutex_lock(&dev->mode_config.fb_lock);
-       if (fb->base.id) {
-               /* Mark fb as reaped and drop idr ref. */
-               __drm_framebuffer_unregister(dev, fb);
-       }
-       mutex_unlock(&dev->mode_config.fb_lock);
-
-       fb->funcs->destroy(fb);
-}
-
 static struct drm_framebuffer *__drm_framebuffer_lookup(struct drm_device *dev,
                                                        uint32_t id)
 {