aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fmc.h
diff options
context:
space:
mode:
authorFederico Vaga <federico.vaga@cern.ch>2017-07-18 08:33:13 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-28 16:24:22 +0200
commit15b1b0f0d87e34a87172d9b83bd260543a991c2e (patch)
tree46565ee325ed50daa277a7d0baaad93181f87329 /include/linux/fmc.h
parentdrivers/fmc: The only way to dump the SDB is from debugfs (diff)
downloadlinux-dev-15b1b0f0d87e34a87172d9b83bd260543a991c2e.tar.xz
linux-dev-15b1b0f0d87e34a87172d9b83bd260543a991c2e.zip
drivers/fmc: change registration prototype
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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/fmc.h')
-rw-r--r--include/linux/fmc.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/fmc.h b/include/linux/fmc.h
index 5c8df0c49fc3..b6c73d54ca46 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 */