Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70ba2a37 authored by Dave Airlie's avatar Dave Airlie
Browse files

drm/radeon/kms: add 32/64 ioctl support.



Although the new radeon driver ioctls don't need this, some of
the drm initialisation ioctls require it, so add this to make them
work.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 4aac0473
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ static struct drm_driver kms_driver = {
		 .poll = drm_poll,
		 .fasync = drm_fasync,
#ifdef CONFIG_COMPAT
		 .compat_ioctl = NULL,
		 .compat_ioctl = radeon_kms_compat_ioctl,
#endif
	},

+2 −0
Original line number Diff line number Diff line
@@ -471,6 +471,8 @@ extern int radeon_driver_open(struct drm_device *dev,
			      struct drm_file *file_priv);
extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd,
				unsigned long arg);
extern long radeon_kms_compat_ioctl(struct file *filp, unsigned int cmd,
				    unsigned long arg);

extern int radeon_master_create(struct drm_device *dev, struct drm_master *master);
extern void radeon_master_destroy(struct drm_device *dev, struct drm_master *master);
+15 −0
Original line number Diff line number Diff line
@@ -422,3 +422,18 @@ long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)

	return ret;
}

long radeon_kms_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
	unsigned int nr = DRM_IOCTL_NR(cmd);
	int ret;

	if (nr < DRM_COMMAND_BASE)
		return drm_compat_ioctl(filp, cmd, arg);

	lock_kernel();		/* XXX for now */
	ret = drm_ioctl(filp->f_path.dentry->d_inode, filp, cmd, arg);
	unlock_kernel();

	return ret;
}