equal
deleted
inserted
replaced
406 off_t next_offset = 2UL + fsm->sii_offset + cat_size; |
406 off_t next_offset = 2UL + fsm->sii_offset + cat_size; |
407 if (next_offset >= EC_MAX_EEPROM_SIZE) { |
407 if (next_offset >= EC_MAX_EEPROM_SIZE) { |
408 EC_WARN("EEPROM size of slave %i exceeds" |
408 EC_WARN("EEPROM size of slave %i exceeds" |
409 " %u words (0xffff limiter missing?).\n", |
409 " %u words (0xffff limiter missing?).\n", |
410 slave->ring_position, EC_MAX_EEPROM_SIZE); |
410 slave->ring_position, EC_MAX_EEPROM_SIZE); |
|
411 // cut off category data... |
411 slave->eeprom_size = EC_FIRST_EEPROM_CATEGORY_OFFSET * 2; |
412 slave->eeprom_size = EC_FIRST_EEPROM_CATEGORY_OFFSET * 2; |
412 goto alloc_eeprom; |
413 goto alloc_eeprom; |
413 } |
414 } |
414 fsm->sii_offset = next_offset; |
415 fsm->sii_offset = next_offset; |
415 ec_fsm_sii_read(&fsm->fsm_sii, slave, fsm->sii_offset, |
416 ec_fsm_sii_read(&fsm->fsm_sii, slave, fsm->sii_offset, |
506 EC_READ_U16(slave->eeprom_data + 2 * 0x001A); |
507 EC_READ_U16(slave->eeprom_data + 2 * 0x001A); |
507 slave->sii_tx_mailbox_size = |
508 slave->sii_tx_mailbox_size = |
508 EC_READ_U16(slave->eeprom_data + 2 * 0x001B); |
509 EC_READ_U16(slave->eeprom_data + 2 * 0x001B); |
509 slave->sii_mailbox_protocols = |
510 slave->sii_mailbox_protocols = |
510 EC_READ_U16(slave->eeprom_data + 2 * 0x001C); |
511 EC_READ_U16(slave->eeprom_data + 2 * 0x001C); |
|
512 |
|
513 if (eeprom_word_size == EC_FIRST_EEPROM_CATEGORY_OFFSET) { |
|
514 // eeprom does not contain category data |
|
515 fsm->state = ec_fsm_slave_state_end; |
|
516 return; |
|
517 } |
511 |
518 |
512 if (eeprom_word_size < EC_FIRST_EEPROM_CATEGORY_OFFSET + 1) { |
519 if (eeprom_word_size < EC_FIRST_EEPROM_CATEGORY_OFFSET + 1) { |
513 EC_ERR("Unexpected end of EEPROM data in slave %u:" |
520 EC_ERR("Unexpected end of EEPROM data in slave %u:" |
514 " First category header missing.\n", |
521 " First category header missing.\n", |
515 slave->ring_position); |
522 slave->ring_position); |