fpga: xilinx: pass compatible flags to load() callback
authorOleksandr Suvorov <oleksandr.suvorov@foundries.io>
Fri, 22 Jul 2022 14:16:10 +0000 (17:16 +0300)
committerMichal Simek <michal.simek@amd.com>
Tue, 26 Jul 2022 07:34:21 +0000 (09:34 +0200)
These flags may be used to check whether an FPGA driver is able to
load a particular FPGA bitstream image.

Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
Tested-by: Ricardo Salveti <ricardo@foundries.io>
Tested-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
Link: https://lore.kernel.org/r/20220722141614.297383-10-oleksandr.suvorov@foundries.io
Signed-off-by: Michal Simek <michal.simek@amd.com>
drivers/fpga/spartan2.c
drivers/fpga/spartan3.c
drivers/fpga/versalpl.c
drivers/fpga/virtex2.c
drivers/fpga/xilinx.c
drivers/fpga/zynqmppl.c
drivers/fpga/zynqpl.c
include/xilinx.h

index fe37752..47692e3 100644 (file)
@@ -40,7 +40,7 @@ static int spartan2_ss_dump(xilinx_desc *desc, const void *buf, size_t bsize);
 /* ------------------------------------------------------------------------- */
 /* Spartan-II Generic Implementation */
 static int spartan2_load(xilinx_desc *desc, const void *buf, size_t bsize,
-                        bitstream_type bstype)
+                        bitstream_type bstype, int flags)
 {
        int ret_val = FPGA_FAIL;
 
index 4850c99..918f6db 100644 (file)
@@ -45,7 +45,7 @@ static int spartan3_ss_dump(xilinx_desc *desc, const void *buf, size_t bsize);
 /* ------------------------------------------------------------------------- */
 /* Spartan-II Generic Implementation */
 static int spartan3_load(xilinx_desc *desc, const void *buf, size_t bsize,
-                        bitstream_type bstype)
+                        bitstream_type bstype, int flags)
 {
        int ret_val = FPGA_FAIL;
 
index c44a7d3..d3876a8 100644 (file)
@@ -27,7 +27,7 @@ static ulong versal_align_dma_buffer(ulong *buf, u32 len)
 }
 
 static int versal_load(xilinx_desc *desc, const void *buf, size_t bsize,
-                      bitstream_type bstype)
+                      bitstream_type bstype, int flags)
 {
        ulong bin_buf;
        int ret;
index 2e764bd..51b8d31 100644 (file)
@@ -83,7 +83,7 @@ static int virtex2_ss_load(xilinx_desc *desc, const void *buf, size_t bsize);
 static int virtex2_ss_dump(xilinx_desc *desc, const void *buf, size_t bsize);
 
 static int virtex2_load(xilinx_desc *desc, const void *buf, size_t bsize,
-                       bitstream_type bstype)
+                       bitstream_type bstype, int flags)
 {
        int ret_val = FPGA_FAIL;
 
index d9951ca..8170c33 100644 (file)
@@ -151,7 +151,7 @@ int xilinx_load(xilinx_desc *desc, const void *buf, size_t bsize,
                return FPGA_FAIL;
        }
 
-       return desc->operations->load(desc, buf, bsize, bstype);
+       return desc->operations->load(desc, buf, bsize, bstype, flags);
 }
 
 #if defined(CONFIG_CMD_FPGA_LOADFS)
index 19d079c..a062456 100644 (file)
@@ -200,7 +200,7 @@ static int zynqmp_validate_bitstream(xilinx_desc *desc, const void *buf,
 }
 
 static int zynqmp_load(xilinx_desc *desc, const void *buf, size_t bsize,
-                    bitstream_type bstype)
+                    bitstream_type bstype, int flags)
 {
        ALLOC_CACHE_ALIGN_BUFFER(u32, bsizeptr, 1);
        u32 swap = 0;
index 2de4010..d8ebd54 100644 (file)
@@ -371,7 +371,7 @@ static int zynq_validate_bitstream(xilinx_desc *desc, const void *buf,
 }
 
 static int zynq_load(xilinx_desc *desc, const void *buf, size_t bsize,
-                    bitstream_type bstype)
+                    bitstream_type bstype, int flags)
 {
        unsigned long ts; /* Timestamp */
        u32 isr_status, swap;
index 0bbf14d..e5f6db3 100644 (file)
@@ -53,7 +53,7 @@ typedef struct {              /* typedef xilinx_desc */
 
 struct xilinx_fpga_op {
        int (*load)(xilinx_desc *desc, const void *buf, size_t bsize,
-                   bitstream_type bstype);
+                   bitstream_type bstype, int flags);
        int (*loadfs)(xilinx_desc *desc, const void *buf, size_t bsize,
                      fpga_fs_info *fpga_fsinfo);
        int (*loads)(xilinx_desc *desc, const void *buf, size_t bsize,