0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef __OMAPDRM_GEM_H__
0010 #define __OMAPDRM_GEM_H__
0011
0012 #include <linux/types.h>
0013 #include <linux/mm_types.h>
0014
0015 enum dma_data_direction;
0016
0017 struct dma_buf;
0018 struct drm_device;
0019 struct drm_file;
0020 struct drm_gem_object;
0021 struct drm_mode_create_dumb;
0022 struct file;
0023 struct list_head;
0024 struct page;
0025 struct seq_file;
0026 struct vm_area_struct;
0027 struct vm_fault;
0028
0029 union omap_gem_size;
0030
0031
0032 void omap_gem_init(struct drm_device *dev);
0033 void omap_gem_deinit(struct drm_device *dev);
0034
0035 #ifdef CONFIG_PM
0036 int omap_gem_resume(struct drm_device *dev);
0037 #endif
0038
0039 #ifdef CONFIG_DEBUG_FS
0040 void omap_gem_describe(struct drm_gem_object *obj, struct seq_file *m);
0041 void omap_gem_describe_objects(struct list_head *list, struct seq_file *m);
0042 #endif
0043
0044
0045 struct drm_gem_object *omap_gem_new(struct drm_device *dev,
0046 union omap_gem_size gsize, u32 flags);
0047 struct drm_gem_object *omap_gem_new_dmabuf(struct drm_device *dev, size_t size,
0048 struct sg_table *sgt);
0049 int omap_gem_new_handle(struct drm_device *dev, struct drm_file *file,
0050 union omap_gem_size gsize, u32 flags, u32 *handle);
0051 void *omap_gem_vaddr(struct drm_gem_object *obj);
0052
0053
0054 int omap_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
0055 u32 handle, u64 *offset);
0056 int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
0057 struct drm_mode_create_dumb *args);
0058
0059
0060 int omap_gem_mmap(struct file *filp, struct vm_area_struct *vma);
0061 int omap_gem_mmap_obj(struct drm_gem_object *obj,
0062 struct vm_area_struct *vma);
0063 u64 omap_gem_mmap_offset(struct drm_gem_object *obj);
0064 size_t omap_gem_mmap_size(struct drm_gem_object *obj);
0065
0066
0067 struct dma_buf *omap_gem_prime_export(struct drm_gem_object *obj, int flags);
0068 struct drm_gem_object *omap_gem_prime_import(struct drm_device *dev,
0069 struct dma_buf *buffer);
0070
0071 int omap_gem_roll(struct drm_gem_object *obj, u32 roll);
0072 void omap_gem_cpu_sync_page(struct drm_gem_object *obj, int pgoff);
0073 void omap_gem_dma_sync_buffer(struct drm_gem_object *obj,
0074 enum dma_data_direction dir);
0075 int omap_gem_pin(struct drm_gem_object *obj, dma_addr_t *dma_addr);
0076 void omap_gem_unpin(struct drm_gem_object *obj);
0077 int omap_gem_get_pages(struct drm_gem_object *obj, struct page ***pages,
0078 bool remap);
0079 int omap_gem_put_pages(struct drm_gem_object *obj);
0080
0081 u32 omap_gem_flags(struct drm_gem_object *obj);
0082 int omap_gem_rotated_dma_addr(struct drm_gem_object *obj, u32 orient,
0083 int x, int y, dma_addr_t *dma_addr);
0084 int omap_gem_tiled_stride(struct drm_gem_object *obj, u32 orient);
0085 struct sg_table *omap_gem_get_sg(struct drm_gem_object *obj,
0086 enum dma_data_direction dir);
0087 void omap_gem_put_sg(struct drm_gem_object *obj, struct sg_table *sgt);
0088
0089 #endif