diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_fb.c')
-rw-r--r-- | drivers/gpu/drm/udl/udl_fb.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c index 8cbcb4589bd3..5fc16cecd3ba 100644 --- a/drivers/gpu/drm/udl/udl_fb.c +++ b/drivers/gpu/drm/udl/udl_fb.c | |||
@@ -589,19 +589,27 @@ int udl_fbdev_init(struct drm_device *dev) | |||
589 | 589 | ||
590 | ret = drm_fb_helper_init(dev, &ufbdev->helper, | 590 | ret = drm_fb_helper_init(dev, &ufbdev->helper, |
591 | 1, 1); | 591 | 1, 1); |
592 | if (ret) { | 592 | if (ret) |
593 | kfree(ufbdev); | 593 | goto free; |
594 | return ret; | ||
595 | |||
596 | } | ||
597 | 594 | ||
598 | drm_fb_helper_single_add_all_connectors(&ufbdev->helper); | 595 | ret = drm_fb_helper_single_add_all_connectors(&ufbdev->helper); |
596 | if (ret) | ||
597 | goto fini; | ||
599 | 598 | ||
600 | /* disable all the possible outputs/crtcs before entering KMS mode */ | 599 | /* disable all the possible outputs/crtcs before entering KMS mode */ |
601 | drm_helper_disable_unused_functions(dev); | 600 | drm_helper_disable_unused_functions(dev); |
602 | 601 | ||
603 | drm_fb_helper_initial_config(&ufbdev->helper, bpp_sel); | 602 | ret = drm_fb_helper_initial_config(&ufbdev->helper, bpp_sel); |
603 | if (ret) | ||
604 | goto fini; | ||
605 | |||
604 | return 0; | 606 | return 0; |
607 | |||
608 | fini: | ||
609 | drm_fb_helper_fini(&ufbdev->helper); | ||
610 | free: | ||
611 | kfree(ufbdev); | ||
612 | return ret; | ||
605 | } | 613 | } |
606 | 614 | ||
607 | void udl_fbdev_cleanup(struct drm_device *dev) | 615 | void udl_fbdev_cleanup(struct drm_device *dev) |