Linux Audio

Check our new training course

Loading...
v6.8
  1/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
  2/*
  3 * Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved.
  4 */
  5
  6#ifndef _EFA_ADMIN_H_
  7#define _EFA_ADMIN_H_
  8
  9enum efa_admin_aq_completion_status {
 10	EFA_ADMIN_SUCCESS                           = 0,
 11	EFA_ADMIN_RESOURCE_ALLOCATION_FAILURE       = 1,
 12	EFA_ADMIN_BAD_OPCODE                        = 2,
 13	EFA_ADMIN_UNSUPPORTED_OPCODE                = 3,
 14	EFA_ADMIN_MALFORMED_REQUEST                 = 4,
 15	/* Additional status is provided in ACQ entry extended_status */
 16	EFA_ADMIN_ILLEGAL_PARAMETER                 = 5,
 17	EFA_ADMIN_UNKNOWN_ERROR                     = 6,
 18	EFA_ADMIN_RESOURCE_BUSY                     = 7,
 19};
 20
 21struct efa_admin_aq_common_desc {
 22	/*
 23	 * 11:0 : command_id
 24	 * 15:12 : reserved12
 25	 */
 26	u16 command_id;
 27
 28	/* as appears in efa_admin_aq_opcode */
 29	u8 opcode;
 30
 31	/*
 32	 * 0 : phase
 33	 * 1 : ctrl_data - control buffer address valid
 34	 * 2 : ctrl_data_indirect - control buffer address
 35	 *    points to list of pages with addresses of control
 36	 *    buffers
 37	 * 7:3 : reserved3
 38	 */
 39	u8 flags;
 40};
 41
 42/*
 43 * used in efa_admin_aq_entry. Can point directly to control data, or to a
 44 * page list chunk. Used also at the end of indirect mode page list chunks,
 45 * for chaining.
 46 */
 47struct efa_admin_ctrl_buff_info {
 48	u32 length;
 49
 50	struct efa_common_mem_addr address;
 51};
 52
 53struct efa_admin_aq_entry {
 54	struct efa_admin_aq_common_desc aq_common_descriptor;
 55
 56	union {
 57		u32 inline_data_w1[3];
 58
 59		struct efa_admin_ctrl_buff_info control_buffer;
 60	} u;
 61
 62	u32 inline_data_w4[12];
 63};
 64
 65struct efa_admin_acq_common_desc {
 66	/*
 67	 * command identifier to associate it with the aq descriptor
 68	 * 11:0 : command_id
 69	 * 15:12 : reserved12
 70	 */
 71	u16 command;
 72
 73	u8 status;
 74
 75	/*
 76	 * 0 : phase
 77	 * 7:1 : reserved1
 78	 */
 79	u8 flags;
 80
 81	u16 extended_status;
 82
 83	/*
 84	 * indicates to the driver which AQ entry has been consumed by the
 85	 * device and could be reused
 86	 */
 87	u16 sq_head_indx;
 88};
 89
 90struct efa_admin_acq_entry {
 91	struct efa_admin_acq_common_desc acq_common_descriptor;
 92
 93	u32 response_specific_data[14];
 94};
 95
 96struct efa_admin_aenq_common_desc {
 97	u16 group;
 98
 99	u16 syndrom;
100
101	/*
102	 * 0 : phase
103	 * 7:1 : reserved - MBZ
104	 */
105	u8 flags;
106
107	u8 reserved1[3];
108
109	u32 timestamp_low;
110
111	u32 timestamp_high;
112};
113
114struct efa_admin_aenq_entry {
115	struct efa_admin_aenq_common_desc aenq_common_desc;
116
117	/* command specific inline data */
118	u32 inline_data_w4[12];
119};
120
121enum efa_admin_eqe_event_type {
122	EFA_ADMIN_EQE_EVENT_TYPE_COMPLETION         = 0,
123};
124
125/* Completion event */
126struct efa_admin_comp_event {
127	/* CQ number */
128	u16 cqn;
129
130	/* MBZ */
131	u16 reserved;
132
133	/* MBZ */
134	u32 reserved2;
135};
136
137/* Event Queue Element */
138struct efa_admin_eqe {
139	/*
140	 * 0 : phase
141	 * 8:1 : event_type - Event type
142	 * 31:9 : reserved - MBZ
143	 */
144	u32 common;
145
146	/* MBZ */
147	u32 reserved;
148
149	union {
150		/* Event data */
151		u32 event_data[2];
152
153		/* Completion Event */
154		struct efa_admin_comp_event comp_event;
155	} u;
156};
157
158/* aq_common_desc */
159#define EFA_ADMIN_AQ_COMMON_DESC_COMMAND_ID_MASK            GENMASK(11, 0)
160#define EFA_ADMIN_AQ_COMMON_DESC_PHASE_MASK                 BIT(0)
161#define EFA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_MASK             BIT(1)
162#define EFA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK    BIT(2)
163
164/* acq_common_desc */
165#define EFA_ADMIN_ACQ_COMMON_DESC_COMMAND_ID_MASK           GENMASK(11, 0)
166#define EFA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK                BIT(0)
167
168/* aenq_common_desc */
169#define EFA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK               BIT(0)
170
171/* eqe */
172#define EFA_ADMIN_EQE_PHASE_MASK                            BIT(0)
173#define EFA_ADMIN_EQE_EVENT_TYPE_MASK                       GENMASK(8, 1)
174
175#endif /* _EFA_ADMIN_H_ */
v5.9
  1/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
  2/*
  3 * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  4 */
  5
  6#ifndef _EFA_ADMIN_H_
  7#define _EFA_ADMIN_H_
  8
  9enum efa_admin_aq_completion_status {
 10	EFA_ADMIN_SUCCESS                           = 0,
 11	EFA_ADMIN_RESOURCE_ALLOCATION_FAILURE       = 1,
 12	EFA_ADMIN_BAD_OPCODE                        = 2,
 13	EFA_ADMIN_UNSUPPORTED_OPCODE                = 3,
 14	EFA_ADMIN_MALFORMED_REQUEST                 = 4,
 15	/* Additional status is provided in ACQ entry extended_status */
 16	EFA_ADMIN_ILLEGAL_PARAMETER                 = 5,
 17	EFA_ADMIN_UNKNOWN_ERROR                     = 6,
 18	EFA_ADMIN_RESOURCE_BUSY                     = 7,
 19};
 20
 21struct efa_admin_aq_common_desc {
 22	/*
 23	 * 11:0 : command_id
 24	 * 15:12 : reserved12
 25	 */
 26	u16 command_id;
 27
 28	/* as appears in efa_admin_aq_opcode */
 29	u8 opcode;
 30
 31	/*
 32	 * 0 : phase
 33	 * 1 : ctrl_data - control buffer address valid
 34	 * 2 : ctrl_data_indirect - control buffer address
 35	 *    points to list of pages with addresses of control
 36	 *    buffers
 37	 * 7:3 : reserved3
 38	 */
 39	u8 flags;
 40};
 41
 42/*
 43 * used in efa_admin_aq_entry. Can point directly to control data, or to a
 44 * page list chunk. Used also at the end of indirect mode page list chunks,
 45 * for chaining.
 46 */
 47struct efa_admin_ctrl_buff_info {
 48	u32 length;
 49
 50	struct efa_common_mem_addr address;
 51};
 52
 53struct efa_admin_aq_entry {
 54	struct efa_admin_aq_common_desc aq_common_descriptor;
 55
 56	union {
 57		u32 inline_data_w1[3];
 58
 59		struct efa_admin_ctrl_buff_info control_buffer;
 60	} u;
 61
 62	u32 inline_data_w4[12];
 63};
 64
 65struct efa_admin_acq_common_desc {
 66	/*
 67	 * command identifier to associate it with the aq descriptor
 68	 * 11:0 : command_id
 69	 * 15:12 : reserved12
 70	 */
 71	u16 command;
 72
 73	u8 status;
 74
 75	/*
 76	 * 0 : phase
 77	 * 7:1 : reserved1
 78	 */
 79	u8 flags;
 80
 81	u16 extended_status;
 82
 83	/*
 84	 * indicates to the driver which AQ entry has been consumed by the
 85	 *    device and could be reused
 86	 */
 87	u16 sq_head_indx;
 88};
 89
 90struct efa_admin_acq_entry {
 91	struct efa_admin_acq_common_desc acq_common_descriptor;
 92
 93	u32 response_specific_data[14];
 94};
 95
 96struct efa_admin_aenq_common_desc {
 97	u16 group;
 98
 99	u16 syndrom;
100
101	/*
102	 * 0 : phase
103	 * 7:1 : reserved - MBZ
104	 */
105	u8 flags;
106
107	u8 reserved1[3];
108
109	u32 timestamp_low;
110
111	u32 timestamp_high;
112};
113
114struct efa_admin_aenq_entry {
115	struct efa_admin_aenq_common_desc aenq_common_desc;
116
117	/* command specific inline data */
118	u32 inline_data_w4[12];
119};
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121/* aq_common_desc */
122#define EFA_ADMIN_AQ_COMMON_DESC_COMMAND_ID_MASK            GENMASK(11, 0)
123#define EFA_ADMIN_AQ_COMMON_DESC_PHASE_MASK                 BIT(0)
124#define EFA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_MASK             BIT(1)
125#define EFA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK    BIT(2)
126
127/* acq_common_desc */
128#define EFA_ADMIN_ACQ_COMMON_DESC_COMMAND_ID_MASK           GENMASK(11, 0)
129#define EFA_ADMIN_ACQ_COMMON_DESC_PHASE_MASK                BIT(0)
130
131/* aenq_common_desc */
132#define EFA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK               BIT(0)
 
 
 
 
133
134#endif /* _EFA_ADMIN_H_ */