| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /**************************************************************************
- * Copyright (c) 2014 Patrik Jakobsson
- * All Rights Reserved.
- *
- **************************************************************************/
- #ifndef _GEM_H
- #define _GEM_H
- #include <linux/kernel.h>
- #include <drm/drm_gem.h>
- struct drm_device;
- /*
- * PSB GEM object
- */
- struct psb_gem_object {
- struct drm_gem_object base;
- struct resource resource; /* GTT resource for our allocation */
- u32 offset; /* GTT offset of our object */
- int in_gart; /* Currently in the GART (ref ct) */
- bool stolen; /* Backed from stolen RAM */
- bool mmapping; /* Is mmappable */
- struct page **pages; /* Backing pages if present */
- };
- static inline struct psb_gem_object *to_psb_gem_object(struct drm_gem_object *obj)
- {
- return container_of(obj, struct psb_gem_object, base);
- }
- struct psb_gem_object *
- psb_gem_create(struct drm_device *dev, u64 size, const char *name, bool stolen, u32 align);
- int psb_gem_pin(struct psb_gem_object *pobj);
- void psb_gem_unpin(struct psb_gem_object *pobj);
- /*
- * Memory management
- */
- int psb_gem_mm_init(struct drm_device *dev);
- void psb_gem_mm_fini(struct drm_device *dev);
- int psb_gem_mm_resume(struct drm_device *dev);
- #endif
|