bus/pci: remove Mellanox kernel driver type
[dpdk.git] / drivers / bus / ifpga / ifpga_bus.c
index e4b7b6f..dfd6b1f 100644 (file)
@@ -73,6 +73,19 @@ ifpga_find_afu_dev(const struct rte_rawdev *rdev,
        return NULL;
 }
 
+struct rte_afu_device *
+rte_ifpga_find_afu_by_name(const char *name)
+{
+       struct rte_afu_device *afu_dev = NULL;
+
+       TAILQ_FOREACH(afu_dev, &ifpga_afu_dev_list, next) {
+               if (afu_dev &&
+                       !strcmp(afu_dev->device.name, name))
+                       return afu_dev;
+       }
+       return NULL;
+}
+
 static const char * const valid_args[] = {
 #define IFPGA_ARG_NAME         "ifpga"
        IFPGA_ARG_NAME,
@@ -306,12 +319,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;
 }
 
 /*