pds.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. /* Copyright(c) Advanced Micro Devices, Inc */
  3. /*
  4. * fwctl interface info for pds_fwctl
  5. */
  6. #ifndef _UAPI_FWCTL_PDS_H_
  7. #define _UAPI_FWCTL_PDS_H_
  8. #include <linux/types.h>
  9. /**
  10. * struct fwctl_info_pds
  11. * @uctx_caps: bitmap of firmware capabilities
  12. *
  13. * Return basic information about the FW interface available.
  14. */
  15. struct fwctl_info_pds {
  16. __u32 uctx_caps;
  17. };
  18. /**
  19. * enum pds_fwctl_capabilities
  20. * @PDS_FWCTL_QUERY_CAP: firmware can be queried for information
  21. * @PDS_FWCTL_SEND_CAP: firmware can be sent commands
  22. */
  23. enum pds_fwctl_capabilities {
  24. PDS_FWCTL_QUERY_CAP = 0,
  25. PDS_FWCTL_SEND_CAP,
  26. };
  27. /**
  28. * struct fwctl_rpc_pds
  29. * @in.op: requested operation code
  30. * @in.ep: firmware endpoint to operate on
  31. * @in.rsvd: reserved
  32. * @in.len: length of payload data
  33. * @in.payload: address of payload buffer
  34. * @in: rpc in parameters
  35. * @out.retval: operation result value
  36. * @out.rsvd: reserved
  37. * @out.len: length of result data buffer
  38. * @out.payload: address of payload data buffer
  39. * @out: rpc out parameters
  40. */
  41. struct fwctl_rpc_pds {
  42. struct {
  43. __u32 op;
  44. __u32 ep;
  45. __u32 rsvd;
  46. __u32 len;
  47. __aligned_u64 payload;
  48. } in;
  49. struct {
  50. __u32 retval;
  51. __u32 rsvd[2];
  52. __u32 len;
  53. __aligned_u64 payload;
  54. } out;
  55. };
  56. #endif /* _UAPI_FWCTL_PDS_H_ */