drm_kms_helper_poll_fini(dev);
mutex_lock(&dev->struct_mutex);
- intel_fbdev_fini(dev);
-
list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
/* Skip inactive CRTCs */
if (!crtc->fb)
.fb_probe = intel_fb_find_or_create_single,
};
-static int intel_fbdev_destroy(struct drm_device *dev,
- struct intel_fbdev *ifbdev)
+static void intel_fbdev_destroy(struct drm_device *dev,
+ struct intel_fbdev *ifbdev)
{
struct fb_info *info;
struct intel_framebuffer *ifb = &ifbdev->ifb;
drm_framebuffer_cleanup(&ifb->base);
if (ifb->obj)
- drm_gem_object_unreference(ifb->obj);
-
- return 0;
+ drm_gem_object_unreference_unlocked(ifb->obj);
}
int intel_fbdev_init(struct drm_device *dev)