1*f39db26cSSui Jingfeng /* SPDX-License-Identifier: GPL-2.0+ */ 2*f39db26cSSui Jingfeng /* 3*f39db26cSSui Jingfeng * Copyright (C) 2023 Loongson Technology Corporation Limited 4*f39db26cSSui Jingfeng */ 5*f39db26cSSui Jingfeng 6*f39db26cSSui Jingfeng #ifndef __LSDC_GEM_H__ 7*f39db26cSSui Jingfeng #define __LSDC_GEM_H__ 8*f39db26cSSui Jingfeng 9*f39db26cSSui Jingfeng #include <drm/drm_device.h> 10*f39db26cSSui Jingfeng #include <drm/drm_gem.h> 11*f39db26cSSui Jingfeng 12*f39db26cSSui Jingfeng struct drm_gem_object * 13*f39db26cSSui Jingfeng lsdc_prime_import_sg_table(struct drm_device *ddev, 14*f39db26cSSui Jingfeng struct dma_buf_attachment *attach, 15*f39db26cSSui Jingfeng struct sg_table *sg); 16*f39db26cSSui Jingfeng 17*f39db26cSSui Jingfeng int lsdc_dumb_map_offset(struct drm_file *file, 18*f39db26cSSui Jingfeng struct drm_device *dev, 19*f39db26cSSui Jingfeng u32 handle, 20*f39db26cSSui Jingfeng uint64_t *offset); 21*f39db26cSSui Jingfeng 22*f39db26cSSui Jingfeng int lsdc_dumb_create(struct drm_file *file, 23*f39db26cSSui Jingfeng struct drm_device *ddev, 24*f39db26cSSui Jingfeng struct drm_mode_create_dumb *args); 25*f39db26cSSui Jingfeng 26*f39db26cSSui Jingfeng void lsdc_gem_init(struct drm_device *ddev); 27*f39db26cSSui Jingfeng int lsdc_show_buffer_object(struct seq_file *m, void *arg); 28*f39db26cSSui Jingfeng 29*f39db26cSSui Jingfeng struct drm_gem_object * 30*f39db26cSSui Jingfeng lsdc_gem_object_create(struct drm_device *ddev, 31*f39db26cSSui Jingfeng u32 domain, 32*f39db26cSSui Jingfeng size_t size, 33*f39db26cSSui Jingfeng bool kerenl, 34*f39db26cSSui Jingfeng struct sg_table *sg, 35*f39db26cSSui Jingfeng struct dma_resv *resv); 36*f39db26cSSui Jingfeng 37*f39db26cSSui Jingfeng #endif 38