OSDN Git Service

fpga: fpga-mgr: wrap the status() op
authorTom Rix <trix@redhat.com>
Fri, 25 Jun 2021 19:51:45 +0000 (12:51 -0700)
committerMoritz Fischer <mdf@kernel.org>
Sat, 24 Jul 2021 22:10:31 +0000 (15:10 -0700)
An FPGA manager is not required to provide a status() op.
Add a wrapper consistent with the other op wrappers.
Move the op check to the wrapper.
Default to 0, no errors to report.

[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 8d5536d..43518b6 100644 (file)
@@ -25,6 +25,13 @@ struct fpga_mgr_devres {
        struct fpga_manager *mgr;
 };
 
+static inline u64 fpga_mgr_status(struct fpga_manager *mgr)
+{
+       if (mgr->mops->status)
+               return mgr->mops->status(mgr);
+       return 0;
+}
+
 static inline int fpga_mgr_write(struct fpga_manager *mgr, const char *buf, size_t count)
 {
        if (mgr->mops->write)
@@ -434,10 +441,7 @@ static ssize_t status_show(struct device *dev,
        u64 status;
        int len = 0;
 
-       if (!mgr->mops->status)
-               return -ENOENT;
-
-       status = mgr->mops->status(mgr);
+       status = fpga_mgr_status(mgr);
 
        if (status & FPGA_MGR_STATUS_OPERATION_ERR)
                len += sprintf(buf + len, "reconfig operation error\n");