drm: Mark IRQ_BUSID ioctl as legacy
authorThomas Zimmermann <tzimmermann@suse.de>
Sun, 16 May 2021 19:51:35 +0000 (21:51 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 17 May 2021 19:19:48 +0000 (21:19 +0200)
The functionality is only implemented for legacy drivers. Mark the ioctl
as legacy and move the code behind CONFIG_DRM_LEGACY. If legacy drivers
are disabled, the ioctl call now returns -EINVAL instead of -EOPNOTSUPP.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210516195135.3755-1-tzimmermann@suse.de
drivers/gpu/drm/drm_internal.h
drivers/gpu/drm/drm_ioctl.c
drivers/gpu/drm/drm_legacy.h
drivers/gpu/drm/drm_pci.c

index 1dcb579..17f3548 100644 (file)
@@ -54,18 +54,10 @@ void drm_lastclose(struct drm_device *dev);
 #ifdef CONFIG_PCI
 
 /* drm_pci.c */
-int drm_legacy_irq_by_busid(struct drm_device *dev, void *data,
-                           struct drm_file *file_priv);
 int drm_pci_set_busid(struct drm_device *dev, struct drm_master *master);
 
 #else
 
-static inline int drm_legacy_irq_by_busid(struct drm_device *dev, void *data,
-                                         struct drm_file *file_priv)
-{
-       return -EINVAL;
-}
-
 static inline int drm_pci_set_busid(struct drm_device *dev,
                                    struct drm_master *master)
 {
index b0856c1..53d3141 100644 (file)
@@ -577,7 +577,8 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
        DRM_IOCTL_DEF(DRM_IOCTL_VERSION, drm_version, DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF(DRM_IOCTL_GET_UNIQUE, drm_getunique, 0),
        DRM_IOCTL_DEF(DRM_IOCTL_GET_MAGIC, drm_getmagic, 0),
-       DRM_IOCTL_DEF(DRM_IOCTL_IRQ_BUSID, drm_legacy_irq_by_busid, DRM_MASTER|DRM_ROOT_ONLY),
+       DRM_LEGACY_IOCTL_DEF(DRM_IOCTL_IRQ_BUSID, drm_legacy_irq_by_busid,
+                            DRM_MASTER|DRM_ROOT_ONLY),
 
        DRM_LEGACY_IOCTL_DEF(DRM_IOCTL_GET_MAP, drm_legacy_getmap_ioctl, 0),
 
index 7080d25..c920684 100644 (file)
@@ -235,9 +235,17 @@ void drm_master_legacy_init(struct drm_master *master);
 static inline void drm_master_legacy_init(struct drm_master *master) {}
 #endif
 
+/* drm_pci.c */
 #if IS_ENABLED(CONFIG_DRM_LEGACY) && IS_ENABLED(CONFIG_PCI)
+int drm_legacy_irq_by_busid(struct drm_device *dev, void *data, struct drm_file *file_priv);
 void drm_legacy_pci_agp_destroy(struct drm_device *dev);
 #else
+static inline int drm_legacy_irq_by_busid(struct drm_device *dev, void *data,
+                                         struct drm_file *file_priv)
+{
+       return -EINVAL;
+}
+
 static inline void drm_legacy_pci_agp_destroy(struct drm_device *dev) {}
 #endif
 
index f508f70..39d35fc 100644 (file)
@@ -72,7 +72,9 @@ int drm_pci_set_busid(struct drm_device *dev, struct drm_master *master)
        return 0;
 }
 
-static int drm_pci_irq_by_busid(struct drm_device *dev, struct drm_irq_busid *p)
+#ifdef CONFIG_DRM_LEGACY
+
+static int drm_legacy_pci_irq_by_busid(struct drm_device *dev, struct drm_irq_busid *p)
 {
        struct pci_dev *pdev = to_pci_dev(dev->dev);
 
@@ -115,11 +117,9 @@ int drm_legacy_irq_by_busid(struct drm_device *dev, void *data,
        if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
                return -EOPNOTSUPP;
 
-       return drm_pci_irq_by_busid(dev, p);
+       return drm_legacy_pci_irq_by_busid(dev, p);
 }
 
-#ifdef CONFIG_DRM_LEGACY
-
 void drm_legacy_pci_agp_destroy(struct drm_device *dev)
 {
        if (dev->agp) {