qti-smmu-proxy.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
  2. /*
  3. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  4. */
  5. #ifndef __QTI_SMMU_PROXY_UAPI_H_
  6. #define __QTI_SMMU_PROXY_UAPI_H_
  7. #include <linux/types.h>
  8. #define QTI_SMMU_PROXY_CAMERA_CB 0
  9. #define QTI_SMMU_PROXY_DISPLAY_CB 1
  10. #define QTI_SMMU_PROXY_EVA_CB 2
  11. #define QTI_SMMU_PROXY_IOC_BASE 0x55
  12. struct csf_version {
  13. __u32 arch_ver;
  14. __u32 max_ver;
  15. __u32 min_ver;
  16. __u32 padding;
  17. };
  18. #define QTI_SMMU_PROXY_GET_VERSION_IOCTL _IOR(QTI_SMMU_PROXY_IOC_BASE, 0, \
  19. struct csf_version)
  20. struct smmu_proxy_acl_ctl {
  21. __u32 dma_buf_fd;
  22. __u32 padding;
  23. };
  24. #define QTI_SMMU_PROXY_AC_LOCK_BUFFER _IOW(QTI_SMMU_PROXY_IOC_BASE, 1, \
  25. struct smmu_proxy_acl_ctl)
  26. #define QTI_SMMU_PROXY_AC_UNLOCK_BUFFER _IOW(QTI_SMMU_PROXY_IOC_BASE, 2, \
  27. struct smmu_proxy_acl_ctl)
  28. struct smmu_proxy_wipe_buf_ctl {
  29. __u32 smmu_context_bank_id;
  30. __u32 padding;
  31. };
  32. #define QTI_SMMU_PROXY_WIPE_BUFFERS _IOW(QTI_SMMU_PROXY_IOC_BASE, 3, \
  33. struct smmu_proxy_wipe_buf_ctl)
  34. struct smmu_proxy_get_dma_buf_ctl {
  35. /*
  36. * memparcel_hdl only needs to be 32-bit for Gunyah, but a 64-bit value
  37. * is needed to remain forward compatible with FF-A .
  38. */
  39. __u64 memparcel_hdl;
  40. __u32 dma_buf_fd;
  41. __u32 padding;
  42. };
  43. #define QTI_SMMU_PROXY_GET_DMA_BUF _IOWR(QTI_SMMU_PROXY_IOC_BASE, 4, \
  44. struct smmu_proxy_get_dma_buf_ctl)
  45. #endif /* __QTI_SMMU_PROXY_UAPI_H_ */