root/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright (C) 2017 Etnaviv Project
   4  */
   5 
   6 #ifndef __ETNAVIV_CMDBUF_H__
   7 #define __ETNAVIV_CMDBUF_H__
   8 
   9 #include <linux/types.h>
  10 
  11 struct device;
  12 struct etnaviv_iommu_context;
  13 struct etnaviv_vram_mapping;
  14 struct etnaviv_cmdbuf_suballoc;
  15 struct etnaviv_perfmon_request;
  16 
  17 struct etnaviv_cmdbuf {
  18         /* suballocator this cmdbuf is allocated from */
  19         struct etnaviv_cmdbuf_suballoc *suballoc;
  20         /* cmdbuf properties */
  21         int suballoc_offset;
  22         void *vaddr;
  23         u32 size;
  24         u32 user_size;
  25 };
  26 
  27 struct etnaviv_cmdbuf_suballoc *
  28 etnaviv_cmdbuf_suballoc_new(struct device *dev);
  29 void etnaviv_cmdbuf_suballoc_destroy(struct etnaviv_cmdbuf_suballoc *suballoc);
  30 int etnaviv_cmdbuf_suballoc_map(struct etnaviv_cmdbuf_suballoc *suballoc,
  31                                 struct etnaviv_iommu_context *context,
  32                                 struct etnaviv_vram_mapping *mapping,
  33                                 u32 memory_base);
  34 void etnaviv_cmdbuf_suballoc_unmap(struct etnaviv_iommu_context *context,
  35                                    struct etnaviv_vram_mapping *mapping);
  36 
  37 
  38 int etnaviv_cmdbuf_init(struct etnaviv_cmdbuf_suballoc *suballoc,
  39                 struct etnaviv_cmdbuf *cmdbuf, u32 size);
  40 void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf);
  41 
  42 u32 etnaviv_cmdbuf_get_va(struct etnaviv_cmdbuf *buf,
  43                           struct etnaviv_vram_mapping *mapping);
  44 dma_addr_t etnaviv_cmdbuf_get_pa(struct etnaviv_cmdbuf *buf);
  45 
  46 #endif /* __ETNAVIV_CMDBUF_H__ */

/* [<][>][^][v][top][bottom][index][help] */