1ff540b76SGerd Hoffmann /* SPDX-License-Identifier: GPL-2.0-or-later */ 2ff540b76SGerd Hoffmann 3ff540b76SGerd Hoffmann #ifndef DRM_GEM_TTM_HELPER_H 4ff540b76SGerd Hoffmann #define DRM_GEM_TTM_HELPER_H 5ff540b76SGerd Hoffmann 6ae710a45SAndy Shevchenko #include <linux/container_of.h> 7ff540b76SGerd Hoffmann 8ff540b76SGerd Hoffmann #include <drm/drm_device.h> 95690e486SThomas Zimmermann #include <drm/drm_gem.h> 10*a3185f91SChristian König #include <drm/ttm/ttm_bo.h> 11ff540b76SGerd Hoffmann 127938f421SLucas De Marchi struct iosys_map; 1343676605SThomas Zimmermann 14ff540b76SGerd Hoffmann #define drm_gem_ttm_of_gem(gem_obj) \ 15ff540b76SGerd Hoffmann container_of(gem_obj, struct ttm_buffer_object, base) 16ff540b76SGerd Hoffmann 17ff540b76SGerd Hoffmann void drm_gem_ttm_print_info(struct drm_printer *p, unsigned int indent, 18ff540b76SGerd Hoffmann const struct drm_gem_object *gem); 1943676605SThomas Zimmermann int drm_gem_ttm_vmap(struct drm_gem_object *gem, 207938f421SLucas De Marchi struct iosys_map *map); 2143676605SThomas Zimmermann void drm_gem_ttm_vunmap(struct drm_gem_object *gem, 227938f421SLucas De Marchi struct iosys_map *map); 23231927d9SGerd Hoffmann int drm_gem_ttm_mmap(struct drm_gem_object *gem, 24231927d9SGerd Hoffmann struct vm_area_struct *vma); 25ff540b76SGerd Hoffmann 265690e486SThomas Zimmermann int drm_gem_ttm_dumb_map_offset(struct drm_file *file, struct drm_device *dev, 275690e486SThomas Zimmermann uint32_t handle, uint64_t *offset); 285690e486SThomas Zimmermann 29ff540b76SGerd Hoffmann #endif 30