| | |
| | | // update state |
| | | switch (trng_handle.state) |
| | | { |
| | | case TRNG_STATE_READY: |
| | | trng_handle.state = TRNG_STATE_BUSY; |
| | | break; |
| | | case TRNG_STATE_BUSY: |
| | | int_unlock(lock); |
| | | return DRV_BUSY; |
| | | case TRNG_STATE_RESET: |
| | | case TRNG_STATE_TIMEOUT: |
| | | case TRNG_STATE_ERROR: |
| | | int_unlock(lock); |
| | | return DRV_ERROR; |
| | | case TRNG_STATE_READY: |
| | | trng_handle.state = TRNG_STATE_BUSY; |
| | | break; |
| | | case TRNG_STATE_BUSY: |
| | | int_unlock(lock); |
| | | return DRV_BUSY; |
| | | case TRNG_STATE_RESET: |
| | | case TRNG_STATE_TIMEOUT: |
| | | case TRNG_STATE_ERROR: |
| | | int_unlock(lock); |
| | | return DRV_ERROR; |
| | | } |
| | | |
| | | trng_handle.data = data; |