brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 27df6ff Raw
52 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/**************************************************************************3 * Copyright (c) 2014 Patrik Jakobsson4 * All Rights Reserved.5 *6 **************************************************************************/7 8#ifndef _GEM_H9#define _GEM_H10 11#include <linux/kernel.h>12 13#include <drm/drm_gem.h>14 15struct drm_device;16 17/*18 * PSB GEM object19 */20 21struct psb_gem_object {22	struct drm_gem_object base;23 24	struct resource resource;	/* GTT resource for our allocation */25	u32 offset;			/* GTT offset of our object */26	int in_gart;			/* Currently in the GART (ref ct) */27	bool stolen;			/* Backed from stolen RAM */28	bool mmapping;			/* Is mmappable */29	struct page **pages;		/* Backing pages if present */30};31 32static inline struct psb_gem_object *to_psb_gem_object(struct drm_gem_object *obj)33{34	return container_of(obj, struct psb_gem_object, base);35}36 37struct psb_gem_object *38psb_gem_create(struct drm_device *dev, u64 size, const char *name, bool stolen, u32 align);39 40int psb_gem_pin(struct psb_gem_object *pobj);41void psb_gem_unpin(struct psb_gem_object *pobj);42 43/*44 * Memory management45 */46 47int psb_gem_mm_init(struct drm_device *dev);48void psb_gem_mm_fini(struct drm_device *dev);49int psb_gem_mm_resume(struct drm_device *dev);50 51#endif52