116 |
116 |
117 domain->data_size += fmmu->data_size; |
117 domain->data_size += fmmu->data_size; |
118 list_add_tail(&fmmu->list, &domain->fmmu_configs); |
118 list_add_tail(&fmmu->list, &domain->fmmu_configs); |
119 |
119 |
120 if (domain->master->debug_level) |
120 if (domain->master->debug_level) |
121 EC_DBG("Domain %u: Added %u bytes, total %u.\n", domain->index, |
121 EC_DBG("Domain %u: Added %u bytes, total %zu.\n", domain->index, |
122 fmmu->data_size, domain->data_size); |
122 fmmu->data_size, domain->data_size); |
123 } |
123 } |
124 |
124 |
125 /*****************************************************************************/ |
125 /*****************************************************************************/ |
126 |
126 |
211 domain->logical_base_address = base_address; |
211 domain->logical_base_address = base_address; |
212 |
212 |
213 if (domain->data_size && domain->data_origin == EC_ORIG_INTERNAL) { |
213 if (domain->data_size && domain->data_origin == EC_ORIG_INTERNAL) { |
214 if (!(domain->data = |
214 if (!(domain->data = |
215 (uint8_t *) kmalloc(domain->data_size, GFP_KERNEL))) { |
215 (uint8_t *) kmalloc(domain->data_size, GFP_KERNEL))) { |
216 EC_ERR("Failed to allocate %u bytes internal memory for" |
216 EC_ERR("Failed to allocate %zu bytes internal memory for" |
217 " domain %u!\n", domain->data_size, domain->index); |
217 " domain %u!\n", domain->data_size, domain->index); |
218 return -ENOMEM; |
218 return -ENOMEM; |
219 } |
219 } |
220 } |
220 } |
221 |
221 |
265 if (ret < 0) |
265 if (ret < 0) |
266 return ret; |
266 return ret; |
267 datagram_count++; |
267 datagram_count++; |
268 } |
268 } |
269 |
269 |
270 EC_INFO("Domain%u: Logical address 0x%08x, %u byte, " |
270 EC_INFO("Domain%u: Logical address 0x%08x, %zu byte, " |
271 "expected working counter %u.\n", domain->index, |
271 "expected working counter %u.\n", domain->index, |
272 domain->logical_base_address, domain->data_size, |
272 domain->logical_base_address, domain->data_size, |
273 domain->expected_working_counter); |
273 domain->expected_working_counter); |
274 list_for_each_entry(datagram, &domain->datagrams, list) { |
274 list_for_each_entry(datagram, &domain->datagrams, list) { |
275 EC_INFO(" Datagram %s: Logical offset 0x%08x, %u byte, type %s.\n", |
275 EC_INFO(" Datagram %s: Logical offset 0x%08x, %zu byte, type %s.\n", |
276 datagram->name, EC_READ_U32(datagram->address), |
276 datagram->name, EC_READ_U32(datagram->address), |
277 datagram->data_size, ec_datagram_type_string(datagram)); |
277 datagram->data_size, ec_datagram_type_string(datagram)); |
278 } |
278 } |
279 |
279 |
280 return 0; |
280 return 0; |
326 const ec_pdo_entry_reg_t *reg; |
326 const ec_pdo_entry_reg_t *reg; |
327 ec_slave_config_t *sc; |
327 ec_slave_config_t *sc; |
328 int ret; |
328 int ret; |
329 |
329 |
330 if (domain->master->debug_level) |
330 if (domain->master->debug_level) |
331 EC_DBG("ecrt_domain_reg_pdo_entry_list(domain = 0x%x, regs = 0x%x)\n", |
331 EC_DBG("ecrt_domain_reg_pdo_entry_list(domain = 0x%p, regs = 0x%p)\n", |
332 (u32) domain, (u32) regs); |
332 domain, regs); |
333 |
333 |
334 for (reg = regs; reg->index; reg++) { |
334 for (reg = regs; reg->index; reg++) { |
335 sc = ecrt_master_slave_config_err(domain->master, reg->alias, |
335 sc = ecrt_master_slave_config_err(domain->master, reg->alias, |
336 reg->position, reg->vendor_id, reg->product_code); |
336 reg->position, reg->vendor_id, reg->product_code); |
337 if (IS_ERR(sc)) |
337 if (IS_ERR(sc)) |
358 /*****************************************************************************/ |
358 /*****************************************************************************/ |
359 |
359 |
360 void ecrt_domain_external_memory(ec_domain_t *domain, uint8_t *mem) |
360 void ecrt_domain_external_memory(ec_domain_t *domain, uint8_t *mem) |
361 { |
361 { |
362 if (domain->master->debug_level) |
362 if (domain->master->debug_level) |
363 EC_DBG("ecrt_domain_external_memory(domain = 0x%x, mem = 0x%x)\n", |
363 EC_DBG("ecrt_domain_external_memory(domain = 0x%p, mem = 0x%p)\n", |
364 (u32) domain, (u32) mem); |
364 domain, mem); |
365 |
365 |
366 down(&domain->master->master_sem); |
366 down(&domain->master->master_sem); |
367 |
367 |
368 ec_domain_clear_data(domain); |
368 ec_domain_clear_data(domain); |
369 |
369 |