Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'drm-fsl-dcu-for-v4.13' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next

some fsl-dcu cleanups

* tag 'drm-fsl-dcu-for-v4.13' of http://git.agner.ch/git/linux-drm-fsl-dcu:
drm/fsl-dcu: use new drm_atomic_helper_shutdown
drm/fsl-dcu: implement irq_preinstall/uninstall callbacks
drm/fsl: Drop drm_vblank_cleanup

+9 -15
+9 -15
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
··· 51 51 .volatile_reg = fsl_dcu_drm_is_volatile_reg, 52 52 }; 53 53 54 - static int fsl_dcu_drm_irq_init(struct drm_device *dev) 54 + static void fsl_dcu_irq_uninstall(struct drm_device *dev) 55 55 { 56 56 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; 57 - int ret; 58 57 59 - ret = drm_irq_install(dev, fsl_dev->irq); 60 - if (ret < 0) 61 - dev_err(dev->dev, "failed to install IRQ handler\n"); 62 - 63 - regmap_write(fsl_dev->regmap, DCU_INT_STATUS, 0); 58 + regmap_write(fsl_dev->regmap, DCU_INT_STATUS, ~0); 64 59 regmap_write(fsl_dev->regmap, DCU_INT_MASK, ~0); 65 - 66 - return ret; 67 60 } 68 61 69 62 static int fsl_dcu_load(struct drm_device *dev, unsigned long flags) ··· 76 83 goto done; 77 84 } 78 85 79 - ret = fsl_dcu_drm_irq_init(dev); 80 - if (ret < 0) 86 + ret = drm_irq_install(dev, fsl_dev->irq); 87 + if (ret < 0) { 88 + dev_err(dev->dev, "failed to install IRQ handler\n"); 81 89 goto done; 82 - dev->irq_enabled = true; 90 + } 83 91 84 92 if (legacyfb_depth != 16 && legacyfb_depth != 24 && 85 93 legacyfb_depth != 32) { ··· 103 109 drm_fbdev_cma_fini(fsl_dev->fbdev); 104 110 105 111 drm_mode_config_cleanup(dev); 106 - drm_vblank_cleanup(dev); 107 112 drm_irq_uninstall(dev); 108 113 dev->dev_private = NULL; 109 114 ··· 113 120 { 114 121 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; 115 122 116 - drm_crtc_force_disable_all(dev); 123 + drm_atomic_helper_shutdown(dev); 117 124 drm_kms_helper_poll_fini(dev); 118 125 119 126 if (fsl_dev->fbdev) 120 127 drm_fbdev_cma_fini(fsl_dev->fbdev); 121 128 122 129 drm_mode_config_cleanup(dev); 123 - drm_vblank_cleanup(dev); 124 130 drm_irq_uninstall(dev); 125 131 126 132 dev->dev_private = NULL; ··· 162 170 .load = fsl_dcu_load, 163 171 .unload = fsl_dcu_unload, 164 172 .irq_handler = fsl_dcu_drm_irq, 173 + .irq_preinstall = fsl_dcu_irq_uninstall, 174 + .irq_uninstall = fsl_dcu_irq_uninstall, 165 175 .gem_free_object_unlocked = drm_gem_cma_free_object, 166 176 .gem_vm_ops = &drm_gem_cma_vm_ops, 167 177 .prime_handle_to_fd = drm_gem_prime_handle_to_fd,