diff options
author | Tom Rix <trix@redhat.com> | 2021-06-25 22:51:48 +0300 |
---|---|---|
committer | Moritz Fischer <mdf@kernel.org> | 2021-07-25 01:10:31 +0300 |
commit | 630211a17055bafd21fb83ae8c0002b2e214ebb2 (patch) | |
tree | b6505fc0be470f286b39bd73e6057b790d70b70a /drivers/fpga/fpga-mgr.c | |
parent | 6489d3b00398f02457eea566d4a99698c68cc89f (diff) | |
download | linux-630211a17055bafd21fb83ae8c0002b2e214ebb2.tar.xz |
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.
[mdf@kernel.org: Reworded first line]
Signed-off-by: Tom Rix <trix@redhat.com>
Signed-off-by: Moritz Fischer <mdf@kernel.org>
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; |