Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2161418ybt; Mon, 15 Jun 2020 21:14:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxikIcQh62zc1k0Wx1ZYmFMsVXsJ3QfFBYuLCPkq/Bz7cFwDUJpZXyLlyEp3IbxLlgZa1K3 X-Received: by 2002:a17:906:528b:: with SMTP id c11mr914776ejm.407.1592280893059; Mon, 15 Jun 2020 21:14:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592280893; cv=none; d=google.com; s=arc-20160816; b=N6LjnopL0mRNtQ81xNBRCoBU/EQR0BJpUwHSGPIaQFUMEy4XpAt9w0UckpLuVkLSX1 bVWn2HlvemBeZ6HibM+H4Z3afjg9CCn5lsJPekgJ2yYsjKLX64Eyt+WL5HaI01IY/ipw SKSn9oOiQBR/RkIa1V6Tm36L97fllmsbYcHhe7v5d6jfI1ATsUE1at37wW0XV10RmJVh 4c5asVI7LnVPzvTVS7dSv+OIgDPAR4ZPhWjdRzlAApQ/lTNMo3ocSdVHnwtNoePgkJBu Hwbc/bDMQh2XQm+HtyLen2lvnM8nCoO/I4fndd0OlZpZZ/jp5PeaegErdrXmOUPs3uwe murQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=GTyFX6WSD2t3+iR4+/M8+cYtB1l9+MXFRrr6vvmLruA=; b=Feik2zPn4nxYo3BThUjdpF+U1+/0jN0XIcA5G6gIDoKU0dLS0z0vxdPMMBcth4Kn5k kkwjDtEsJqZ09Wn2KrVTabFOHJbnEz/zZjZQOdMgeHjZDlVhawj4Qzdt+c4WET3ayQmn faEQoNlBjfnvR+i9BE6P8WfnWjex4JK1Cv6F346AvyvLwhRO/sCbUHhfVVvwkj7enqeB pwY60ypV3b1rnB3SD/I/bbBjR3mZlZVYWx/dIEahyYpy3OZrE4g5qpqd5P/5UM+tFYXl WkT3MWqG/6y7ruiZogssM9jD7BjD6h7FRrZaxMJFh17gqs1EBlD2GzfYWyf6D+xOvi8Q TApg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i7si12615691ejo.684.2020.06.15.21.14.30; Mon, 15 Jun 2020 21:14:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726134AbgFPEMm (ORCPT + 99 others); Tue, 16 Jun 2020 00:12:42 -0400 Received: from mga12.intel.com ([192.55.52.136]:20881 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725306AbgFPEMm (ORCPT ); Tue, 16 Jun 2020 00:12:42 -0400 IronPort-SDR: azkz42pmzjJNVomHBQni75AIbvEm6GebXS1hdT/aaEZlR1INHXpKvksPcF4Lb0Ok1PEkkXVFJ9 4qz7fhKDnWVA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2020 21:12:41 -0700 IronPort-SDR: IXD4AL4Jjd2MH8vUmUSaUN97ck/r1Lp/XMeXh0JcSPbLuvpxtKVyhGeT8ut/mZHybqrYFaM3ff /AGzDfdAQGcw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,517,1583222400"; d="scan'208";a="261298471" Received: from yilunxu-optiplex-7050.sh.intel.com ([10.239.159.141]) by fmsmga007.fm.intel.com with ESMTP; 15 Jun 2020 21:12:39 -0700 From: Xu Yilun To: mdf@kernel.org, linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org Cc: trix@redhat.com, bhu@redhat.com, mtosatti@redhat.com, gregkh@linuxfoundation.org, Xu Yilun Subject: [PATCH v7 0/7] Add interrupt support to FPGA DFL drivers Date: Tue, 16 Jun 2020 12:08:41 +0800 Message-Id: <1592280528-6350-1-git-send-email-yilun.xu@intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset add interrupt support to FPGA DFL drivers. With these patches, DFL driver will parse and assign interrupt resources for enumerated feature devices and their sub features. This patchset also introduces a set of APIs for user to monitor DFL interrupts. Three sub features (DFL FME error, DFL AFU error and user interrupt) drivers now support these APIs. Patch #1: DFL framework change. Accept interrupt info input from DFL bus driver, and add interrupt parsing and assignment for feature sub devices. Patch #2: DFL pci driver change, add interrupt info on DFL enumeration. Patch #3: DFL framework change. Add helper functions for feature sub device drivers to handle interrupt and notify users. Patch #4: Add interrupt support for AFU error reporting sub feature. Patch #5: Add interrupt support for FME global error reporting sub feature. Patch #6: Add interrupt support for a new sub feature, to handle user interrupts implemented in AFU. Patch #7: Documentation for DFL interrupt handling. Main changes from v1: - Early validating irq table for each feature in parse_feature_irq() in Patch #1. - Changes IOCTL interfaces. use DFL_FPGA_FME/PORT_XXX_GET_IRQ_NUM instead of DFL_FPGA_FME/PORT_XXX_GET_INFO, delete flag field for DFL_FPGA_FME/PORT_XXX_SET_IRQ param Main changes from v2: - put parse_feature_irqs() inside create_feature_instance(). - refines code for dfl_fpga_set_irq_triggers, delete local variable j. - put_user() instead of copy_to_user() for DFL_FPGA_XXX_GET_IRQ_NUM IOCTL Main changes from v3: - rebased to 5.7-rc1. - fail the dfl enumeration when irq parsing error happens. - Add 2 helper functions in dfl.c to handle generic irq ioctls in feature drivers. Main changes from v4: - Minor fixes for Hao's comments. Main changes from v5: - Remove unnecessary type casting in Patch #1 & #3. - Minor fixes for Moritz's comments. Main changes from v6: - Add the header file for Patch #1, to fix build error on ARCH=xtensa - Minor fixes in Patch #2 & #3. Xu Yilun (7): fpga: dfl: parse interrupt info for feature devices on enumeration fpga: dfl: pci: add irq info for feature devices enumeration fpga: dfl: introduce interrupt trigger setting API fpga: dfl: afu: add interrupt support for port error reporting fpga: dfl: fme: add interrupt support for global error reporting fpga: dfl: afu: add AFU interrupt support Documentation: fpga: dfl: add descriptions for interrupt related interfaces. Documentation/fpga/dfl.rst | 19 +++ drivers/fpga/dfl-afu-error.c | 17 +++ drivers/fpga/dfl-afu-main.c | 32 +++++ drivers/fpga/dfl-fme-error.c | 18 +++ drivers/fpga/dfl-fme-main.c | 6 + drivers/fpga/dfl-pci.c | 76 +++++++++-- drivers/fpga/dfl.c | 310 ++++++++++++++++++++++++++++++++++++++++++ drivers/fpga/dfl.h | 57 ++++++++ include/uapi/linux/fpga-dfl.h | 82 +++++++++++ 9 files changed, 608 insertions(+), 9 deletions(-) -- 2.7.4