| .. | .. |
|---|
| 151 | 151 | |
|---|
| 152 | 152 | #define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4) |
|---|
| 153 | 153 | |
|---|
| 154 | +/** |
|---|
| 155 | + * struct dfl_fpga_irq_set - the argument for DFL_FPGA_XXX_SET_IRQ ioctl. |
|---|
| 156 | + * |
|---|
| 157 | + * @start: Index of the first irq. |
|---|
| 158 | + * @count: The number of eventfd handler. |
|---|
| 159 | + * @evtfds: Eventfd handlers. |
|---|
| 160 | + */ |
|---|
| 161 | +struct dfl_fpga_irq_set { |
|---|
| 162 | + __u32 start; |
|---|
| 163 | + __u32 count; |
|---|
| 164 | + __s32 evtfds[]; |
|---|
| 165 | +}; |
|---|
| 166 | + |
|---|
| 167 | +/** |
|---|
| 168 | + * DFL_FPGA_PORT_ERR_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 5, |
|---|
| 169 | + * __u32 num_irqs) |
|---|
| 170 | + * |
|---|
| 171 | + * Get the number of irqs supported by the fpga port error reporting private |
|---|
| 172 | + * feature. Currently hardware supports up to 1 irq. |
|---|
| 173 | + * Return: 0 on success, -errno on failure. |
|---|
| 174 | + */ |
|---|
| 175 | +#define DFL_FPGA_PORT_ERR_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \ |
|---|
| 176 | + DFL_PORT_BASE + 5, __u32) |
|---|
| 177 | + |
|---|
| 178 | +/** |
|---|
| 179 | + * DFL_FPGA_PORT_ERR_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_PORT_BASE + 6, |
|---|
| 180 | + * struct dfl_fpga_irq_set) |
|---|
| 181 | + * |
|---|
| 182 | + * Set fpga port error reporting interrupt trigger if evtfds[n] is valid. |
|---|
| 183 | + * Unset related interrupt trigger if evtfds[n] is a negative value. |
|---|
| 184 | + * Return: 0 on success, -errno on failure. |
|---|
| 185 | + */ |
|---|
| 186 | +#define DFL_FPGA_PORT_ERR_SET_IRQ _IOW(DFL_FPGA_MAGIC, \ |
|---|
| 187 | + DFL_PORT_BASE + 6, \ |
|---|
| 188 | + struct dfl_fpga_irq_set) |
|---|
| 189 | + |
|---|
| 190 | +/** |
|---|
| 191 | + * DFL_FPGA_PORT_UINT_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 7, |
|---|
| 192 | + * __u32 num_irqs) |
|---|
| 193 | + * |
|---|
| 194 | + * Get the number of irqs supported by the fpga AFU interrupt private |
|---|
| 195 | + * feature. |
|---|
| 196 | + * Return: 0 on success, -errno on failure. |
|---|
| 197 | + */ |
|---|
| 198 | +#define DFL_FPGA_PORT_UINT_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \ |
|---|
| 199 | + DFL_PORT_BASE + 7, __u32) |
|---|
| 200 | + |
|---|
| 201 | +/** |
|---|
| 202 | + * DFL_FPGA_PORT_UINT_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_PORT_BASE + 8, |
|---|
| 203 | + * struct dfl_fpga_irq_set) |
|---|
| 204 | + * |
|---|
| 205 | + * Set fpga AFU interrupt trigger if evtfds[n] is valid. |
|---|
| 206 | + * Unset related interrupt trigger if evtfds[n] is a negative value. |
|---|
| 207 | + * Return: 0 on success, -errno on failure. |
|---|
| 208 | + */ |
|---|
| 209 | +#define DFL_FPGA_PORT_UINT_SET_IRQ _IOW(DFL_FPGA_MAGIC, \ |
|---|
| 210 | + DFL_PORT_BASE + 8, \ |
|---|
| 211 | + struct dfl_fpga_irq_set) |
|---|
| 212 | + |
|---|
| 154 | 213 | /* IOCTLs for FME file descriptor */ |
|---|
| 155 | 214 | |
|---|
| 156 | 215 | /** |
|---|
| .. | .. |
|---|
| 176 | 235 | |
|---|
| 177 | 236 | #define DFL_FPGA_FME_PORT_PR _IO(DFL_FPGA_MAGIC, DFL_FME_BASE + 0) |
|---|
| 178 | 237 | |
|---|
| 238 | +/** |
|---|
| 239 | + * DFL_FPGA_FME_PORT_RELEASE - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 1, |
|---|
| 240 | + * int port_id) |
|---|
| 241 | + * |
|---|
| 242 | + * Driver releases the port per Port ID provided by caller. |
|---|
| 243 | + * Return: 0 on success, -errno on failure. |
|---|
| 244 | + */ |
|---|
| 245 | +#define DFL_FPGA_FME_PORT_RELEASE _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 1, int) |
|---|
| 246 | + |
|---|
| 247 | +/** |
|---|
| 248 | + * DFL_FPGA_FME_PORT_ASSIGN - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 2, |
|---|
| 249 | + * int port_id) |
|---|
| 250 | + * |
|---|
| 251 | + * Driver assigns the port back per Port ID provided by caller. |
|---|
| 252 | + * Return: 0 on success, -errno on failure. |
|---|
| 253 | + */ |
|---|
| 254 | +#define DFL_FPGA_FME_PORT_ASSIGN _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 2, int) |
|---|
| 255 | + |
|---|
| 256 | +/** |
|---|
| 257 | + * DFL_FPGA_FME_ERR_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_FME_BASE + 3, |
|---|
| 258 | + * __u32 num_irqs) |
|---|
| 259 | + * |
|---|
| 260 | + * Get the number of irqs supported by the fpga fme error reporting private |
|---|
| 261 | + * feature. Currently hardware supports up to 1 irq. |
|---|
| 262 | + * Return: 0 on success, -errno on failure. |
|---|
| 263 | + */ |
|---|
| 264 | +#define DFL_FPGA_FME_ERR_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \ |
|---|
| 265 | + DFL_FME_BASE + 3, __u32) |
|---|
| 266 | + |
|---|
| 267 | +/** |
|---|
| 268 | + * DFL_FPGA_FME_ERR_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 4, |
|---|
| 269 | + * struct dfl_fpga_irq_set) |
|---|
| 270 | + * |
|---|
| 271 | + * Set fpga fme error reporting interrupt trigger if evtfds[n] is valid. |
|---|
| 272 | + * Unset related interrupt trigger if evtfds[n] is a negative value. |
|---|
| 273 | + * Return: 0 on success, -errno on failure. |
|---|
| 274 | + */ |
|---|
| 275 | +#define DFL_FPGA_FME_ERR_SET_IRQ _IOW(DFL_FPGA_MAGIC, \ |
|---|
| 276 | + DFL_FME_BASE + 4, \ |
|---|
| 277 | + struct dfl_fpga_irq_set) |
|---|
| 278 | + |
|---|
| 179 | 279 | #endif /* _UAPI_LINUX_FPGA_DFL_H */ |
|---|