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