Message ID | 20210625195849.837976-6-trix@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | generalize fpga_mgr_load | expand |
On Fri, Jun 25, 2021 at 12:58:49PM -0700, trix@redhat.com wrote: > From: Tom Rix <trix@redhat.com> > > If the fpga_image_info flags FPGA_MGR_REIMAGE bit is set > swap out the reconfig ops for the reimage ops and do > the load. > > Signed-off-by: Tom Rix <trix@redhat.com> > --- > drivers/fpga/fpga-mgr.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c > index c8a6bfa037933..5e53a0508087a 100644 > --- a/drivers/fpga/fpga-mgr.c > +++ b/drivers/fpga/fpga-mgr.c > @@ -419,6 +419,9 @@ int fpga_mgr_load(struct fpga_manager *mgr, struct fpga_image_info *info) > { > const struct fpga_manager_update_ops *uops = &mgr->mops->reconfig; > > + if (info->flags & FPGA_MGR_REIMAGE) > + uops = &mgr->mops->reimage; > + So seems there is no big difference on processing 'reconfig' & 'reimage' in FPGA mgr framework. We may not have to introduce 2 sets of ops in fpga_mgr. Could we just reuse the fpga_mgr_ops for reimage? The fpga_mgr_ops.write_init() will pass the fpga_image_info to device driver, and driver could be aware of the REIMAGE flag. Just like the handling of other flags in fpga_image_info. Thanks, Yilun > if (info->sgt) > return fpga_mgr_buf_load_sg(mgr, info, info->sgt, uops); > if (info->buf && info->count) > -- > 2.26.3
diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index c8a6bfa037933..5e53a0508087a 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -419,6 +419,9 @@ int fpga_mgr_load(struct fpga_manager *mgr, struct fpga_image_info *info) { const struct fpga_manager_update_ops *uops = &mgr->mops->reconfig; + if (info->flags & FPGA_MGR_REIMAGE) + uops = &mgr->mops->reimage; + if (info->sgt) return fpga_mgr_buf_load_sg(mgr, info, info->sgt, uops); if (info->buf && info->count)