Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15b1b0f0 authored by Federico Vaga's avatar Federico Vaga Committed by Greg Kroah-Hartman
Browse files

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: default avatarFederico Vaga <federico.vaga@cern.ch>
Tested-by: default avatarPat Riehecky <riehecky@fnal.gov>
Acked-by: default avatarAlessandro Rubini <rubini@gnudd.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2071a3e9
Loading
Loading
Loading
Loading
+14 −1
Original line number Original line Diff line number Diff line
@@ -199,7 +199,8 @@ EXPORT_SYMBOL(fmc_driver_unregister);
 * When a device set is registered, all eeproms must be read
 * When a device set is registered, all eeproms must be read
 * and all FRUs must be parsed
 * 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;
	struct fmc_device *fmc, **devarray;
	uint32_t device_id;
	uint32_t device_id;
@@ -313,8 +314,20 @@ int fmc_device_register_n(struct fmc_device **devs, int n)
	return ret;
	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);
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)
int fmc_device_register(struct fmc_device *fmc)
{
{
	return fmc_device_register_n(&fmc, 1);
	return fmc_device_register_n(&fmc, 1);
+11 −2
Original line number Original line Diff line number Diff line
@@ -220,14 +220,23 @@ static inline void fmc_set_drvdata(struct fmc_device *fmc, void *data)
	dev_set_drvdata(&fmc->dev, 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 int fmc_driver_register(struct fmc_driver *drv);
extern void fmc_driver_unregister(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(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);
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(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);
extern void fmc_device_unregister_n(struct fmc_device **devs, int n);


/* Internal cross-calls between files; not exported to other modules */
/* Internal cross-calls between files; not exported to other modules */