Moritz writes: FPGA Manager changes for 5.9-rc1 Here is the (slightly larger than usual) patch set for the 5.9-rc1 merge window. DFL: - Xu's changes add support for AFU interrupt handling and puts them to use for error handling. - Xu's other change also adds another device-id for the Intel FPGA PAC N3000. - John's change converts from using get_user_pages() to pin_user_pages(). - Gustavo's patch cleans up some of the allocation by using struct_size(). Xilinx: - Luca's changes clean up the xilinx-spi and xilinx-slave-serial drivers and updates the comments and dt-bindings to reflect the fact it also supports 7 series devices. Core: - Tom cleaned up the fpga-bridge / fpga-mgr core by removing some dead-stores. All patches have been reviewed on the mailing list, and have been in the last few linux-next releases (as part of my for-next branch) without issues. Signed-off-by: Moritz Fischer <mdf@kernel.org> * tag 'fpga-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga: fpga: dfl: pci: add device id for Intel FPGA PAC N3000 Documentation: fpga: dfl: add descriptions for interrupt related interfaces. fpga: dfl: afu: add AFU interrupt support fpga: dfl: fme: add interrupt support for global error reporting fpga: dfl: afu: add interrupt support for port error reporting fpga: dfl: introduce interrupt trigger setting API fpga: dfl: pci: add irq info for feature devices enumeration fpga: dfl: parse interrupt info for feature devices on enumeration fpga manager: xilinx-spi: check INIT_B pin during write_init dt-bindings: fpga: xilinx-slave-serial: add optional INIT_B GPIO fpga: Fix dead store in fpga-bridge.c fpga: Fix dead store fpga-mgr.c fpga: dfl: Use struct_size() in kzalloc() fpga manager: xilinx-spi: remove unneeded, mistyped variables fpga manager: xilinx-spi: valid for the 7 Series too dt-bindings: fpga: xilinx-slave-serial: valid for the 7 Series too fpga: dfl: afu: convert get_user_pages() --> pin_user_pages()
Showing the changes to include/uapi/linux (1 of 14 files). Show all
Unified · Split
| @@ -151,6 +151,65 @@ struct dfl_fpga_port_dma_unmap { · 150 unmodified lines | |||
| 151 | 151 | ||
| 152 | #define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4) | 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 | /* IOCTLs for FME file descriptor */ | 213 | /* IOCTLs for FME file descriptor */ |
| 155 | 214 | ||
| 156 | /** | 215 | /** |
| @@ -194,4 +253,27 @@ struct dfl_fpga_fme_port_pr { · 37 unmodified lines | |||
| 194 | */ | 253 | */ |
| 195 | #define DFL_FPGA_FME_PORT_ASSIGN _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 2, int) | 254 | #define DFL_FPGA_FME_PORT_ASSIGN _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 2, int) |
| 196 | 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 | |||
| 197 | #endif /* _UAPI_LINUX_FPGA_DFL_H */ | 279 | #endif /* _UAPI_LINUX_FPGA_DFL_H */ |