diff options
| author | Tom Rix <[email protected]> | 2021-06-25 19:51:48 +0000 |
|---|---|---|
| committer | Moritz Fischer <[email protected]> | 2021-07-24 22:10:31 +0000 |
| commit | 630211a17055bafd21fb83ae8c0002b2e214ebb2 (patch) | |
| tree | b6505fc0be470f286b39bd73e6057b790d70b70a /drivers/fpga/fpga-mgr.c | |
| parent | fpga: fpga-mgr: wrap the fpga_remove() op (diff) | |
| download | kernel-630211a17055bafd21fb83ae8c0002b2e214ebb2.tar.gz kernel-630211a17055bafd21fb83ae8c0002b2e214ebb2.zip | |
fpga: fpga-mgr: wrap the write_sg() op
An FPGA manager should not be required to provide a
write_sg function. Move the op check to the wrapper.
Default to -EOPNOTSUP so its users will fail
gracefully.
[[email protected]: Reworded first line]
Signed-off-by: Tom Rix <[email protected]>
Signed-off-by: Moritz Fischer <[email protected]>
Diffstat (limited to 'drivers/fpga/fpga-mgr.c')
| -rw-r--r-- | drivers/fpga/fpga-mgr.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index 077c0f9edbe4..aa30889e2320 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -83,6 +83,14 @@ static inline int fpga_mgr_write_init(struct fpga_manager *mgr, return 0; } +static inline int fpga_mgr_write_sg(struct fpga_manager *mgr, + struct sg_table *sgt) +{ + if (mgr->mops->write_sg) + return mgr->mops->write_sg(mgr, sgt); + return -EOPNOTSUPP; +} + /** * fpga_image_info_alloc - Allocate an FPGA image info struct * @dev: owning device @@ -225,7 +233,7 @@ static int fpga_mgr_buf_load_sg(struct fpga_manager *mgr, /* Write the FPGA image to the FPGA. */ mgr->state = FPGA_MGR_STATE_WRITE; if (mgr->mops->write_sg) { - ret = mgr->mops->write_sg(mgr, sgt); + ret = fpga_mgr_write_sg(mgr, sgt); } else { struct sg_mapping_iter miter; |
