diff options
Diffstat (limited to 'os/hal/include')
| -rw-r--r-- | os/hal/include/icu.h | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/os/hal/include/icu.h b/os/hal/include/icu.h index ef42470cb..7db895fbf 100644 --- a/os/hal/include/icu.h +++ b/os/hal/include/icu.h @@ -140,8 +140,10 @@ typedef void (*icucallback_t)(ICUDriver *icup);   * @notapi
   */
  #define _icu_isr_invoke_width_cb(icup) {                                    \
 -  (icup)->state = ICU_IDLE;                                                 \
 -  (icup)->config->width_cb(icup);                                           \
 +  if ((icup)->state != ICU_WAITING) {                                       \
 +    (icup)->state = ICU_IDLE;                                               \
 +    (icup)->config->width_cb(icup);                                         \
 +  }                                                                         \
  }
  /**
  | 
