master/slave_config.c
branchstable-1.5
changeset 2139 d64957379916
parent 2115 2ec1239216e5
child 2366 5682b63f826a
child 2404 2698d29007f1
--- a/master/slave_config.c	Fri Oct 28 13:07:54 2011 +0200
+++ b/master/slave_config.c	Fri Nov 04 12:21:09 2011 +0100
@@ -214,12 +214,28 @@
         return -EEXIST;
     }
 
-    if (slave->sii.vendor_id != sc->vendor_id
-            || slave->sii.product_code != sc->product_code) {
-        EC_CONFIG_DBG(sc, 1, "Slave %u has an invalid type (0x%08X/0x%08X)"
-                " for configuration (0x%08X/0x%08X).\n",
-                slave->ring_position, slave->sii.vendor_id,
-                slave->sii.product_code, sc->vendor_id, sc->product_code);
+    if (
+#ifdef EC_IDENT_WILDCARDS
+            sc->vendor_id != 0xffffffff &&
+#endif
+            slave->sii.vendor_id != sc->vendor_id
+       ) {
+        EC_CONFIG_DBG(sc, 1, "Slave %u has no matching vendor ID (0x%08X)"
+                " for configuration (0x%08X).\n",
+                slave->ring_position, slave->sii.vendor_id, sc->vendor_id);
+        return -EINVAL;
+    }
+
+    if (
+#ifdef EC_IDENT_WILDCARDS
+            sc->product_code != 0xffffffff &&
+#endif
+            slave->sii.product_code != sc->product_code
+       ) {
+        EC_CONFIG_DBG(sc, 1, "Slave %u has no matching product code (0x%08X)"
+                " for configuration (0x%08X).\n",
+                slave->ring_position, slave->sii.product_code,
+                sc->product_code);
         return -EINVAL;
     }