|
@@ -149,58 +149,6 @@ static int drm_set_busid(struct drm_device *dev, struct drm_file *file_priv)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-/*
|
|
|
|
- * Get a mapping information.
|
|
|
|
- *
|
|
|
|
- * \param inode device inode.
|
|
|
|
- * \param file_priv DRM file private.
|
|
|
|
- * \param cmd command.
|
|
|
|
- * \param arg user argument, pointing to a drm_map structure.
|
|
|
|
- *
|
|
|
|
- * \return zero on success or a negative number on failure.
|
|
|
|
- *
|
|
|
|
- * Searches for the mapping with the specified offset and copies its information
|
|
|
|
- * into userspace
|
|
|
|
- */
|
|
|
|
-static int drm_getmap(struct drm_device *dev, void *data,
|
|
|
|
- struct drm_file *file_priv)
|
|
|
|
-{
|
|
|
|
- struct drm_map *map = data;
|
|
|
|
- struct drm_map_list *r_list = NULL;
|
|
|
|
- struct list_head *list;
|
|
|
|
- int idx;
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- idx = map->offset;
|
|
|
|
- if (idx < 0)
|
|
|
|
- return -EINVAL;
|
|
|
|
-
|
|
|
|
- i = 0;
|
|
|
|
- mutex_lock(&dev->struct_mutex);
|
|
|
|
- list_for_each(list, &dev->maplist) {
|
|
|
|
- if (i == idx) {
|
|
|
|
- r_list = list_entry(list, struct drm_map_list, head);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- i++;
|
|
|
|
- }
|
|
|
|
- if (!r_list || !r_list->map) {
|
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
|
- return -EINVAL;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- map->offset = r_list->map->offset;
|
|
|
|
- map->size = r_list->map->size;
|
|
|
|
- map->type = r_list->map->type;
|
|
|
|
- map->flags = r_list->map->flags;
|
|
|
|
- map->handle = (void *)(unsigned long) r_list->user_token;
|
|
|
|
- map->mtrr = arch_phys_wc_index(r_list->map->mtrr);
|
|
|
|
-
|
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
|
-
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Get client information.
|
|
* Get client information.
|
|
*
|
|
*
|
|
@@ -558,7 +506,7 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_UNIQUE, drm_getunique, 0),
|
|
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_GET_MAGIC, drm_getmagic, 0),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_IRQ_BUSID, drm_irq_by_busid, DRM_MASTER|DRM_ROOT_ONLY),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_IRQ_BUSID, drm_irq_by_busid, DRM_MASTER|DRM_ROOT_ONLY),
|
|
- DRM_IOCTL_DEF(DRM_IOCTL_GET_MAP, drm_getmap, DRM_UNLOCKED),
|
|
|
|
|
|
+ DRM_IOCTL_DEF(DRM_IOCTL_GET_MAP, drm_legacy_getmap_ioctl, DRM_UNLOCKED),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_CLIENT, drm_getclient, DRM_UNLOCKED),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_CLIENT, drm_getclient, DRM_UNLOCKED),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_STATS, drm_getstats, DRM_UNLOCKED),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_STATS, drm_getstats, DRM_UNLOCKED),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_CAP, drm_getcap, DRM_UNLOCKED|DRM_RENDER_ALLOW),
|
|
DRM_IOCTL_DEF(DRM_IOCTL_GET_CAP, drm_getcap, DRM_UNLOCKED|DRM_RENDER_ALLOW),
|