|
@@ -185,6 +185,18 @@ static void imx_drm_disable_vblank(struct drm_device *drm, int crtc)
|
|
|
imx_drm_crtc->imx_drm_helper_funcs.disable_vblank(imx_drm_crtc->crtc);
|
|
|
}
|
|
|
|
|
|
+static void imx_drm_driver_preclose(struct drm_device *drm,
|
|
|
+ struct drm_file *file)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+
|
|
|
+ if (!file->is_master)
|
|
|
+ return;
|
|
|
+
|
|
|
+ for (i = 0; i < 4; i++)
|
|
|
+ imx_drm_disable_vblank(drm , i);
|
|
|
+}
|
|
|
+
|
|
|
static const struct file_operations imx_drm_driver_fops = {
|
|
|
.owner = THIS_MODULE,
|
|
|
.open = drm_open,
|
|
@@ -766,6 +778,7 @@ static struct drm_driver imx_drm_driver = {
|
|
|
.load = imx_drm_driver_load,
|
|
|
.unload = imx_drm_driver_unload,
|
|
|
.lastclose = imx_drm_driver_lastclose,
|
|
|
+ .preclose = imx_drm_driver_preclose,
|
|
|
.gem_free_object = drm_gem_cma_free_object,
|
|
|
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
|
|
.dumb_create = drm_gem_cma_dumb_create,
|