etnaviv_cmdbuf.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2017 Etnaviv Project
  4. */
  5. #ifndef __ETNAVIV_CMDBUF_H__
  6. #define __ETNAVIV_CMDBUF_H__
  7. #include <linux/types.h>
  8. struct etnaviv_gpu;
  9. struct etnaviv_cmdbuf_suballoc;
  10. struct etnaviv_perfmon_request;
  11. struct etnaviv_cmdbuf {
  12. /* suballocator this cmdbuf is allocated from */
  13. struct etnaviv_cmdbuf_suballoc *suballoc;
  14. /* user context key, must be unique between all active users */
  15. struct etnaviv_file_private *ctx;
  16. /* cmdbuf properties */
  17. int suballoc_offset;
  18. void *vaddr;
  19. u32 size;
  20. u32 user_size;
  21. };
  22. struct etnaviv_cmdbuf_suballoc *
  23. etnaviv_cmdbuf_suballoc_new(struct etnaviv_gpu * gpu);
  24. void etnaviv_cmdbuf_suballoc_destroy(struct etnaviv_cmdbuf_suballoc *suballoc);
  25. int etnaviv_cmdbuf_init(struct etnaviv_cmdbuf_suballoc *suballoc,
  26. struct etnaviv_cmdbuf *cmdbuf, u32 size);
  27. void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf);
  28. u32 etnaviv_cmdbuf_get_va(struct etnaviv_cmdbuf *buf);
  29. dma_addr_t etnaviv_cmdbuf_get_pa(struct etnaviv_cmdbuf *buf);
  30. #endif /* __ETNAVIV_CMDBUF_H__ */