equal
deleted
inserted
replaced
837 // interrupted by signal |
837 // interrupted by signal |
838 down(&master->eeprom_sem); |
838 down(&master->eeprom_sem); |
839 if (request.state == EC_EEPROM_REQ_QUEUED) { |
839 if (request.state == EC_EEPROM_REQ_QUEUED) { |
840 list_del(&request.list); |
840 list_del(&request.list); |
841 up(&master->eeprom_sem); |
841 up(&master->eeprom_sem); |
842 return -EPERM; |
842 return -EINTR; |
843 } |
843 } |
844 // request processing: interrupt not possible. |
844 // request already processing: interrupt not possible. |
845 up(&master->eeprom_sem); |
845 up(&master->eeprom_sem); |
846 } |
846 } |
847 |
847 |
|
848 // wait until master FSM has finished processing |
848 wait_event(master->eeprom_queue, request.state != EC_EEPROM_REQ_BUSY); |
849 wait_event(master->eeprom_queue, request.state != EC_EEPROM_REQ_BUSY); |
849 |
850 |
850 return request.state == EC_EEPROM_REQ_COMPLETED ? size : -EIO; |
851 return request.state == EC_EEPROM_REQ_COMPLETED ? size : -EIO; |
851 } |
852 } |
852 |
853 |