diff options
author | Michal Simek <michal.simek@xilinx.com> | 2014-07-16 10:31:21 +0200 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2015-01-21 10:25:15 +0100 |
commit | 6cd68c811ecb145d4258ce6be99dba3e507b294f (patch) | |
tree | 5e600a6b50424887541564f96edbfb31951303c7 /drivers/fpga | |
parent | 345f9e195675207372efbb492f29dcfdcb938fd7 (diff) | |
download | u-boot-imx-6cd68c811ecb145d4258ce6be99dba3e507b294f.zip u-boot-imx-6cd68c811ecb145d4258ce6be99dba3e507b294f.tar.gz u-boot-imx-6cd68c811ecb145d4258ce6be99dba3e507b294f.tar.bz2 |
fpga: xilinx: Check if fpga operations are defined
Ensure that operations are correctly setup.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/fpga')
-rw-r--r-- | drivers/fpga/xilinx.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/fpga/xilinx.c b/drivers/fpga/xilinx.c index adb4b8c..9c95148 100644 --- a/drivers/fpga/xilinx.c +++ b/drivers/fpga/xilinx.c @@ -139,6 +139,11 @@ int xilinx_load(xilinx_desc *desc, const void *buf, size_t bsize, return FPGA_FAIL; } + if (!desc->operations || !desc->operations->load) { + printf("%s: Missing load operation\n", __func__); + return FPGA_FAIL; + } + return desc->operations->load(desc, buf, bsize, bstype); } @@ -151,8 +156,10 @@ int xilinx_loadfs(xilinx_desc *desc, const void *buf, size_t bsize, return FPGA_FAIL; } - if (!desc->operations->loadfs) + if (!desc->operations || !desc->operations->loadfs) { + printf("%s: Missing loadfs operation\n", __func__); return FPGA_FAIL; + } return desc->operations->loadfs(desc, buf, bsize, fpga_fsinfo); } @@ -165,6 +172,11 @@ int xilinx_dump(xilinx_desc *desc, const void *buf, size_t bsize) return FPGA_FAIL; } + if (!desc->operations || !desc->operations->dump) { + printf("%s: Missing dump operation\n", __func__); + return FPGA_FAIL; + } + return desc->operations->dump(desc, buf, bsize); } @@ -228,7 +240,8 @@ int xilinx_info(xilinx_desc *desc) if (desc->iface_fns) { printf ("Device Function Table @ 0x%p\n", desc->iface_fns); - desc->operations->info(desc); + if (desc->operations && desc->operations->info) + desc->operations->info(desc); } else printf ("No Device Function Table.\n"); |