aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/fsl-dcu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/fsl-dcu')
-rw-r--r--drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 9cbabb24e55c..182578dd3d6b 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -23,6 +23,7 @@
23 23
24#include <drm/drmP.h> 24#include <drm/drmP.h>
25#include <drm/drm_crtc_helper.h> 25#include <drm/drm_crtc_helper.h>
26#include <drm/drm_fb_cma_helper.h>
26#include <drm/drm_gem_cma_helper.h> 27#include <drm/drm_gem_cma_helper.h>
27 28
28#include "fsl_dcu_drm_crtc.h" 29#include "fsl_dcu_drm_crtc.h"
@@ -90,6 +91,9 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
90 91
91 return 0; 92 return 0;
92done: 93done:
94 if (fsl_dev->fbdev)
95 drm_fbdev_cma_fini(fsl_dev->fbdev);
96
93 drm_mode_config_cleanup(dev); 97 drm_mode_config_cleanup(dev);
94 drm_vblank_cleanup(dev); 98 drm_vblank_cleanup(dev);
95 drm_irq_uninstall(dev); 99 drm_irq_uninstall(dev);
@@ -100,6 +104,11 @@ done:
100 104
101static int fsl_dcu_unload(struct drm_device *dev) 105static int fsl_dcu_unload(struct drm_device *dev)
102{ 106{
107 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
108
109 if (fsl_dev->fbdev)
110 drm_fbdev_cma_fini(fsl_dev->fbdev);
111
103 drm_mode_config_cleanup(dev); 112 drm_mode_config_cleanup(dev);
104 drm_vblank_cleanup(dev); 113 drm_vblank_cleanup(dev);
105 drm_irq_uninstall(dev); 114 drm_irq_uninstall(dev);