]> git.friedersdorff.com Git - max/tmk_keyboard.git/commitdiff
ibmpc: Fix Timeout error
authortmk <hasu@tmk-kbd.com>
Tue, 12 May 2020 09:21:40 +0000 (18:21 +0900)
committertmk <hasu@tmk-kbd.com>
Tue, 12 May 2020 09:21:40 +0000 (18:21 +0900)
Timeout error may be recoverable but may not in some situations.
For safety it is handled as a real error to start keyboard
recognition again.

tmk_core/protocol/ibmpc.c

index 546c2ac6c2ac675ff6b692975edc61c872167ebd..cb612eb1c08490a53f5368b9b638054496e3cf84 100644 (file)
@@ -247,11 +247,14 @@ ISR(IBMPC_INT_VECT)
     } else {
         // should not take more than 1ms
         if (timer_start != t && (uint8_t)(timer_start + 1) != t) {
+            ibmpc_isr_debug = isr_state;
             ibmpc_error = IBMPC_ERR_TIMEOUT;
-            //goto ERROR;
-            // timeout error recovery by clearing isr_state?
-            timer_start = t;
-            isr_state = 0x8000;
+            goto ERROR;
+
+            // timeout error recovery - start receiving new data
+            // it seems to work somehow but may not under unstable situation
+            //timer_start = t;
+            //isr_state = 0x8000;
         }
     }