hc
2024-01-31 f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2
kernel/include/drm/drm_prime.h
....@@ -42,7 +42,6 @@
4242 * This just contains the internal &struct dma_buf and handle caches for each
4343 * &struct drm_file used by the PRIME core code.
4444 */
45
-
4645 struct drm_prime_file_private {
4746 /* private: */
4847 struct mutex lock;
....@@ -62,27 +61,18 @@
6261 struct drm_gem_object;
6362 struct drm_file;
6463
65
-struct device;
66
-
67
-struct dma_buf *drm_gem_prime_export(struct drm_device *dev,
68
- struct drm_gem_object *obj,
69
- int flags);
70
-int drm_gem_prime_handle_to_fd(struct drm_device *dev,
71
- struct drm_file *file_priv, uint32_t handle, uint32_t flags,
72
- int *prime_fd);
73
-int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
74
-struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
75
- struct dma_buf *dma_buf);
76
-
77
-struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev,
78
- struct dma_buf *dma_buf,
79
- struct device *attach_dev);
80
-
81
-int drm_gem_prime_fd_to_handle(struct drm_device *dev,
82
- struct drm_file *file_priv, int prime_fd, uint32_t *handle);
64
+/* core prime functions */
8365 struct dma_buf *drm_gem_dmabuf_export(struct drm_device *dev,
8466 struct dma_buf_export_info *exp_info);
8567 void drm_gem_dmabuf_release(struct dma_buf *dma_buf);
68
+
69
+int drm_gem_prime_fd_to_handle(struct drm_device *dev,
70
+ struct drm_file *file_priv, int prime_fd, uint32_t *handle);
71
+int drm_gem_prime_handle_to_fd(struct drm_device *dev,
72
+ struct drm_file *file_priv, uint32_t handle, uint32_t flags,
73
+ int *prime_fd);
74
+
75
+/* helper functions for exporting */
8676 int drm_gem_map_attach(struct dma_buf *dma_buf,
8777 struct dma_buf_attachment *attach);
8878 void drm_gem_map_detach(struct dma_buf *dma_buf,
....@@ -94,15 +84,28 @@
9484 enum dma_data_direction dir);
9585 void *drm_gem_dmabuf_vmap(struct dma_buf *dma_buf);
9686 void drm_gem_dmabuf_vunmap(struct dma_buf *dma_buf, void *vaddr);
97
-void *drm_gem_dmabuf_kmap(struct dma_buf *dma_buf, unsigned long page_num);
98
-void drm_gem_dmabuf_kunmap(struct dma_buf *dma_buf, unsigned long page_num,
99
- void *addr);
87
+
88
+int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
10089 int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma);
90
+
91
+struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
92
+ struct page **pages, unsigned int nr_pages);
93
+struct dma_buf *drm_gem_prime_export(struct drm_gem_object *obj,
94
+ int flags);
95
+
96
+unsigned long drm_prime_get_contiguous_size(struct sg_table *sgt);
97
+
98
+/* helper functions for importing */
99
+struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev,
100
+ struct dma_buf *dma_buf,
101
+ struct device *attach_dev);
102
+struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
103
+ struct dma_buf *dma_buf);
104
+
105
+void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg);
101106
102107 int drm_prime_sg_to_page_addr_arrays(struct sg_table *sgt, struct page **pages,
103108 dma_addr_t *addrs, int max_pages);
104
-struct sg_table *drm_prime_pages_to_sg(struct page **pages, unsigned int nr_pages);
105
-void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg);
106109
107110 int drm_gem_dmabuf_get_uuid(struct dma_buf *dma_buf, uuid_t *uuid);
108111