aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/fsl-dcu
diff options
context:
space:
mode:
authorStefan Agner <stefan@agner.ch>2016-04-17 01:02:49 -0400
committerStefan Agner <stefan@agner.ch>2016-04-25 23:45:33 -0400
commitafb49e4d38e7541968de34b73e98d46c841546e1 (patch)
tree574211f79574d13d3eef3d55e776acbd4c46186a /drivers/gpu/drm/fsl-dcu
parentb617966c08a1606bed2f4dc5019ffac7f66e9467 (diff)
drm/fsl-dcu: deallocate fbdev CMA on unload
Free fbdev CMA using drm_fbdev_cma_fini on unload. This fixes a warning when unloading the driver: WARNING: CPU: 0 PID: 164 at drivers/gpu/drm/drm_crtc.c:5930 drm_mode_config_cleanup+0x204/0x208 Signed-off-by: Stefan Agner <stefan@agner.ch>
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);