Renamed ec_eeprom_request_state_t enum to ec_request_state_t and made it
global.
This commit is contained in:
parent
bf27da528d
commit
8c9fec5ce0
|
|
@ -285,14 +285,14 @@ int ec_fsm_master_action_process_eeprom(
|
|||
request = list_entry(master->eeprom_requests.next,
|
||||
ec_eeprom_write_request_t, list);
|
||||
list_del_init(&request->list); // dequeue
|
||||
request->state = EC_EEPROM_REQ_BUSY;
|
||||
request->state = EC_REQ_BUSY;
|
||||
up(&master->eeprom_sem);
|
||||
|
||||
slave = request->slave;
|
||||
if (slave->online_state == EC_SLAVE_OFFLINE || slave->error_flag) {
|
||||
EC_ERR("Discarding EEPROM data, slave %i not ready.\n",
|
||||
slave->ring_position);
|
||||
request->state = EC_EEPROM_REQ_ERROR;
|
||||
request->state = EC_REQ_ERROR;
|
||||
wake_up(&master->eeprom_queue);
|
||||
continue;
|
||||
}
|
||||
|
|
@ -751,7 +751,7 @@ void ec_fsm_master_state_write_eeprom(
|
|||
slave->error_flag = 1;
|
||||
EC_ERR("Failed to write EEPROM data to slave %i.\n",
|
||||
slave->ring_position);
|
||||
request->state = EC_EEPROM_REQ_ERROR;
|
||||
request->state = EC_REQ_ERROR;
|
||||
wake_up(&master->eeprom_queue);
|
||||
fsm->state = ec_fsm_master_state_error;
|
||||
return;
|
||||
|
|
@ -771,7 +771,7 @@ void ec_fsm_master_state_write_eeprom(
|
|||
if (master->debug_level)
|
||||
EC_DBG("Finished writing EEPROM data to slave %i.\n",
|
||||
slave->ring_position);
|
||||
request->state = EC_EEPROM_REQ_COMPLETED;
|
||||
request->state = EC_REQ_COMPLETED;
|
||||
wake_up(&master->eeprom_queue);
|
||||
|
||||
// TODO: Evaluate new EEPROM contents!
|
||||
|
|
|
|||
|
|
@ -51,21 +51,6 @@
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
* EEPROM request state.
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EC_EEPROM_REQ_QUEUED,
|
||||
EC_EEPROM_REQ_BUSY,
|
||||
EC_EEPROM_REQ_COMPLETED,
|
||||
EC_EEPROM_REQ_ERROR
|
||||
}
|
||||
ec_eeprom_request_state_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
* EEPROM write request.
|
||||
*/
|
||||
|
|
@ -77,7 +62,7 @@ typedef struct
|
|||
off_t offset;
|
||||
size_t size;
|
||||
const uint16_t *words;
|
||||
ec_eeprom_request_state_t state;
|
||||
ec_request_state_t state;
|
||||
}
|
||||
ec_eeprom_write_request_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -177,4 +177,19 @@ ec_code_msg_t;
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
* Master request state.
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EC_REQ_QUEUED,
|
||||
EC_REQ_BUSY,
|
||||
EC_REQ_COMPLETED,
|
||||
EC_REQ_ERROR
|
||||
}
|
||||
ec_request_state_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -858,7 +858,7 @@ int ec_slave_schedule_eeprom_writing(ec_eeprom_write_request_t *request)
|
|||
{
|
||||
ec_master_t *master = request->slave->master;
|
||||
|
||||
request->state = EC_EEPROM_REQ_QUEUED;
|
||||
request->state = EC_REQ_QUEUED;
|
||||
|
||||
// schedule EEPROM write request.
|
||||
down(&master->eeprom_sem);
|
||||
|
|
@ -867,10 +867,10 @@ int ec_slave_schedule_eeprom_writing(ec_eeprom_write_request_t *request)
|
|||
|
||||
// wait for processing through FSM
|
||||
if (wait_event_interruptible(master->eeprom_queue,
|
||||
request->state != EC_EEPROM_REQ_QUEUED)) {
|
||||
request->state != EC_REQ_QUEUED)) {
|
||||
// interrupted by signal
|
||||
down(&master->eeprom_sem);
|
||||
if (request->state == EC_EEPROM_REQ_QUEUED) {
|
||||
if (request->state == EC_REQ_QUEUED) {
|
||||
list_del(&request->list);
|
||||
up(&master->eeprom_sem);
|
||||
return -EINTR;
|
||||
|
|
@ -880,9 +880,9 @@ int ec_slave_schedule_eeprom_writing(ec_eeprom_write_request_t *request)
|
|||
}
|
||||
|
||||
// wait until master FSM has finished processing
|
||||
wait_event(master->eeprom_queue, request->state != EC_EEPROM_REQ_BUSY);
|
||||
wait_event(master->eeprom_queue, request->state != EC_REQ_BUSY);
|
||||
|
||||
return request->state == EC_EEPROM_REQ_COMPLETED ? 0 : -EIO;
|
||||
return request->state == EC_REQ_COMPLETED ? 0 : -EIO;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
Loading…
Reference in New Issue