master
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 _FWCTL_PDS_H_
9#define _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 */
19struct 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 */
28enum 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 */
47struct 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 /* _FWCTL_PDS_H_ */