drm/i915: Make intel_pin_and_fence_fb_obj take plane and framebuffer
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / i915 / intel_fbdev.c
index 9b584f3fbb9912808709bf13ccb002b188eb1c0f..f2183b554cbc7708db5567f4cb65e32061de594d 100644 (file)
@@ -119,25 +119,25 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
                goto out;
        }
 
-       /* Flush everything out, we'll be doing GTT only from now on */
-       ret = intel_pin_and_fence_fb_obj(dev, obj, NULL);
-       if (ret) {
-               DRM_ERROR("failed to pin obj: %d\n", ret);
-               goto out_unref;
-       }
-
        fb = __intel_framebuffer_create(dev, &mode_cmd, obj);
        if (IS_ERR(fb)) {
                ret = PTR_ERR(fb);
-               goto out_unpin;
+               goto out_unref;
+       }
+
+       /* Flush everything out, we'll be doing GTT only from now on */
+       ret = intel_pin_and_fence_fb_obj(NULL, fb, NULL);
+       if (ret) {
+               DRM_ERROR("failed to pin obj: %d\n", ret);
+               goto out_fb;
        }
 
        ifbdev->fb = to_intel_framebuffer(fb);
 
        return 0;
 
-out_unpin:
-       i915_gem_object_ggtt_unpin(obj);
+out_fb:
+       drm_framebuffer_remove(fb);
 out_unref:
        drm_gem_object_unreference(&obj->base);
 out: