0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _GEM_H
0009 #define _GEM_H
0010
0011 #include <linux/kernel.h>
0012
0013 #include <drm/drm_gem.h>
0014
0015 struct drm_device;
0016
0017
0018
0019
0020
0021 struct psb_gem_object {
0022 struct drm_gem_object base;
0023
0024 struct resource resource;
0025 u32 offset;
0026 int in_gart;
0027 bool stolen;
0028 bool mmapping;
0029 struct page **pages;
0030 };
0031
0032 static inline struct psb_gem_object *to_psb_gem_object(struct drm_gem_object *obj)
0033 {
0034 return container_of(obj, struct psb_gem_object, base);
0035 }
0036
0037 struct psb_gem_object *
0038 psb_gem_create(struct drm_device *dev, u64 size, const char *name, bool stolen, u32 align);
0039
0040 int psb_gem_pin(struct psb_gem_object *pobj);
0041 void psb_gem_unpin(struct psb_gem_object *pobj);
0042
0043
0044
0045
0046
0047 int psb_gem_mm_init(struct drm_device *dev);
0048 void psb_gem_mm_fini(struct drm_device *dev);
0049 int psb_gem_mm_resume(struct drm_device *dev);
0050
0051 #endif