--- a/master/slave_config.c Fri May 07 15:26:26 2010 +0200
+++ b/master/slave_config.c Tue May 11 13:57:58 2010 +0200
@@ -176,8 +176,7 @@
}
if (sc->used_fmmus == EC_MAX_FMMUS) {
- EC_ERR("FMMU limit reached for slave configuration %u:%u!\n",
- sc->alias, sc->position);
+ EC_CONFIG_ERR(sc, "FMMU limit reached!\n");
return -EOVERFLOW;
}
@@ -220,28 +219,22 @@
if (!(slave = ec_master_find_slave(
sc->master, sc->alias, sc->position))) {
- if (sc->master->debug_level)
- EC_DBG("Failed to find slave for configuration %u:%u.\n",
- sc->alias, sc->position);
+ EC_CONFIG_DBG(sc, 1, "Failed to find slave for configuration.\n");
return -ENOENT;
}
if (slave->config) {
- if (sc->master->debug_level)
- EC_DBG("Failed to attach slave configuration %u:%u. Slave %u"
- " already has a configuration!\n", sc->alias,
- sc->position, slave->ring_position);
+ EC_CONFIG_DBG(sc, 1, "Failed to attach configuration. Slave %u"
+ " already has a configuration!\n", slave->ring_position);
return -EEXIST;
}
if (slave->sii.vendor_id != sc->vendor_id
|| slave->sii.product_code != sc->product_code) {
- if (sc->master->debug_level)
- EC_DBG("Slave %u has an invalid type (0x%08X/0x%08X) for"
- " configuration %u:%u (0x%08X/0x%08X).\n",
- slave->ring_position, slave->sii.vendor_id,
- slave->sii.product_code, sc->alias, sc->position,
- sc->vendor_id, 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);
return -EINVAL;
}
@@ -251,9 +244,7 @@
ec_slave_request_state(slave, EC_SLAVE_STATE_OP);
- if (sc->master->debug_level)
- EC_DBG("Attached slave %u to config %u:%u.\n",
- slave->ring_position, sc->alias, sc->position);
+ EC_CONFIG_DBG(sc, 1, "Attached slave %u.\n", slave->ring_position);
return 0;
}
@@ -290,8 +281,8 @@
if ((sync = ec_slave_get_sync(sc->slave, sync_index))) {
sync_config->dir = ec_sync_default_direction(sync);
if (sync_config->dir == EC_DIR_INVALID)
- EC_WARN("SM%u of slave %u has an invalid direction field!\n",
- sync_index, sc->slave->ring_position);
+ EC_SLAVE_WARN(sc->slave,
+ "SM%u has an invalid direction field!\n", sync_index);
ec_pdo_list_copy(&sync_config->pdos, &sync->pdos);
}
}
@@ -313,9 +304,8 @@
if (!sc->slave)
return;
- if (sc->master->debug_level)
- EC_DBG("Loading default mapping for PDO 0x%04X in config %u:%u.\n",
- pdo->index, sc->alias, sc->position);
+ EC_CONFIG_DBG(sc, 1, "Loading default mapping for PDO 0x%04X.\n",
+ pdo->index);
// find PDO in any sync manager (it could be reassigned later)
for (i = 0; i < sc->slave->sii.sync_count; i++) {
@@ -326,8 +316,8 @@
continue;
if (default_pdo->name) {
- if (sc->master->debug_level)
- EC_DBG("Found PDO name \"%s\".\n", default_pdo->name);
+ EC_CONFIG_DBG(sc, 1, "Found PDO name \"%s\".\n",
+ default_pdo->name);
// take PDO name from assigned one
ec_pdo_set_name(pdo, default_pdo->name);
@@ -340,7 +330,7 @@
if (sc->master->debug_level) {
const ec_pdo_entry_t *entry;
list_for_each_entry(entry, &pdo->entries, list) {
- EC_DBG("Entry 0x%04X:%02X.\n",
+ EC_CONFIG_DBG(sc, 1, "Entry 0x%04X:%02X.\n",
entry->index, entry->subindex);
}
}
@@ -349,8 +339,7 @@
}
}
- if (sc->master->debug_level)
- EC_DBG("No default mapping found.\n");
+ EC_CONFIG_DBG(sc, 1, "No default mapping found.\n");
}
/*****************************************************************************/
@@ -444,18 +433,17 @@
{
ec_sync_config_t *sync_config;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_sync_manager(sc = 0x%p, sync_index = %u, "
- "dir = %i, watchdog_mode = %i)\n",
- sc, sync_index, dir, watchdog_mode);
+ EC_CONFIG_DBG(sc, 1, "ecrt_slave_config_sync_manager(sc = 0x%p,"
+ " sync_index = %u, dir = %i, watchdog_mode = %i)\n",
+ sc, sync_index, dir, watchdog_mode);
if (sync_index >= EC_MAX_SYNC_MANAGERS) {
- EC_ERR("Invalid sync manager index %u!\n", sync_index);
+ EC_CONFIG_ERR(sc, "Invalid sync manager index %u!\n", sync_index);
return -ENOENT;
}
if (dir != EC_DIR_OUTPUT && dir != EC_DIR_INPUT) {
- EC_ERR("Invalid direction %u!\n", (u32) dir);
+ EC_CONFIG_ERR(sc, "Invalid direction %u!\n", (u32) dir);
return -EINVAL;
}
@@ -470,9 +458,8 @@
void ecrt_slave_config_watchdog(ec_slave_config_t *sc,
uint16_t divider, uint16_t intervals)
{
- if (sc->master->debug_level)
- EC_DBG("%s(sc = 0x%p, divider = %u, intervals = %u)\n",
- __func__, sc, divider, intervals);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, divider = %u, intervals = %u)\n",
+ __func__, sc, divider, intervals);
sc->watchdog_divider = divider;
sc->watchdog_intervals = intervals;
@@ -497,12 +484,11 @@
{
ec_pdo_t *pdo;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_pdo_assign_add(sc = 0x%p, sync_index = %u, "
- "pdo_index = 0x%04X)\n", sc, sync_index, pdo_index);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, sync_index = %u, "
+ "pdo_index = 0x%04X)\n", __func__, sc, sync_index, pdo_index);
if (sync_index >= EC_MAX_SYNC_MANAGERS) {
- EC_ERR("Invalid sync manager index %u!\n", sync_index);
+ EC_CONFIG_ERR(sc, "Invalid sync manager index %u!\n", sync_index);
return -EINVAL;
}
@@ -526,12 +512,11 @@
void ecrt_slave_config_pdo_assign_clear(ec_slave_config_t *sc,
uint8_t sync_index)
{
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_pdo_assign_clear(sc = 0x%p, "
- "sync_index = %u)\n", sc, sync_index);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, sync_index = %u)\n",
+ __func__, sc, sync_index);
if (sync_index >= EC_MAX_SYNC_MANAGERS) {
- EC_ERR("Invalid sync manager index %u!\n", sync_index);
+ EC_CONFIG_ERR(sc, "Invalid sync manager index %u!\n", sync_index);
return;
}
@@ -551,12 +536,11 @@
ec_pdo_entry_t *entry;
int retval = 0;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_pdo_mapping_add(sc = 0x%p, "
- "pdo_index = 0x%04X, entry_index = 0x%04X, "
- "entry_subindex = 0x%02X, entry_bit_length = %u)\n",
- sc, pdo_index, entry_index, entry_subindex,
- entry_bit_length);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, "
+ "pdo_index = 0x%04X, entry_index = 0x%04X, "
+ "entry_subindex = 0x%02X, entry_bit_length = %u)\n",
+ __func__, sc, pdo_index, entry_index, entry_subindex,
+ entry_bit_length);
for (sync_index = 0; sync_index < EC_MAX_SYNC_MANAGERS; sync_index++)
if ((pdo = ec_pdo_list_find_pdo(
@@ -571,8 +555,7 @@
if (IS_ERR(entry))
retval = PTR_ERR(entry);
} else {
- EC_ERR("PDO 0x%04X is not assigned in config %u:%u.\n",
- pdo_index, sc->alias, sc->position);
+ EC_CONFIG_ERR(sc, "PDO 0x%04X is not assigned.\n", pdo_index);
retval = -ENOENT;
}
@@ -587,9 +570,8 @@
uint8_t sync_index;
ec_pdo_t *pdo = NULL;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_pdo_mapping_clear(sc = 0x%p, "
- "pdo_index = 0x%04X)\n", sc, pdo_index);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, pdo_index = 0x%04X)\n",
+ __func__, sc, pdo_index);
for (sync_index = 0; sync_index < EC_MAX_SYNC_MANAGERS; sync_index++)
if ((pdo = ec_pdo_list_find_pdo(
@@ -601,8 +583,7 @@
ec_pdo_clear_entries(pdo);
up(&sc->master->master_sem);
} else {
- EC_WARN("PDO 0x%04X is not assigned in config %u:%u.\n",
- pdo_index, sc->alias, sc->position);
+ EC_CONFIG_WARN(sc, "PDO 0x%04X is not assigned.\n", pdo_index);
}
}
@@ -617,9 +598,8 @@
const ec_pdo_info_t *pdo_info;
const ec_pdo_entry_info_t *entry_info;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_pdos(sc = 0x%p, n_syncs = %u, "
- "syncs = 0x%p)\n", sc, n_syncs, syncs);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, n_syncs = %u, syncs = 0x%p)\n",
+ __func__, sc, n_syncs, syncs);
if (!syncs)
return 0;
@@ -631,7 +611,8 @@
break;
if (sync_info->index >= EC_MAX_SYNC_MANAGERS) {
- EC_ERR("Invalid sync manager index %u!\n", sync_info->index);
+ EC_CONFIG_ERR(sc, "Invalid sync manager index %u!\n",
+ sync_info->index);
return -ENOENT;
}
@@ -689,10 +670,9 @@
ec_pdo_entry_t *entry;
int sync_offset;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_reg_pdo_entry(sc = 0x%p, index = 0x%04X, "
- "subindex = 0x%02X, domain = 0x%p, bit_position = 0x%p)\n",
- sc, index, subindex, domain, bit_position);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, index = 0x%04X, "
+ "subindex = 0x%02X, domain = 0x%p, bit_position = 0x%p)\n",
+ __func__, sc, index, subindex, domain, bit_position);
for (sync_index = 0; sync_index < EC_MAX_SYNC_MANAGERS; sync_index++) {
sync_config = &sc->sync_configs[sync_index];
@@ -707,9 +687,8 @@
if (bit_position) {
*bit_position = bit_pos;
} else if (bit_pos) {
- EC_ERR("PDO entry 0x%04X:%02X does not byte-align "
- "in config %u:%u.\n", index, subindex,
- sc->alias, sc->position);
+ EC_CONFIG_ERR(sc, "PDO entry 0x%04X:%02X does"
+ " not byte-align.\n", index, subindex);
return -EFAULT;
}
@@ -724,8 +703,8 @@
}
}
- EC_ERR("PDO entry 0x%04X:%02X is not mapped in slave config %u:%u.\n",
- index, subindex, sc->alias, sc->position);
+ EC_CONFIG_ERR(sc, "PDO entry 0x%04X:%02X is not mapped.\n",
+ index, subindex);
return -ENOENT;
}
@@ -751,19 +730,18 @@
ec_sdo_request_t *req;
int ret;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_sdo(sc = 0x%p, index = 0x%04X, "
- "subindex = 0x%02X, data = 0x%p, size = %zu)\n", sc,
- index, subindex, data, size);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, index = 0x%04X, "
+ "subindex = 0x%02X, data = 0x%p, size = %zu)\n",
+ __func__, sc, index, subindex, data, size);
if (slave && !(slave->sii.mailbox_protocols & EC_MBOX_COE)) {
- EC_ERR("Slave %u does not support CoE!\n", slave->ring_position);
- return -EPROTONOSUPPORT; // protocol not supported
+ EC_CONFIG_WARN(sc, "Attached slave does not support CoE!\n");
}
if (!(req = (ec_sdo_request_t *)
kmalloc(sizeof(ec_sdo_request_t), GFP_KERNEL))) {
- EC_ERR("Failed to allocate memory for SDO configuration!\n");
+ EC_CONFIG_ERR(sc, "Failed to allocate memory for"
+ " SDO configuration!\n");
return -ENOMEM;
}
@@ -790,10 +768,9 @@
{
uint8_t data[1];
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_sdo8(sc = 0x%p, index = 0x%04X, "
- "subindex = 0x%02X, value = %u)\n", sc,
- index, subindex, (u32) value);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, index = 0x%04X, "
+ "subindex = 0x%02X, value = %u)\n",
+ __func__, sc, index, subindex, (u32) value);
EC_WRITE_U8(data, value);
return ecrt_slave_config_sdo(sc, index, subindex, data, 1);
@@ -806,10 +783,9 @@
{
uint8_t data[2];
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_sdo16(sc = 0x%p, index = 0x%04X, "
- "subindex = 0x%02X, value = %u)\n", sc,
- index, subindex, value);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, index = 0x%04X, "
+ "subindex = 0x%02X, value = %u)\n",
+ __func__, sc, index, subindex, value);
EC_WRITE_U16(data, value);
return ecrt_slave_config_sdo(sc, index, subindex, data, 2);
@@ -822,10 +798,9 @@
{
uint8_t data[4];
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_sdo32(sc = 0x%p, index = 0x%04X, "
- "subindex = 0x%02X, value = %u)\n", sc,
- index, subindex, value);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, index = 0x%04X, "
+ "subindex = 0x%02X, value = %u)\n",
+ __func__, sc, index, subindex, value);
EC_WRITE_U32(data, value);
return ecrt_slave_config_sdo(sc, index, subindex, data, 4);
@@ -840,18 +815,17 @@
ec_sdo_request_t *req;
int ret;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_complete_sdo(sc = 0x%p, index = 0x%04X, "
- "data = 0x%p, size = %zu)\n", sc, index, data, size);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, index = 0x%04X, "
+ "data = 0x%p, size = %zu)\n", __func__, sc, index, data, size);
if (slave && !(slave->sii.mailbox_protocols & EC_MBOX_COE)) {
- EC_ERR("Slave %u does not support CoE!\n", slave->ring_position);
- return -EPROTONOSUPPORT; // protocol not supported
+ EC_CONFIG_WARN(sc, "Attached slave does not support CoE!\n");
}
if (!(req = (ec_sdo_request_t *)
kmalloc(sizeof(ec_sdo_request_t), GFP_KERNEL))) {
- EC_ERR("Failed to allocate memory for SDO configuration!\n");
+ EC_CONFIG_ERR(sc, "Failed to allocate memory for"
+ " SDO configuration!\n");
return -ENOMEM;
}
@@ -883,14 +857,13 @@
ec_sdo_request_t *req;
int ret;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_create_sdo_request(sc = 0x%p, "
- "index = 0x%04X, subindex = 0x%02X, size = %zu)\n", sc,
- index, subindex, size);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, "
+ "index = 0x%04X, subindex = 0x%02X, size = %zu)\n",
+ __func__, sc, index, subindex, size);
if (!(req = (ec_sdo_request_t *)
kmalloc(sizeof(ec_sdo_request_t), GFP_KERNEL))) {
- EC_ERR("Failed to allocate SDO request memory!\n");
+ EC_CONFIG_ERR(sc, "Failed to allocate SDO request memory!\n");
return ERR_PTR(-ENOMEM);
}
@@ -936,13 +909,11 @@
ec_voe_handler_t *voe;
int ret;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_create_voe_handler(sc = 0x%p, size = %zu)\n",
- sc, size);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, size = %zu)\n", __func__, sc, size);
if (!(voe = (ec_voe_handler_t *)
kmalloc(sizeof(ec_voe_handler_t), GFP_KERNEL))) {
- EC_ERR("Failed to allocate VoE request memory!\n");
+ EC_CONFIG_ERR(sc, "Failed to allocate VoE request memory!\n");
return ERR_PTR(-ENOMEM);
}
@@ -995,18 +966,17 @@
ec_soe_request_t *req;
int ret;
- if (sc->master->debug_level)
- EC_DBG("ecrt_slave_config_idn(sc = 0x%p, idn = 0x%04X, "
- "data = 0x%p, size = %zu)\n", sc, idn, data, size);
+ EC_CONFIG_DBG(sc, 1, "%s(sc = 0x%p, idn = 0x%04X, "
+ "data = 0x%p, size = %zu)\n", __func__, sc, idn, data, size);
if (slave && !(slave->sii.mailbox_protocols & EC_MBOX_SOE)) {
- EC_ERR("Slave %u does not support SoE!\n", slave->ring_position);
- return -EPROTONOSUPPORT; // protocol not supported
+ EC_CONFIG_WARN(sc, "Attached slave does not support SoE!\n");
}
if (!(req = (ec_soe_request_t *)
kmalloc(sizeof(ec_soe_request_t), GFP_KERNEL))) {
- EC_ERR("Failed to allocate memory for IDN configuration!\n");
+ EC_CONFIG_ERR(sc, "Failed to allocate memory for"
+ " IDN configuration!\n");
return -ENOMEM;
}