mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 23:01:04 +07:00
9c92ab6191
Based on 1 normalized pattern(s): this software is licensed under the terms of the gnu general public license version 2 as published by the free software foundation and may be copied distributed and modified under those terms this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 285 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.642774971@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
|
|
* Author:Mark Yao <mark.yao@rock-chips.com>
|
|
*/
|
|
|
|
#ifndef _ROCKCHIP_DRM_GEM_H
|
|
#define _ROCKCHIP_DRM_GEM_H
|
|
|
|
#define to_rockchip_obj(x) container_of(x, struct rockchip_gem_object, base)
|
|
|
|
struct rockchip_gem_object {
|
|
struct drm_gem_object base;
|
|
unsigned int flags;
|
|
|
|
void *kvaddr;
|
|
dma_addr_t dma_addr;
|
|
/* Used when IOMMU is disabled */
|
|
unsigned long dma_attrs;
|
|
|
|
/* Used when IOMMU is enabled */
|
|
struct drm_mm_node mm;
|
|
unsigned long num_pages;
|
|
struct page **pages;
|
|
struct sg_table *sgt;
|
|
size_t size;
|
|
};
|
|
|
|
struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj);
|
|
struct drm_gem_object *
|
|
rockchip_gem_prime_import_sg_table(struct drm_device *dev,
|
|
struct dma_buf_attachment *attach,
|
|
struct sg_table *sg);
|
|
void *rockchip_gem_prime_vmap(struct drm_gem_object *obj);
|
|
void rockchip_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
|
|
|
|
/* drm driver mmap file operations */
|
|
int rockchip_gem_mmap(struct file *filp, struct vm_area_struct *vma);
|
|
|
|
/* mmap a gem object to userspace. */
|
|
int rockchip_gem_mmap_buf(struct drm_gem_object *obj,
|
|
struct vm_area_struct *vma);
|
|
|
|
struct rockchip_gem_object *
|
|
rockchip_gem_create_object(struct drm_device *drm, unsigned int size,
|
|
bool alloc_kmap);
|
|
|
|
void rockchip_gem_free_object(struct drm_gem_object *obj);
|
|
|
|
int rockchip_gem_dumb_create(struct drm_file *file_priv,
|
|
struct drm_device *dev,
|
|
struct drm_mode_create_dumb *args);
|
|
#endif /* _ROCKCHIP_DRM_GEM_H */
|