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: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -286,7 +286,7 @@ static struct drm_driver kms_driver = {
|
|||||||
.poll = drm_poll,
|
.poll = drm_poll,
|
||||||
.fasync = drm_fasync,
|
.fasync = drm_fasync,
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
.compat_ioctl = NULL,
|
.compat_ioctl = radeon_kms_compat_ioctl,
|
||||||
#endif
|
#endif
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@@ -471,6 +471,8 @@ extern int radeon_driver_open(struct drm_device *dev,
|
|||||||
struct drm_file *file_priv);
|
struct drm_file *file_priv);
|
||||||
extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd,
|
extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd,
|
||||||
unsigned long arg);
|
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 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);
|
extern void radeon_master_destroy(struct drm_device *dev, struct drm_master *master);
|
||||||
|
@@ -422,3 +422,18 @@ long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|||||||
|
|
||||||
return ret;
|
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;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user