All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wu Hao <hao.wu@intel.com>
To: atull@kernel.org, mdf@kernel.org, linux-fpga@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: linux-api@vger.kernel.org, luwei.kang@intel.com,
	yi.z.zhang@intel.com, hao.wu@intel.com,
	Tim Whisonant <tim.whisonant@intel.com>,
	Enno Luebbers <enno.luebbers@intel.com>,
	Shiva Rao <shiva.rao@intel.com>,
	Christopher Rauer <christopher.rauer@intel.com>,
	Xiao Guangrong <guangrong.xiao@linux.intel.com>
Subject: [PATCH v3 06/21] fpga: dfl: adds fpga_cdev_find_port
Date: Mon, 27 Nov 2017 14:42:13 +0800	[thread overview]
Message-ID: <1511764948-20972-7-git-send-email-hao.wu@intel.com> (raw)
In-Reply-To: <1511764948-20972-1-git-send-email-hao.wu@intel.com>

For feature devices, e.g FPGA Management Engine (FME), it may
require fpga_cdev_find_port function to find dedicate port for
further actions, so export this function from feature device
driver module.

Signed-off-by: Tim Whisonant <tim.whisonant@intel.com>
Signed-off-by: Enno Luebbers <enno.luebbers@intel.com>
Signed-off-by: Shiva Rao <shiva.rao@intel.com>
Signed-off-by: Christopher Rauer <christopher.rauer@intel.com>
Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Wu Hao <hao.wu@intel.com>
----
v3: s/fpga_for_each_port/fpga_cdev_find_port/
    move fpga_cdev_find_port to fpga-dfl module.
---
 drivers/fpga/fpga-dfl.c | 27 +++++++++++++++++++++++++++
 drivers/fpga/fpga-dfl.h | 16 ++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/drivers/fpga/fpga-dfl.c b/drivers/fpga/fpga-dfl.c
index 9294c0a..ce03b17 100644
--- a/drivers/fpga/fpga-dfl.c
+++ b/drivers/fpga/fpga-dfl.c
@@ -873,6 +873,33 @@ void fpga_remove_feature_devs(struct fpga_cdev *cdev)
 }
 EXPORT_SYMBOL_GPL(fpga_remove_feature_devs);
 
+/**
+ * __fpga_cdev_find_port - find a port under given container device
+ * @cdev: container device
+ * @data: data passed to match function
+ * @match: match function used to find specific port from the port device list
+ *
+ * Find a port device under container device. This function needs to be
+ * invoked with lock held.
+ */
+struct platform_device *
+__fpga_cdev_find_port(struct fpga_cdev *cdev, void *data,
+		      int (*match)(struct platform_device *, void *))
+{
+	struct feature_platform_data *pdata;
+	struct platform_device *port_dev;
+
+	list_for_each_entry(pdata, &cdev->port_dev_list, node) {
+		port_dev = pdata->dev;
+
+		if (match(port_dev, data) && get_device(&port_dev->dev))
+			return port_dev;
+	}
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(__fpga_cdev_find_port);
+
 int fpga_port_id(struct platform_device *pdev)
 {
 	void __iomem *base;
diff --git a/drivers/fpga/fpga-dfl.h b/drivers/fpga/fpga-dfl.h
index e569a13..36e2394 100644
--- a/drivers/fpga/fpga-dfl.h
+++ b/drivers/fpga/fpga-dfl.h
@@ -375,4 +375,20 @@ struct fpga_cdev {
 struct fpga_cdev *fpga_enumerate_feature_devs(struct fpga_enum_info *info);
 void fpga_remove_feature_devs(struct fpga_cdev *cdev);
 
+struct platform_device *
+__fpga_cdev_find_port(struct fpga_cdev *cdev, void *data,
+		      int (*match)(struct platform_device *, void *));
+
+static inline struct platform_device *
+fpga_cdev_find_port(struct fpga_cdev *cdev, void *data,
+		    int (*match)(struct platform_device *, void *))
+{
+	struct platform_device *pdev;
+
+	mutex_lock(&cdev->lock);
+	pdev = __fpga_cdev_find_port(cdev, data, match);
+	mutex_unlock(&cdev->lock);
+
+	return pdev;
+}
 #endif /* __DFL_FPGA_H */
-- 
1.8.3.1

  parent reply	other threads:[~2017-11-27  6:42 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-27  6:42 [PATCH v3 00/21] Intel FPGA Device Drivers Wu Hao
     [not found] ` <1511764948-20972-1-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-11-27  6:42   ` [PATCH v3 01/21] docs: fpga: add a document for Intel FPGA driver overview Wu Hao
2017-11-27  6:42     ` Wu Hao
2017-12-04 19:55     ` Alan Tull
2017-12-05  3:57       ` Wu Hao
2017-12-05  3:57         ` Wu Hao
2017-12-06 10:04       ` David Laight
     [not found]     ` <1511764948-20972-2-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-12-20 22:31       ` Alan Tull
2017-12-20 22:31         ` Alan Tull
     [not found]         ` <CANk1AXTLBWXGUozXJdKRThJwLiHJ==B--DkkE+YRjveA2YvifQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-21  6:02           ` Wu Hao
2017-12-21  6:02             ` Wu Hao
2017-11-27  6:42   ` [PATCH v3 04/21] fpga: add device feature list support Wu Hao
2017-11-27  6:42     ` Wu Hao
     [not found]     ` <1511764948-20972-5-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-11-29  6:07       ` Moritz Fischer
2017-11-29  6:07         ` Moritz Fischer
2017-11-30  5:59         ` Wu Hao
2017-12-20 22:29     ` Alan Tull
2017-12-21  0:58       ` Alan Tull
     [not found]         ` <CANk1AXR76T4x=BNcW=ukmcb45GadRPPcrtBDJEjxutCSHuNQNQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-21  7:22           ` Wu Hao
2017-12-21  7:22             ` Wu Hao
2017-12-22  8:45             ` Wu Hao
2018-01-31 23:22               ` Alan Tull
2018-01-31 23:22                 ` Alan Tull
2017-11-27 21:26   ` [PATCH v3 00/21] Intel FPGA Device Drivers Alan Tull
2017-11-27 21:26     ` Alan Tull
2017-11-27  6:42 ` [PATCH v3 02/21] fpga: mgr: add region_id to fpga_image_info Wu Hao
     [not found]   ` <1511764948-20972-3-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-11-29  6:11     ` Moritz Fischer
2017-11-29  6:11       ` Moritz Fischer
2017-12-04 20:26       ` Alan Tull
     [not found]         ` <CANk1AXTbrD3w=VEzXqTRfebgTYSRNGANthwN_PLVz8WWtxb7CA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-05  3:36           ` Wu Hao
2017-12-05  3:36             ` Wu Hao
2018-01-31 15:35             ` Alan Tull
2018-01-31 15:35               ` Alan Tull
2018-02-01  5:05               ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 03/21] fpga: mgr: add status for fpga-manager Wu Hao
     [not found]   ` <1511764948-20972-4-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-12-04 20:55     ` Alan Tull
2017-12-04 20:55       ` Alan Tull
     [not found]       ` <CANk1AXSPQb3=bwaRQsysuiM5NiS6KpKRazP-WNLuus-C=UP6pg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-05  4:08         ` Wu Hao
2017-12-05  4:08           ` Wu Hao
2017-12-12 18:18   ` Alan Tull
     [not found]     ` <CANk1AXTGdskD9rT5wty1pFeBQ9jK5BhRZFCVbkY3iG9EeEXOvQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-13  4:48       ` Wu Hao
2017-12-13  4:48         ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 05/21] fpga: dfl: add chardev support for feature devices Wu Hao
2017-11-27  6:42 ` Wu Hao [this message]
2018-02-05 22:08   ` [PATCH v3 06/21] fpga: dfl: adds fpga_cdev_find_port Alan Tull
2018-02-06  2:37     ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 07/21] fpga: dfl: add feature device infrastructure Wu Hao
2017-11-27  6:42 ` [PATCH v3 08/21] fpga: add Intel FPGA DFL PCIe device Wu Hao
2017-11-27 10:28   ` David Laight
     [not found]     ` <f5ae8e5edf88420e89cfbe754407b92e-1XygrNkDbNvwg4NCKwmqgw@public.gmane.org>
2017-11-28  3:15       ` Wu Hao
2017-11-28  3:15         ` Wu Hao
2017-12-04 19:46         ` Alan Tull
2017-12-04 19:46           ` Alan Tull
     [not found]           ` <CANk1AXRBEcz5_j+v0oTAXfH10hrPbHGabdR8Pqt07exYxYgfCw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-05  3:33             ` Wu Hao
2017-12-05  3:33               ` Wu Hao
2017-12-05 17:00               ` Alan Tull
2017-12-06  5:30                 ` Wu Hao
2017-12-06  9:44                   ` David Laight
2017-12-06  9:44                     ` David Laight
     [not found]                     ` <e73f5bc9bfc54efcb7b7c43c66379452-1XygrNkDbNvwg4NCKwmqgw@public.gmane.org>
2017-12-06 15:29                       ` Alan Tull
2017-12-06 15:29                         ` Alan Tull
2017-12-06 16:28                         ` David Laight
2017-12-06 16:28                           ` David Laight
2017-12-06 22:39                           ` Alan Tull
2018-02-01 21:59                   ` Alan Tull
2018-02-01 21:59                     ` Alan Tull
2018-02-13  9:36                     ` Wu Hao
2017-12-06  9:34               ` David Laight
2017-12-06  9:34                 ` David Laight
     [not found]                 ` <391be54799604c1fb3d7b80c7ad6d111-1XygrNkDbNvwg4NCKwmqgw@public.gmane.org>
2017-12-07  3:47                   ` Wu Hao
2017-12-07  3:47                     ` Wu Hao
2017-12-06  9:31             ` David Laight
2017-12-06  9:31               ` David Laight
2017-12-06  9:31               ` David Laight
2017-11-27  6:42 ` [PATCH v3 09/21] fpga: intel-dfl-pci: add enumeration for feature devices Wu Hao
     [not found]   ` <1511764948-20972-10-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-12-07 21:41     ` Alan Tull
2017-12-07 21:41       ` Alan Tull
     [not found]       ` <CANk1AXQ3+Y6De1i6i0YacUxS+vBzhEfRX_jJ_wQKJOCWmYetxw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-08  9:25         ` Wu Hao
2017-12-08  9:25           ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 10/21] fpga: dfl: add FPGA Management Engine driver basic framework Wu Hao
2017-11-27  6:42 ` [PATCH v3 11/21] fpga: dfl: fme: add header sub feature support Wu Hao
     [not found]   ` <1511764948-20972-12-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-02-12 16:51     ` Alan Tull
2018-02-12 16:51       ` Alan Tull
     [not found]       ` <CANk1AXR2Q4M4c1TOQhR2J_Mz5MjwZWbR0JUXCR5jFVL_kZtcag-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-13  3:44         ` Wu Hao
2018-02-13  3:44           ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 12/21] fpga: dfl: fme: add FPGA_GET_API_VERSION/CHECK_EXTENSION ioctls support Wu Hao
     [not found]   ` <1511764948-20972-13-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-01-31 15:31     ` Alan Tull
2018-01-31 15:31       ` Alan Tull
2018-02-01  5:11       ` Wu Hao
2018-02-01 15:11         ` Moritz Fischer
2017-11-27  6:42 ` [PATCH v3 13/21] fpga: dfl: fme: add partial reconfiguration sub feature support Wu Hao
2017-11-27  6:42 ` [PATCH v3 14/21] fpga: dfl: add fpga manager platform driver for FME Wu Hao
     [not found]   ` <1511764948-20972-15-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-02-01 22:00     ` Alan Tull
2018-02-01 22:00       ` Alan Tull
2018-02-02  9:42       ` Wu Hao
2018-02-03  0:26         ` Luebbers, Enno
2018-02-03  0:26           ` Luebbers, Enno
2018-02-03 10:41           ` Moritz Fischer
     [not found]             ` <20180203104124.luniynyrr6iwxozd-jTBNv906mVBPs60s1yRl3w@public.gmane.org>
2018-02-04 10:05               ` Wu Hao
2018-02-04 10:05                 ` Wu Hao
2018-02-05 17:21                 ` Alan Tull
2018-02-05 17:21                   ` Alan Tull
     [not found]                   ` <CANk1AXRxkUqPqknzb+-apvjZM6MFRom9fscHPmMc8MTYSLpooA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-06  2:17                     ` Wu Hao
2018-02-06  2:17                       ` Wu Hao
2018-02-06  4:25                       ` Alan Tull
     [not found]                         ` <CANk1AXTYtLu_cnKG75FjBRCf5FAoHFj6saNRncYPjQpJoXd1eg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-06  5:23                           ` Wu Hao
2018-02-06  5:23                             ` Wu Hao
2018-02-06  6:44                           ` Moritz Fischer
2018-02-06  6:44                             ` Moritz Fischer
     [not found]           ` <20180203002626.GA51125-8lsKh0Wp6ypIVPrYeAqNvTMJUdESFZ8XQQ4Iyu8u01E@public.gmane.org>
2018-02-04  9:37             ` Wu Hao
2018-02-04  9:37               ` Wu Hao
2018-02-05 18:36               ` Luebbers, Enno
2018-02-05 18:36                 ` Luebbers, Enno
     [not found]                 ` <20180205183644.GA52136-8lsKh0Wp6yrYELzPhwCr0YT4S9po1h25@public.gmane.org>
2018-02-06  1:47                   ` Wu Hao
2018-02-06  1:47                     ` Wu Hao
2018-02-06  4:25                     ` Alan Tull
2018-02-06  4:25                       ` Alan Tull
     [not found]                       ` <CANk1AXRe85Ns1_cUPdn02yS9Gc6i5cYYhko7snvjfzxQSzUzNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-06  6:47                         ` Wu Hao
2018-02-06  6:47                           ` Wu Hao
2018-02-06 18:53                           ` Alan Tull
2018-02-06 18:53                             ` Alan Tull
2018-02-07  4:52                             ` Wu Hao
2018-02-07 22:37                               ` Alan Tull
2018-02-07 22:37                                 ` Alan Tull
2017-11-27  6:42 ` [PATCH v3 15/21] fpga: dfl: add fpga bridge " Wu Hao
     [not found]   ` <1511764948-20972-16-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-01-31 15:16     ` Alan Tull
2018-01-31 15:16       ` Alan Tull
2018-02-01  5:15       ` Wu Hao
2018-02-01 15:11         ` Moritz Fischer
2018-02-01 15:11           ` Moritz Fischer
2017-11-27  6:42 ` [PATCH v3 16/21] fpga: dfl: add fpga region " Wu Hao
2018-01-31 20:46   ` Alan Tull
2018-02-01  5:23     ` Wu Hao
2018-02-01 15:13       ` Moritz Fischer
2017-11-27  6:42 ` [PATCH v3 17/21] fpga: dfl: add FPGA Accelerated Function Unit driver basic framework Wu Hao
2017-11-27  6:42 ` [PATCH v3 18/21] fpga: dfl: afu: add header sub feature support Wu Hao
     [not found]   ` <1511764948-20972-19-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-02-12 17:43     ` Alan Tull
2018-02-12 17:43       ` Alan Tull
     [not found]       ` <CANk1AXT0s1W99cRvWmT80nB+Buivt9xmjziDAz6pyxY-EJF2Fw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-13  3:33         ` Wu Hao
2018-02-13  3:33           ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 19/21] fpga: dfl: afu: add FPGA_GET_API_VERSION/CHECK_EXTENSION ioctls support Wu Hao
     [not found]   ` <1511764948-20972-20-git-send-email-hao.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-01-31 14:52     ` Alan Tull
2018-01-31 14:52       ` Alan Tull
2018-02-01  5:16       ` Wu Hao
2018-02-01 15:13         ` Moritz Fischer
     [not found]           ` <20180201151309.q3jjx42y6ldcrhc6-y7F9n2Zoz0NnbPI/LkqVKXLzTDPwzsqGqZgBStWHTEI@public.gmane.org>
2018-02-02  9:08             ` Wu Hao
2018-02-02  9:08               ` Wu Hao
2017-11-27  6:42 ` [PATCH v3 20/21] fpga: dfl: afu: add user afu sub feature support Wu Hao
2017-11-27  6:42 ` [PATCH v3 21/21] fpga: dfl: afu: add FPGA_PORT_DMA_MAP/UNMAP ioctls support Wu Hao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1511764948-20972-7-git-send-email-hao.wu@intel.com \
    --to=hao.wu@intel.com \
    --cc=atull@kernel.org \
    --cc=christopher.rauer@intel.com \
    --cc=enno.luebbers@intel.com \
    --cc=guangrong.xiao@linux.intel.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-fpga@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luwei.kang@intel.com \
    --cc=mdf@kernel.org \
    --cc=shiva.rao@intel.com \
    --cc=tim.whisonant@intel.com \
    --cc=yi.z.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.