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