diff options
-rw-r--r-- | drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 20 |
1 files changed, 8 insertions, 12 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 b34d09b59eee..b134acf19c41 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | |||
@@ -51,19 +51,12 @@ static const struct regmap_config fsl_dcu_regmap_config = { | |||
51 | .volatile_reg = fsl_dcu_drm_is_volatile_reg, | 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 | struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; | 56 | struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; |
57 | int ret; | ||
58 | |||
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 | 57 | ||
63 | regmap_write(fsl_dev->regmap, DCU_INT_STATUS, 0); | 58 | regmap_write(fsl_dev->regmap, DCU_INT_STATUS, ~0); |
64 | regmap_write(fsl_dev->regmap, DCU_INT_MASK, ~0); | 59 | regmap_write(fsl_dev->regmap, DCU_INT_MASK, ~0); |
65 | |||
66 | return ret; | ||
67 | } | 60 | } |
68 | 61 | ||
69 | static int fsl_dcu_load(struct drm_device *dev, unsigned long flags) | 62 | static int fsl_dcu_load(struct drm_device *dev, unsigned long flags) |
@@ -83,10 +76,11 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags) | |||
83 | goto done; | 76 | goto done; |
84 | } | 77 | } |
85 | 78 | ||
86 | ret = fsl_dcu_drm_irq_init(dev); | 79 | ret = drm_irq_install(dev, fsl_dev->irq); |
87 | if (ret < 0) | 80 | if (ret < 0) { |
81 | dev_err(dev->dev, "failed to install IRQ handler\n"); | ||
88 | goto done; | 82 | goto done; |
89 | dev->irq_enabled = true; | 83 | } |
90 | 84 | ||
91 | if (legacyfb_depth != 16 && legacyfb_depth != 24 && | 85 | if (legacyfb_depth != 16 && legacyfb_depth != 24 && |
92 | legacyfb_depth != 32) { | 86 | legacyfb_depth != 32) { |
@@ -168,6 +162,8 @@ static struct drm_driver fsl_dcu_drm_driver = { | |||
168 | .load = fsl_dcu_load, | 162 | .load = fsl_dcu_load, |
169 | .unload = fsl_dcu_unload, | 163 | .unload = fsl_dcu_unload, |
170 | .irq_handler = fsl_dcu_drm_irq, | 164 | .irq_handler = fsl_dcu_drm_irq, |
165 | .irq_preinstall = fsl_dcu_irq_uninstall, | ||
166 | .irq_uninstall = fsl_dcu_irq_uninstall, | ||
171 | .gem_free_object_unlocked = drm_gem_cma_free_object, | 167 | .gem_free_object_unlocked = drm_gem_cma_free_object, |
172 | .gem_vm_ops = &drm_gem_cma_vm_ops, | 168 | .gem_vm_ops = &drm_gem_cma_vm_ops, |
173 | .prime_handle_to_fd = drm_gem_prime_handle_to_fd, | 169 | .prime_handle_to_fd = drm_gem_prime_handle_to_fd, |