diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-11-03 14:02:50 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-04-22 05:41:11 -0400 |
commit | 22471cf638bab5d78ee1e6c465c9d7c1971ebbf5 (patch) | |
tree | 57f4bee31d85c2d7ff475fe3c800fdf2e5d9a18c | |
parent | eaaf8f0fc32468d4dedbb5b5f9c5bfb27744be4c (diff) |
drm/irq: drm_control is a legacy ioctl, so pci devices only
This just adds a correspdonding check, follow-up patches will exploit
this.
v2: Whitespace polish (Thierry)
Reviewed-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/drm_irq.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index e5920e7a4392..580f9ed2dca6 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c | |||
@@ -386,22 +386,21 @@ int drm_control(struct drm_device *dev, void *data, | |||
386 | * this used to be a separate function in drm_dma.h | 386 | * this used to be a separate function in drm_dma.h |
387 | */ | 387 | */ |
388 | 388 | ||
389 | if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) | ||
390 | return 0; | ||
391 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | ||
392 | return 0; | ||
393 | /* UMS was only ever support on pci devices. */ | ||
394 | if (WARN_ON(!dev->pdev)) | ||
395 | return -EINVAL; | ||
389 | 396 | ||
390 | switch (ctl->func) { | 397 | switch (ctl->func) { |
391 | case DRM_INST_HANDLER: | 398 | case DRM_INST_HANDLER: |
392 | if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) | ||
393 | return 0; | ||
394 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | ||
395 | return 0; | ||
396 | if (dev->if_version < DRM_IF_VERSION(1, 2) && | 399 | if (dev->if_version < DRM_IF_VERSION(1, 2) && |
397 | ctl->irq != drm_dev_to_irq(dev)) | 400 | ctl->irq != drm_dev_to_irq(dev)) |
398 | return -EINVAL; | 401 | return -EINVAL; |
399 | return drm_irq_install(dev); | 402 | return drm_irq_install(dev); |
400 | case DRM_UNINST_HANDLER: | 403 | case DRM_UNINST_HANDLER: |
401 | if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) | ||
402 | return 0; | ||
403 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | ||
404 | return 0; | ||
405 | return drm_irq_uninstall(dev); | 404 | return drm_irq_uninstall(dev); |
406 | default: | 405 | default: |
407 | return -EINVAL; | 406 | return -EINVAL; |