mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 07:23:14 +00:00
drm/vram-helper: Use drm_gem_ttm_dumb_map_offset()
VRAM helpers now use drm_gem_ttm_dumb_map_offset() to implement struct drm_driver.dumb_map_offset. v2: * update hibmc as well (kernel test robot) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20210408140139.27731-3-tzimmermann@suse.de
This commit is contained in:
parent
5690e48639
commit
ede0c69ceb
@ -245,22 +245,6 @@ void drm_gem_vram_put(struct drm_gem_vram_object *gbo)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_gem_vram_put);
|
EXPORT_SYMBOL(drm_gem_vram_put);
|
||||||
|
|
||||||
/**
|
|
||||||
* drm_gem_vram_mmap_offset() - Returns a GEM VRAM object's mmap offset
|
|
||||||
* @gbo: the GEM VRAM object
|
|
||||||
*
|
|
||||||
* See drm_vma_node_offset_addr() for more information.
|
|
||||||
*
|
|
||||||
* Returns:
|
|
||||||
* The buffer object's offset for userspace mappings on success, or
|
|
||||||
* 0 if no offset is allocated.
|
|
||||||
*/
|
|
||||||
u64 drm_gem_vram_mmap_offset(struct drm_gem_vram_object *gbo)
|
|
||||||
{
|
|
||||||
return drm_vma_node_offset_addr(&gbo->bo.base.vma_node);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_gem_vram_mmap_offset);
|
|
||||||
|
|
||||||
static u64 drm_gem_vram_pg_offset(struct drm_gem_vram_object *gbo)
|
static u64 drm_gem_vram_pg_offset(struct drm_gem_vram_object *gbo)
|
||||||
{
|
{
|
||||||
/* Keep TTM behavior for now, remove when drivers are audited */
|
/* Keep TTM behavior for now, remove when drivers are audited */
|
||||||
@ -638,38 +622,6 @@ int drm_gem_vram_driver_dumb_create(struct drm_file *file,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_gem_vram_driver_dumb_create);
|
EXPORT_SYMBOL(drm_gem_vram_driver_dumb_create);
|
||||||
|
|
||||||
/**
|
|
||||||
* drm_gem_vram_driver_dumb_mmap_offset() - \
|
|
||||||
Implements &struct drm_driver.dumb_mmap_offset
|
|
||||||
* @file: DRM file pointer.
|
|
||||||
* @dev: DRM device.
|
|
||||||
* @handle: GEM handle
|
|
||||||
* @offset: Returns the mapping's memory offset on success
|
|
||||||
*
|
|
||||||
* Returns:
|
|
||||||
* 0 on success, or
|
|
||||||
* a negative errno code otherwise.
|
|
||||||
*/
|
|
||||||
int drm_gem_vram_driver_dumb_mmap_offset(struct drm_file *file,
|
|
||||||
struct drm_device *dev,
|
|
||||||
uint32_t handle, uint64_t *offset)
|
|
||||||
{
|
|
||||||
struct drm_gem_object *gem;
|
|
||||||
struct drm_gem_vram_object *gbo;
|
|
||||||
|
|
||||||
gem = drm_gem_object_lookup(file, handle);
|
|
||||||
if (!gem)
|
|
||||||
return -ENOENT;
|
|
||||||
|
|
||||||
gbo = drm_gem_vram_of_gem(gem);
|
|
||||||
*offset = drm_gem_vram_mmap_offset(gbo);
|
|
||||||
|
|
||||||
drm_gem_object_put(gem);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_gem_vram_driver_dumb_mmap_offset);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Helpers for struct drm_plane_helper_funcs
|
* Helpers for struct drm_plane_helper_funcs
|
||||||
*/
|
*/
|
||||||
|
@ -60,7 +60,7 @@ static const struct drm_driver hibmc_driver = {
|
|||||||
.minor = 0,
|
.minor = 0,
|
||||||
.debugfs_init = drm_vram_mm_debugfs_init,
|
.debugfs_init = drm_vram_mm_debugfs_init,
|
||||||
.dumb_create = hibmc_dumb_create,
|
.dumb_create = hibmc_dumb_create,
|
||||||
.dumb_map_offset = drm_gem_vram_driver_dumb_mmap_offset,
|
.dumb_map_offset = drm_gem_ttm_dumb_map_offset,
|
||||||
.gem_prime_mmap = drm_gem_prime_mmap,
|
.gem_prime_mmap = drm_gem_prime_mmap,
|
||||||
.irq_handler = hibmc_drm_interrupt,
|
.irq_handler = hibmc_drm_interrupt,
|
||||||
};
|
};
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include <drm/drm_file.h>
|
#include <drm/drm_file.h>
|
||||||
#include <drm/drm_gem.h>
|
#include <drm/drm_gem.h>
|
||||||
|
#include <drm/drm_gem_ttm_helper.h>
|
||||||
#include <drm/drm_ioctl.h>
|
#include <drm/drm_ioctl.h>
|
||||||
#include <drm/drm_modes.h>
|
#include <drm/drm_modes.h>
|
||||||
#include <drm/ttm/ttm_bo_api.h>
|
#include <drm/ttm/ttm_bo_api.h>
|
||||||
@ -93,7 +94,6 @@ struct drm_gem_vram_object *drm_gem_vram_create(struct drm_device *dev,
|
|||||||
size_t size,
|
size_t size,
|
||||||
unsigned long pg_align);
|
unsigned long pg_align);
|
||||||
void drm_gem_vram_put(struct drm_gem_vram_object *gbo);
|
void drm_gem_vram_put(struct drm_gem_vram_object *gbo);
|
||||||
u64 drm_gem_vram_mmap_offset(struct drm_gem_vram_object *gbo);
|
|
||||||
s64 drm_gem_vram_offset(struct drm_gem_vram_object *gbo);
|
s64 drm_gem_vram_offset(struct drm_gem_vram_object *gbo);
|
||||||
int drm_gem_vram_pin(struct drm_gem_vram_object *gbo, unsigned long pl_flag);
|
int drm_gem_vram_pin(struct drm_gem_vram_object *gbo, unsigned long pl_flag);
|
||||||
int drm_gem_vram_unpin(struct drm_gem_vram_object *gbo);
|
int drm_gem_vram_unpin(struct drm_gem_vram_object *gbo);
|
||||||
@ -113,9 +113,6 @@ int drm_gem_vram_fill_create_dumb(struct drm_file *file,
|
|||||||
int drm_gem_vram_driver_dumb_create(struct drm_file *file,
|
int drm_gem_vram_driver_dumb_create(struct drm_file *file,
|
||||||
struct drm_device *dev,
|
struct drm_device *dev,
|
||||||
struct drm_mode_create_dumb *args);
|
struct drm_mode_create_dumb *args);
|
||||||
int drm_gem_vram_driver_dumb_mmap_offset(struct drm_file *file,
|
|
||||||
struct drm_device *dev,
|
|
||||||
uint32_t handle, uint64_t *offset);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Helpers for struct drm_plane_helper_funcs
|
* Helpers for struct drm_plane_helper_funcs
|
||||||
@ -149,7 +146,7 @@ void drm_gem_vram_simple_display_pipe_cleanup_fb(
|
|||||||
#define DRM_GEM_VRAM_DRIVER \
|
#define DRM_GEM_VRAM_DRIVER \
|
||||||
.debugfs_init = drm_vram_mm_debugfs_init, \
|
.debugfs_init = drm_vram_mm_debugfs_init, \
|
||||||
.dumb_create = drm_gem_vram_driver_dumb_create, \
|
.dumb_create = drm_gem_vram_driver_dumb_create, \
|
||||||
.dumb_map_offset = drm_gem_vram_driver_dumb_mmap_offset, \
|
.dumb_map_offset = drm_gem_ttm_dumb_map_offset, \
|
||||||
.gem_prime_mmap = drm_gem_prime_mmap
|
.gem_prime_mmap = drm_gem_prime_mmap
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user