master/fsm_master.c
changeset 754 0b47b49c5976
parent 743 5ee2c5ce9cca
child 758 8fa6f825eb7d
equal deleted inserted replaced
753:7ba5f9cd8f7e 754:0b47b49c5976
   344         if (master->debug_level)
   344         if (master->debug_level)
   345             EC_DBG("Writing EEPROM data to slave %i...\n",
   345             EC_DBG("Writing EEPROM data to slave %i...\n",
   346                     slave->ring_position);
   346                     slave->ring_position);
   347         fsm->eeprom_request = request;
   347         fsm->eeprom_request = request;
   348         fsm->eeprom_index = 0;
   348         fsm->eeprom_index = 0;
   349         ec_fsm_sii_write(&fsm->fsm_sii, request->slave, request->offset,
   349         ec_fsm_sii_write(&fsm->fsm_sii, request->slave, request->word_offset,
   350                 request->words, EC_FSM_SII_NODE);
   350                 request->data, EC_FSM_SII_NODE);
   351         fsm->state = ec_fsm_master_state_write_eeprom;
   351         fsm->state = ec_fsm_master_state_write_eeprom;
   352         fsm->state(fsm); // execute immediately
   352         fsm->state(fsm); // execute immediately
   353         return 1;
   353         return 1;
   354     }
   354     }
   355 
   355 
   969         fsm->state = ec_fsm_master_state_error;
   969         fsm->state = ec_fsm_master_state_error;
   970         return;
   970         return;
   971     }
   971     }
   972 
   972 
   973     fsm->eeprom_index++;
   973     fsm->eeprom_index++;
   974     if (fsm->eeprom_index < request->size) {
   974     if (fsm->eeprom_index < request->word_size) {
   975         ec_fsm_sii_write(&fsm->fsm_sii, slave,
   975         ec_fsm_sii_write(&fsm->fsm_sii, slave,
   976                 request->offset + fsm->eeprom_index,
   976                 request->word_offset + fsm->eeprom_index,
   977                 request->words + fsm->eeprom_index,
   977                 request->data + fsm->eeprom_index * 2,
   978                 EC_FSM_SII_NODE);
   978                 EC_FSM_SII_NODE);
   979         ec_fsm_sii_exec(&fsm->fsm_sii); // execute immediately
   979         ec_fsm_sii_exec(&fsm->fsm_sii); // execute immediately
   980         return;
   980         return;
   981     }
   981     }
   982 
   982 
   983     // finished writing EEPROM
   983     // finished writing EEPROM
   984     if (master->debug_level)
   984     if (master->debug_level)
   985         EC_DBG("Finished writing %u words of EEPROM data to slave %u.\n",
   985         EC_DBG("Finished writing %u words of EEPROM data to slave %u.\n",
   986                 request->size, slave->ring_position);
   986                 request->word_size, slave->ring_position);
   987     request->state = EC_REQUEST_COMPLETE;
   987     request->state = EC_REQUEST_COMPLETE;
   988     wake_up(&master->eeprom_queue);
   988     wake_up(&master->eeprom_queue);
   989 
   989 
   990     // TODO: Evaluate new EEPROM contents!
   990     // TODO: Evaluate new EEPROM contents!
   991 
   991