Lines Matching refs:dev

118 int drm_irq_install(struct drm_device *dev)  in drm_irq_install()  argument
120 int drm_irq_install(struct drm_device *dev, int irq) in drm_irq_install()
132 if (!dev->dev_private) in drm_irq_install()
135 if (dev->irq_enabled) in drm_irq_install()
137 dev->irq_enabled = true; in drm_irq_install()
144 if (dev->driver->irq_preinstall) in drm_irq_install()
145 dev->driver->irq_preinstall(dev); in drm_irq_install()
148 if (dev->pdev) in drm_irq_install()
152 ret = (*dev->driver->request_irq)(dev, sh_flags); in drm_irq_install()
154 ret = request_irq(irq, dev->driver->irq_handler, in drm_irq_install()
155 sh_flags, dev->driver->name, dev); in drm_irq_install()
159 dev->irq_enabled = false; in drm_irq_install()
164 if (dev->driver->irq_postinstall) in drm_irq_install()
165 ret = dev->driver->irq_postinstall(dev); in drm_irq_install()
168 dev->irq_enabled = false; in drm_irq_install()
169 if (drm_core_check_feature(dev, DRIVER_LEGACY)) in drm_irq_install()
170 vga_client_register(dev->pdev, NULL, NULL, NULL); in drm_irq_install()
172 (*dev->driver->free_irq)(dev); in drm_irq_install()
174 free_irq(irq, dev); in drm_irq_install()
178 dev->irq = irq; in drm_irq_install()
202 int drm_irq_uninstall(struct drm_device *dev) in drm_irq_uninstall() argument
208 irq_enabled = dev->irq_enabled; in drm_irq_uninstall()
209 dev->irq_enabled = false; in drm_irq_uninstall()
217 if (dev->num_crtcs) { in drm_irq_uninstall()
218 spin_lock_irqsave(&dev->event_lock, irqflags); in drm_irq_uninstall()
219 for (i = 0; i < dev->num_crtcs; i++) { in drm_irq_uninstall()
220 struct drm_vblank_crtc *vblank = &dev->vblank[i]; in drm_irq_uninstall()
225 WARN_ON(drm_core_check_feature(dev, DRIVER_MODESET)); in drm_irq_uninstall()
227 drm_vblank_disable_and_save(dev, i); in drm_irq_uninstall()
230 &dev->event_lock); in drm_irq_uninstall()
235 spin_unlock_irqrestore(&dev->event_lock, irqflags); in drm_irq_uninstall()
241 DRM_DEBUG("irq=%d\n", dev->irq); in drm_irq_uninstall()
243 if (drm_core_check_feature(dev, DRIVER_LEGACY)) in drm_irq_uninstall()
244 vga_client_register(dev->pdev, NULL, NULL, NULL); in drm_irq_uninstall()
246 if (dev->driver->irq_uninstall) in drm_irq_uninstall()
247 dev->driver->irq_uninstall(dev); in drm_irq_uninstall()
250 (*dev->driver->free_irq)(dev); in drm_irq_uninstall()
252 free_irq(dev->irq, dev); in drm_irq_uninstall()
260 int drm_legacy_irq_control(struct drm_device *dev, void *data, in drm_legacy_irq_control() argument
270 if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) in drm_legacy_irq_control()
272 if (!drm_core_check_feature(dev, DRIVER_LEGACY)) in drm_legacy_irq_control()
275 if (WARN_ON(!dev->pdev)) in drm_legacy_irq_control()
283 irq = dev->pdev->irq; in drm_legacy_irq_control()
286 if (dev->if_version < DRM_IF_VERSION(1, 2) && in drm_legacy_irq_control()
289 mutex_lock(&dev->struct_mutex); in drm_legacy_irq_control()
291 ret = drm_irq_install(dev); in drm_legacy_irq_control()
293 ret = drm_irq_install(dev, irq); in drm_legacy_irq_control()
295 mutex_unlock(&dev->struct_mutex); in drm_legacy_irq_control()
299 mutex_lock(&dev->struct_mutex); in drm_legacy_irq_control()
300 ret = drm_irq_uninstall(dev); in drm_legacy_irq_control()
301 mutex_unlock(&dev->struct_mutex); in drm_legacy_irq_control()