fpga: fpga-mgr: wrap the write_sg() op
authorTom Rix <trix@redhat.com>
Fri, 25 Jun 2021 19:51:48 +0000 (12:51 -0700)
committerMoritz Fischer <mdf@kernel.org>
Sat, 24 Jul 2021 22:10:31 +0000 (15:10 -0700)
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>
drivers/fpga/fpga-mgr.c

index 077c0f9edbe4c161458d9df89c7483b38c0a9496..aa30889e23208316cc55e6991c9c52f4bdd08d51 100644 (file)
@@ -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;