Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1689769 > unrolled thread

[PATCH V3 4/5] drivers/fmc: change registration prototype

Started byAlessandro Rubini <rubini@gnudd.com>
First post2017-07-18 08:40 +0200
Last post2017-07-18 08:40 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH V3 4/5] drivers/fmc: change registration prototype Alessandro Rubini <rubini@gnudd.com> - 2017-07-18 08:40 +0200

#1689769 — [PATCH V3 4/5] drivers/fmc: change registration prototype

FromAlessandro Rubini <rubini@gnudd.com>
Date2017-07-18 08:40 +0200
Subject[PATCH V3 4/5] drivers/fmc: change registration prototype
Message-ID<u4ukO-7l9-33@gated-at.bofh.it>
From: Federico Vaga <federico.vaga@cern.ch>

Permit use of either fmc_device_register_n or fmc_device_register_n_gw
depending on the type of device in use.

Signed-off-by: Federico Vaga <federico.vaga@cern.ch>
Tested-by: Pat Riehecky <riehecky@fnal.gov>
Acked-by: Alessandro Rubini <rubini@gnudd.com>
---

V3 (Alessandro): fixed From line in patch, added alessandro's acked-by

V2 (Pat): added Tested-by and incorrect From line

V1 (Pat): picked from ohwr.org repo, where most fmc users pick from.

 drivers/fmc/fmc-core.c | 15 ++++++++++++++-
 include/linux/fmc.h    | 13 +++++++++++--
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/drivers/fmc/fmc-core.c b/drivers/fmc/fmc-core.c
index ef6d8ac..eabeac0 100644
--- a/drivers/fmc/fmc-core.c
+++ b/drivers/fmc/fmc-core.c
@@ -199,7 +199,8 @@ EXPORT_SYMBOL(fmc_driver_unregister);
  * When a device set is registered, all eeproms must be read
  * and all FRUs must be parsed
  */
-int fmc_device_register_n(struct fmc_device **devs, int n)
+int fmc_device_register_n_gw(struct fmc_device **devs, int n,
+			  struct fmc_gateware *gw)
 {
 	struct fmc_device *fmc, **devarray;
 	uint32_t device_id;
@@ -313,8 +314,20 @@ int fmc_device_register_n(struct fmc_device **devs, int n)
 	return ret;
 
 }
+EXPORT_SYMBOL(fmc_device_register_n_gw);
+
+int fmc_device_register_n(struct fmc_device **devs, int n)
+{
+	return fmc_device_register_n_gw(devs, n, NULL);
+}
 EXPORT_SYMBOL(fmc_device_register_n);
 
+int fmc_device_register_gw(struct fmc_device *fmc, struct fmc_gateware *gw)
+{
+	return fmc_device_register_n_gw(&fmc, 1, gw);
+}
+EXPORT_SYMBOL(fmc_device_register_gw);
+
 int fmc_device_register(struct fmc_device *fmc)
 {
 	return fmc_device_register_n(&fmc, 1);
diff --git a/include/linux/fmc.h b/include/linux/fmc.h
index 5c8df0c..b6c73d5 100644
--- a/include/linux/fmc.h
+++ b/include/linux/fmc.h
@@ -220,14 +220,23 @@ static inline void fmc_set_drvdata(struct fmc_device *fmc, void *data)
 	dev_set_drvdata(&fmc->dev, data);
 }
 
-/* The 4 access points */
+struct fmc_gateware {
+	void *bitstream;
+	unsigned long len;
+};
+
+/* The 5 access points */
 extern int fmc_driver_register(struct fmc_driver *drv);
 extern void fmc_driver_unregister(struct fmc_driver *drv);
 extern int fmc_device_register(struct fmc_device *tdev);
+extern int fmc_device_register_gw(struct fmc_device *tdev,
+				  struct fmc_gateware *gw);
 extern void fmc_device_unregister(struct fmc_device *tdev);
 
-/* Two more for device sets, all driven by the same FPGA */
+/* Three more for device sets, all driven by the same FPGA */
 extern int fmc_device_register_n(struct fmc_device **devs, int n);
+extern int fmc_device_register_n_gw(struct fmc_device **devs, int n,
+				    struct fmc_gateware *gw);
 extern void fmc_device_unregister_n(struct fmc_device **devs, int n);
 
 /* Internal cross-calls between files; not exported to other modules */
-- 
2.1.4

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web