[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DM6PR11MB3819E93B47AD06083F4DC5BB85D80@DM6PR11MB3819.namprd11.prod.outlook.com>
Date: Thu, 16 Apr 2020 09:45:46 +0000
From: "Wu, Hao" <hao.wu@...el.com>
To: "Xu, Yilun" <yilun.xu@...el.com>,
"mdf@...nel.org" <mdf@...nel.org>,
"linux-fpga@...r.kernel.org" <linux-fpga@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC: "trix@...hat.com" <trix@...hat.com>,
"bhu@...hat.com" <bhu@...hat.com>,
"Kang, Luwei" <luwei.kang@...el.com>
Subject: RE: [PATCH v4 4/7] fpga: dfl: afu: add interrupt support for port
error reporting
> -----Original Message-----
> From: Xu, Yilun <yilun.xu@...el.com>
> Sent: Wednesday, April 15, 2020 6:08 PM
> To: mdf@...nel.org; linux-fpga@...r.kernel.org; linux-
> kernel@...r.kernel.org
> Cc: trix@...hat.com; bhu@...hat.com; Xu, Yilun <yilun.xu@...el.com>;
> Kang, Luwei <luwei.kang@...el.com>; Wu, Hao <hao.wu@...el.com>
> Subject: [PATCH v4 4/7] fpga: dfl: afu: add interrupt support for port 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 port error reporting sub feature.
> It follows the common DFL interrupt notification and handling mechanism,
> implements two ioctl commands below for user to query number of irqs
> supported, and set/unset interrupt triggers.
>
> Ioctls:
> * DFL_FPGA_PORT_ERR_GET_IRQ_NUM
> get the number of irqs, which is used to determine whether/how many
> interrupts error reporting feature supports.
>
> * DFL_FPGA_PORT_ERR_SET_IRQ
> set/unset given eventfds as error interrupt triggers.
>
> Signed-off-by: Luwei Kang <luwei.kang@...el.com>
> Signed-off-by: Wu Hao <hao.wu@...el.com>
> Signed-off-by: Xu Yilun <yilun.xu@...el.com>
> ----
> v2: use DFL_FPGA_PORT_ERR_GET_IRQ_NUM instead of
> DFL_FPGA_PORT_ERR_GET_INFO
> Delete flag field for DFL_FPGA_PORT_ERR_SET_IRQ param
> v3: put_user() instead of copy_to_user()
> improves comments
> v4: use common functions to handle irq ioctls
> ---
> drivers/fpga/dfl-afu-error.c | 22 ++++++++++++++++++++++
> drivers/fpga/dfl-afu-main.c | 4 ++++
> include/uapi/linux/fpga-dfl.h | 23 +++++++++++++++++++++++
> 3 files changed, 49 insertions(+)
>
> diff --git a/drivers/fpga/dfl-afu-error.c b/drivers/fpga/dfl-afu-error.c
> index c1467ae..facbd7b 100644
> --- a/drivers/fpga/dfl-afu-error.c
> +++ b/drivers/fpga/dfl-afu-error.c
> @@ -15,6 +15,7 @@
> */
>
> #include <linux/uaccess.h>
> +#include <linux/fpga-dfl.h>
Same. : )
>
> #include "dfl-afu.h"
>
> @@ -219,6 +220,26 @@ static void port_err_uinit(struct platform_device
> *pdev,
> afu_port_err_mask(&pdev->dev, true);
> }
>
> +static long
> +port_err_ioctl(struct platform_device *pdev, struct dfl_feature *feature,
> + unsigned int cmd, unsigned long arg)
> +{
> + long ret = -ENODEV;
> +
> + switch (cmd) {
> + case DFL_FPGA_PORT_ERR_GET_IRQ_NUM:
> + ret = dfl_feature_ioctl_get_num_irqs(pdev, feature, arg);
> + break;
> + case DFL_FPGA_PORT_ERR_SET_IRQ:
> + ret = dfl_feature_ioctl_set_irq(pdev, feature, arg);
> + break;
> + default:
> + dev_dbg(&pdev->dev, "%x cmd not handled", cmd);
> + }
> +
> + return ret;
> +}
Looks like we don't have to introduce this local 'ret'.
With above fixings:
Acked-by: Wu Hao <hao.wu@...el.com>
Thanks
Hao
Powered by blists - more mailing lists