* [PATCH] drm: Mark IRQ_BUSID ioctl as legacy
@ 2021-05-16 19:51 Thomas Zimmermann
2021-05-17 14:54 ` Daniel Vetter
0 siblings, 1 reply; 2+ messages in thread
From: Thomas Zimmermann @ 2021-05-16 19:51 UTC (permalink / raw)
To: daniel, airlied, mripard, maarten.lankhorst; +Cc: Thomas Zimmermann, dri-devel
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>
---
drivers/gpu/drm/drm_internal.h | 8 --------
drivers/gpu/drm/drm_ioctl.c | 3 ++-
drivers/gpu/drm/drm_legacy.h | 8 ++++++++
drivers/gpu/drm/drm_pci.c | 8 ++++----
4 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
index 1dcb5797a3bb..17f3548c8ed2 100644
--- a/drivers/gpu/drm/drm_internal.h
+++ b/drivers/gpu/drm/drm_internal.h
@@ -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)
{
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index b0856c139693..53d314103a37 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -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),
diff --git a/drivers/gpu/drm/drm_legacy.h b/drivers/gpu/drm/drm_legacy.h
index 7080d2538421..c9206840c87f 100644
--- a/drivers/gpu/drm/drm_legacy.h
+++ b/drivers/gpu/drm/drm_legacy.h
@@ -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
diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c
index f508f70e7a3f..39d35fc3a43b 100644
--- a/drivers/gpu/drm/drm_pci.c
+++ b/drivers/gpu/drm/drm_pci.c
@@ -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) {
--
2.31.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm: Mark IRQ_BUSID ioctl as legacy
2021-05-16 19:51 [PATCH] drm: Mark IRQ_BUSID ioctl as legacy Thomas Zimmermann
@ 2021-05-17 14:54 ` Daniel Vetter
0 siblings, 0 replies; 2+ messages in thread
From: Daniel Vetter @ 2021-05-17 14:54 UTC (permalink / raw)
To: Thomas Zimmermann; +Cc: airlied, dri-devel
On Sun, May 16, 2021 at 09:51:35PM +0200, Thomas Zimmermann wrote:
> 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.
I think that's fine.
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
> drivers/gpu/drm/drm_internal.h | 8 --------
> drivers/gpu/drm/drm_ioctl.c | 3 ++-
> drivers/gpu/drm/drm_legacy.h | 8 ++++++++
> drivers/gpu/drm/drm_pci.c | 8 ++++----
> 4 files changed, 14 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
> index 1dcb5797a3bb..17f3548c8ed2 100644
> --- a/drivers/gpu/drm/drm_internal.h
> +++ b/drivers/gpu/drm/drm_internal.h
> @@ -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)
> {
> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
> index b0856c139693..53d314103a37 100644
> --- a/drivers/gpu/drm/drm_ioctl.c
> +++ b/drivers/gpu/drm/drm_ioctl.c
> @@ -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),
>
> diff --git a/drivers/gpu/drm/drm_legacy.h b/drivers/gpu/drm/drm_legacy.h
> index 7080d2538421..c9206840c87f 100644
> --- a/drivers/gpu/drm/drm_legacy.h
> +++ b/drivers/gpu/drm/drm_legacy.h
> @@ -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
>
> diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c
> index f508f70e7a3f..39d35fc3a43b 100644
> --- a/drivers/gpu/drm/drm_pci.c
> +++ b/drivers/gpu/drm/drm_pci.c
> @@ -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) {
> --
> 2.31.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-05-17 14:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-16 19:51 [PATCH] drm: Mark IRQ_BUSID ioctl as legacy Thomas Zimmermann
2021-05-17 14:54 ` Daniel Vetter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).