fpga: dfl: fme: add interrupt support for global error reporting
authorXu Yilun <yilun.xu@intel.com>
Tue, 16 Jun 2020 04:08:46 +0000 (12:08 +0800)
committerMoritz Fischer <mdf@kernel.org>
Tue, 7 Jul 2020 04:35:42 +0000 (21:35 -0700)
commitd43f20bae5173ba431526040c320c36fdd4f086d
treeae078055368b49ebe8ad46ca370b815cf54676cf
parentfe6a3d6521227e49857d0d6caabbdae3bd4aef89
fpga: dfl: fme: add interrupt support for global error reporting

Error reporting interrupt is very useful to notify users that some
errors are detected by the hardware. Once users are notified, they
could query hardware logged error states, no need to continuously
poll on these states.

This patch adds interrupt support for fme global error reporting sub
feature. It follows the common DFL interrupt notification and handling
mechanism. And it implements two ioctls below for user to query
number of irqs supported, and set/unset interrupt triggers.

 Ioctls:
 * DFL_FPGA_FME_ERR_GET_IRQ_NUM
   get the number of irqs, which is used to determine whether/how many
   interrupts fme error reporting feature supports.

 * DFL_FPGA_FME_ERR_SET_IRQ
   set/unset given eventfds as fme error reporting interrupt triggers.

Signed-off-by: Luwei Kang <luwei.kang@intel.com>
Signed-off-by: Wu Hao <hao.wu@intel.com>
Signed-off-by: Xu Yilun <yilun.xu@intel.com>
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Acked-by: Wu Hao <hao.wu@intel.com>
Signed-off-by: Moritz Fischer <mdf@kernel.org>
drivers/fpga/dfl-fme-error.c
drivers/fpga/dfl-fme-main.c
include/uapi/linux/fpga-dfl.h