1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef DRM_GEM_TTM_HELPER_H
4 #define DRM_GEM_TTM_HELPER_H
5 
6 #include <linux/container_of.h>
7 
8 #include <drm/drm_device.h>
9 #include <drm/drm_gem.h>
10 #include <drm/ttm/ttm_bo_api.h>
11 #include <drm/ttm/ttm_bo_driver.h>
12 
13 struct iosys_map;
14 
15 #define drm_gem_ttm_of_gem(gem_obj) \
16 	container_of(gem_obj, struct ttm_buffer_object, base)
17 
18 void drm_gem_ttm_print_info(struct drm_printer *p, unsigned int indent,
19 			    const struct drm_gem_object *gem);
20 int drm_gem_ttm_vmap(struct drm_gem_object *gem,
21 		     struct iosys_map *map);
22 void drm_gem_ttm_vunmap(struct drm_gem_object *gem,
23 			struct iosys_map *map);
24 int drm_gem_ttm_mmap(struct drm_gem_object *gem,
25 		     struct vm_area_struct *vma);
26 
27 int drm_gem_ttm_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
28 				uint32_t handle, uint64_t *offset);
29 
30 #endif
31