drm/qxl: Use drm_gem_ttm_dumb_map_offset()
Qxl now uses drm_gem_ttm_dumb_map_offset() to implement struct drm_driver.dumb_map_offset. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20210408140139.27731-5-tzimmermann@suse.de
This commit is contained in:
Родитель
4c398f50a1
Коммит
f4268a4bf1
|
@ -37,6 +37,7 @@
|
||||||
#include <drm/drm_atomic_helper.h>
|
#include <drm/drm_atomic_helper.h>
|
||||||
#include <drm/drm_drv.h>
|
#include <drm/drm_drv.h>
|
||||||
#include <drm/drm_file.h>
|
#include <drm/drm_file.h>
|
||||||
|
#include <drm/drm_gem_ttm_helper.h>
|
||||||
#include <drm/drm_modeset_helper.h>
|
#include <drm/drm_modeset_helper.h>
|
||||||
#include <drm/drm_prime.h>
|
#include <drm/drm_prime.h>
|
||||||
#include <drm/drm_probe_helper.h>
|
#include <drm/drm_probe_helper.h>
|
||||||
|
@ -271,7 +272,7 @@ static struct drm_driver qxl_driver = {
|
||||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||||
|
|
||||||
.dumb_create = qxl_mode_dumb_create,
|
.dumb_create = qxl_mode_dumb_create,
|
||||||
.dumb_map_offset = qxl_mode_dumb_mmap,
|
.dumb_map_offset = drm_gem_ttm_dumb_map_offset,
|
||||||
#if defined(CONFIG_DEBUG_FS)
|
#if defined(CONFIG_DEBUG_FS)
|
||||||
.debugfs_init = qxl_debugfs_init,
|
.debugfs_init = qxl_debugfs_init,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -330,9 +330,6 @@ void qxl_bo_force_delete(struct qxl_device *qdev);
|
||||||
int qxl_mode_dumb_create(struct drm_file *file_priv,
|
int qxl_mode_dumb_create(struct drm_file *file_priv,
|
||||||
struct drm_device *dev,
|
struct drm_device *dev,
|
||||||
struct drm_mode_create_dumb *args);
|
struct drm_mode_create_dumb *args);
|
||||||
int qxl_mode_dumb_mmap(struct drm_file *filp,
|
|
||||||
struct drm_device *dev,
|
|
||||||
uint32_t handle, uint64_t *offset_p);
|
|
||||||
|
|
||||||
/* qxl ttm */
|
/* qxl ttm */
|
||||||
int qxl_ttm_init(struct qxl_device *qdev);
|
int qxl_ttm_init(struct qxl_device *qdev);
|
||||||
|
|
|
@ -69,20 +69,3 @@ int qxl_mode_dumb_create(struct drm_file *file_priv,
|
||||||
args->handle = handle;
|
args->handle = handle;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int qxl_mode_dumb_mmap(struct drm_file *file_priv,
|
|
||||||
struct drm_device *dev,
|
|
||||||
uint32_t handle, uint64_t *offset_p)
|
|
||||||
{
|
|
||||||
struct drm_gem_object *gobj;
|
|
||||||
struct qxl_bo *qobj;
|
|
||||||
|
|
||||||
BUG_ON(!offset_p);
|
|
||||||
gobj = drm_gem_object_lookup(file_priv, handle);
|
|
||||||
if (gobj == NULL)
|
|
||||||
return -ENOENT;
|
|
||||||
qobj = gem_to_qxl_bo(gobj);
|
|
||||||
*offset_p = qxl_bo_mmap_offset(qobj);
|
|
||||||
drm_gem_object_put(gobj);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
|
@ -67,8 +67,8 @@ static int qxl_map_ioctl(struct drm_device *dev, void *data,
|
||||||
struct qxl_device *qdev = to_qxl(dev);
|
struct qxl_device *qdev = to_qxl(dev);
|
||||||
struct drm_qxl_map *qxl_map = data;
|
struct drm_qxl_map *qxl_map = data;
|
||||||
|
|
||||||
return qxl_mode_dumb_mmap(file_priv, &qdev->ddev, qxl_map->handle,
|
return drm_gem_ttm_dumb_map_offset(file_priv, &qdev->ddev, qxl_map->handle,
|
||||||
&qxl_map->offset);
|
&qxl_map->offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct qxl_reloc_info {
|
struct qxl_reloc_info {
|
||||||
|
|
|
@ -53,11 +53,6 @@ static inline unsigned long qxl_bo_size(struct qxl_bo *bo)
|
||||||
return bo->tbo.base.size;
|
return bo->tbo.base.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u64 qxl_bo_mmap_offset(struct qxl_bo *bo)
|
|
||||||
{
|
|
||||||
return drm_vma_node_offset_addr(&bo->tbo.base.vma_node);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern int qxl_bo_create(struct qxl_device *qdev,
|
extern int qxl_bo_create(struct qxl_device *qdev,
|
||||||
unsigned long size,
|
unsigned long size,
|
||||||
bool kernel, bool pinned, u32 domain,
|
bool kernel, bool pinned, u32 domain,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче