aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_display.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_display.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index b670b0d34233..980b3e187b72 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -325,14 +325,21 @@ nouveau_display_create(struct drm_device *dev)
325 325
326 ret = disp->create(dev); 326 ret = disp->create(dev);
327 if (ret) 327 if (ret)
328 return ret; 328 goto disp_create_err;
329 329
330 if (dev->mode_config.num_crtc) { 330 if (dev->mode_config.num_crtc) {
331 ret = drm_vblank_init(dev, dev->mode_config.num_crtc); 331 ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
332 if (ret) 332 if (ret)
333 return ret; 333 goto vblank_err;
334 } 334 }
335 335
336 return 0;
337
338vblank_err:
339 disp->destroy(dev);
340disp_create_err:
341 drm_kms_helper_poll_fini(dev);
342 drm_mode_config_cleanup(dev);
336 return ret; 343 return ret;
337} 344}
338 345