diff options
Diffstat (limited to 'drivers/bus/ifpga')
-rw-r--r-- | drivers/bus/ifpga/ifpga_bus.c | 23 | ||||
-rw-r--r-- | drivers/bus/ifpga/rte_bus_ifpga.h | 6 |
2 files changed, 19 insertions, 10 deletions
diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c index 5f23ed8b..55d3abf9 100644 --- a/drivers/bus/ifpga/ifpga_bus.c +++ b/drivers/bus/ifpga/ifpga_bus.c @@ -125,15 +125,13 @@ ifpga_scan_one(struct rte_rawdev *rawdev, IFPGA_AFU_BTS); goto end; } + afu_pr_conf.pr_enable = 1; } else { - IFPGA_BUS_ERR("arg %s is mandatory for ifpga bus", - IFPGA_AFU_BTS); - goto end; + afu_pr_conf.pr_enable = 0; } afu_pr_conf.afu_id.uuid.uuid_low = 0; afu_pr_conf.afu_id.uuid.uuid_high = 0; - afu_pr_conf.pr_enable = path?1:0; if (ifpga_find_afu_dev(rawdev, &afu_pr_conf.afu_id)) goto end; @@ -308,12 +306,19 @@ ifpga_probe_all_drivers(struct rte_afu_device *afu_dev) } TAILQ_FOREACH(drv, &ifpga_afu_drv_list, next) { - if (ifpga_probe_one_driver(drv, afu_dev)) { - ret = -1; - break; - } + ret = ifpga_probe_one_driver(drv, afu_dev); + if (ret < 0) + /* negative value is an error */ + return ret; + if (ret > 0) + /* positive value means driver doesn't support it */ + continue; + return 0; } - return ret; + if ((ret > 0) && (afu_dev->driver == NULL)) + return 0; + else + return ret; } /* diff --git a/drivers/bus/ifpga/rte_bus_ifpga.h b/drivers/bus/ifpga/rte_bus_ifpga.h index d53c0f48..0bf43ba8 100644 --- a/drivers/bus/ifpga/rte_bus_ifpga.h +++ b/drivers/bus/ifpga/rte_bus_ifpga.h @@ -13,7 +13,7 @@ #ifdef __cplusplus extern "C" { -#endif +#endif /* __cplusplus */ #include <rte_bus.h> #include <rte_pci.h> @@ -143,4 +143,8 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__) #define RTE_PMD_REGISTER_AFU_ALIAS(nm, alias)\ static const char *afudrvinit_ ## nm ## _alias = RTE_STR(alias) +#ifdef __cplusplus +} +#endif /* __cplusplus */ + #endif /* _RTE_BUS_IFPGA_H_ */ |