qti-smmu-proxy.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. __u64 context_bank_id_array;
  30. __u32 num_cb_ids;
  31. __u32 padding;
  32. };
  33. #define QTI_SMMU_PROXY_WIPE_BUFFERS _IOW(QTI_SMMU_PROXY_IOC_BASE, 3, \
  34. struct smmu_proxy_wipe_buf_ctl)
  35. struct smmu_proxy_get_dma_buf_ctl {
  36. /*
  37. * memparcel_hdl only needs to be 32-bit for Gunyah, but a 64-bit value
  38. * is needed to remain forward compatible with FF-A .
  39. */
  40. __u64 memparcel_hdl;
  41. __u32 dma_buf_fd;
  42. __u32 padding;
  43. };
  44. #define QTI_SMMU_PROXY_GET_DMA_BUF _IOWR(QTI_SMMU_PROXY_IOC_BASE, 4, \
  45. struct smmu_proxy_get_dma_buf_ctl)
  46. #endif /* __QTI_SMMU_PROXY_UAPI_H_ */