diff -r bfa040859b56 -r 6012e1414bec master/master.c --- a/master/master.c Thu Jun 12 13:42:52 2008 +0000 +++ b/master/master.c Mon Jun 16 09:30:58 2008 +0000 @@ -1287,7 +1287,7 @@ ec_slave_config_t *ecrt_master_slave_config(ec_master_t *master, uint16_t alias, uint16_t position, uint32_t vendor_id, - uint32_t product_code) + uint32_t product_code, uint32_t revision_number) { ec_slave_config_t *sc; unsigned int found = 0; @@ -1304,18 +1304,21 @@ EC_INFO("Using existing slave configuration for %u:%u\n", alias, position); } - if (sc->vendor_id != vendor_id || sc->product_code != product_code) { + if (sc->vendor_id != vendor_id + || sc->product_code != product_code + || sc->revision_number != revision_number) { EC_ERR("Slave type mismatch. Slave was configured as" - " 0x%08X/0x%08X before. Now configuring with" - " 0x%08X/0x%08X.\n", sc->vendor_id, sc->product_code, - vendor_id, product_code); + " 0x%08X/0x%08X/0x%08X before. Now configuring with" + " 0x%08X/0x%08X/0x%08X.\n", + sc->vendor_id, sc->product_code, sc->revision_number, + vendor_id, product_code, revision_number); return NULL; } } else { if (master->debug_level) { EC_INFO("Creating slave configuration for %u:%u," - " 0x%08X/0x%08X.\n", alias, position, vendor_id, - product_code); + " 0x%08X/0x%08X/0x%08X.\n", alias, position, + vendor_id, product_code, revision_number); } if (!(sc = (ec_slave_config_t *) kmalloc(sizeof(ec_slave_config_t), @@ -1325,7 +1328,7 @@ } ec_slave_config_init(sc, master, - alias, position, vendor_id, product_code); + alias, position, vendor_id, product_code, revision_number); // try to find the addressed slave ec_slave_config_attach(sc);