Re: [PATCH v5 3/4] fpga: pass fpga_manager_update_ops to the fpga_manager_write functions

From: Martin Hundebøll
Date: Mon Jun 28 2021 - 03:42:43 EST


On 25/06/2021 21.58, trix@xxxxxxxxxx wrote:
From: Tom Rix <trix@xxxxxxxxxx>

Refactor fpga_manager_write* functions for reimaging, pass
the update_ops as a parameter. Continue the passing of the update_ops
to the write wrapper functions. Only do the reconfig ops.

Signed-off-by: Tom Rix <trix@xxxxxxxxxx>
---
drivers/fpga/fpga-mgr.c | 90 ++++++++++++++++++++++++-----------------
1 file changed, 53 insertions(+), 37 deletions(-)

diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c
index 31c51d7e07cc8..c8a6bfa037933 100644
--- a/drivers/fpga/fpga-mgr.c
+++ b/drivers/fpga/fpga-mgr.c
@@ -45,10 +45,12 @@ static inline u64 fpga_mgr_status(struct fpga_manager *mgr)
return 0;
}
-static inline int fpga_mgr_write(struct fpga_manager *mgr, const char *buf, size_t count)
+static inline int fpga_mgr_write(struct fpga_manager *mgr,
+ const char *buf, size_t count,
+ const struct fpga_manager_update_ops *uops)
{
if (mgr->mops->reconfig.write)

Shouldn't this check be

if (uops->write)
return ...

?

- return mgr->mops->reconfig.write(mgr, buf, count);
+ return uops->write(mgr, buf, count);
return -EOPNOTSUPP;
}

<snip>

@@ -208,6 +215,7 @@ static int fpga_mgr_write_init_sg(struct fpga_manager *mgr,
* @mgr: fpga manager
* @info: fpga image specific information
* @sgt: scatterlist table
+ * @uops: which update ops to use

Tabs vs. spaces.

*
* Step the low level fpga manager through the device-specific steps of getting
* an FPGA ready to be configured, writing the image to it, then doing whatever

<snip>

@@ -285,6 +295,7 @@ static int fpga_mgr_buf_load_mapped(struct fpga_manager *mgr,
* @info: fpga image info
* @buf: buffer contain fpga image
* @count: byte count of buf
+ * @uops: which update ops to use

Tabs vs. spaces.

*
* Step the low level fpga manager through the device-specific steps of getting
* an FPGA ready to be configured, writing the image to it, then doing whatever

<snip>

@@ -356,6 +368,7 @@ static int fpga_mgr_buf_load(struct fpga_manager *mgr,
* @mgr: fpga manager
* @info: fpga image specific information
* @image_name: name of image file on the firmware search path
+ * @uops: which update ops to use

Tabs vs. spaces.

*
* Request an FPGA image using the firmware class, then write out to the FPGA.
* Update the state before each step to provide info on what step failed if


// Martin