xref: /openbmc/linux/drivers/gpu/drm/loongson/lsdc_gem.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
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