fpga: add fpga_compatible2flag

Add a "compatible" string to binary flag converter, which uses
a callback str2flag() of given FPGA driver if available.

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-8-oleksandr.suvorov@foundries.io
Signed-off-by: Michal Simek <michal.simek@amd.com>
This commit is contained in:
Oleksandr Suvorov 2022-07-22 17:16:08 +03:00 committed by Michal Simek
parent 282eed50ec
commit 2c60514d9a
2 changed files with 27 additions and 0 deletions

View file

@ -357,3 +357,29 @@ int fpga_info(int devnum)
return fpga_dev_info(devnum); return fpga_dev_info(devnum);
} }
#if CONFIG_IS_ENABLED(FPGA_LOAD_SECURE)
int fpga_compatible2flag(int devnum, const char *compatible)
{
const fpga_desc * const desc = fpga_get_desc(devnum);
if (!desc)
return 0;
switch (desc->devtype) {
#if defined(CONFIG_FPGA_XILINX)
case fpga_xilinx:
{
xilinx_desc *xdesc = (xilinx_desc *)desc->devdesc;
if (xdesc->operations && xdesc->operations->str2flag)
return xdesc->operations->str2flag(xdesc, compatible);
}
#endif
default:
break;
}
return 0;
}
#endif

View file

@ -75,5 +75,6 @@ int fpga_dump(int devnum, const void *buf, size_t bsize);
int fpga_info(int devnum); int fpga_info(int devnum);
const fpga_desc *const fpga_validate(int devnum, const void *buf, const fpga_desc *const fpga_validate(int devnum, const void *buf,
size_t bsize, char *fn); size_t bsize, char *fn);
int fpga_compatible2flag(int devnum, const char *compatible);
#endif /* _FPGA_H_ */ #endif /* _FPGA_H_ */