Skip to content

Commit 15b1b0f

Browse files
Federico Vagagregkh
authored andcommitted
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 <[email protected]> Tested-by: Pat Riehecky <[email protected]> Acked-by: Alessandro Rubini <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 2071a3e commit 15b1b0f

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

drivers/fmc/fmc-core.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,8 @@ EXPORT_SYMBOL(fmc_driver_unregister);
199199
* When a device set is registered, all eeproms must be read
200200
* and all FRUs must be parsed
201201
*/
202-
int fmc_device_register_n(struct fmc_device **devs, int n)
202+
int fmc_device_register_n_gw(struct fmc_device **devs, int n,
203+
struct fmc_gateware *gw)
203204
{
204205
struct fmc_device *fmc, **devarray;
205206
uint32_t device_id;
@@ -313,8 +314,20 @@ int fmc_device_register_n(struct fmc_device **devs, int n)
313314
return ret;
314315

315316
}
317+
EXPORT_SYMBOL(fmc_device_register_n_gw);
318+
319+
int fmc_device_register_n(struct fmc_device **devs, int n)
320+
{
321+
return fmc_device_register_n_gw(devs, n, NULL);
322+
}
316323
EXPORT_SYMBOL(fmc_device_register_n);
317324

325+
int fmc_device_register_gw(struct fmc_device *fmc, struct fmc_gateware *gw)
326+
{
327+
return fmc_device_register_n_gw(&fmc, 1, gw);
328+
}
329+
EXPORT_SYMBOL(fmc_device_register_gw);
330+
318331
int fmc_device_register(struct fmc_device *fmc)
319332
{
320333
return fmc_device_register_n(&fmc, 1);

include/linux/fmc.h

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,23 @@ static inline void fmc_set_drvdata(struct fmc_device *fmc, void *data)
220220
dev_set_drvdata(&fmc->dev, data);
221221
}
222222

223-
/* The 4 access points */
223+
struct fmc_gateware {
224+
void *bitstream;
225+
unsigned long len;
226+
};
227+
228+
/* The 5 access points */
224229
extern int fmc_driver_register(struct fmc_driver *drv);
225230
extern void fmc_driver_unregister(struct fmc_driver *drv);
226231
extern int fmc_device_register(struct fmc_device *tdev);
232+
extern int fmc_device_register_gw(struct fmc_device *tdev,
233+
struct fmc_gateware *gw);
227234
extern void fmc_device_unregister(struct fmc_device *tdev);
228235

229-
/* Two more for device sets, all driven by the same FPGA */
236+
/* Three more for device sets, all driven by the same FPGA */
230237
extern int fmc_device_register_n(struct fmc_device **devs, int n);
238+
extern int fmc_device_register_n_gw(struct fmc_device **devs, int n,
239+
struct fmc_gateware *gw);
231240
extern void fmc_device_unregister_n(struct fmc_device **devs, int n);
232241

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

0 commit comments

Comments
 (0)