Skip to content

Commit 701c20a

Browse files
authored
Fixup housekeeping from being invoked twice per loop. (qmk#12933)
1 parent d665614 commit 701c20a

File tree

6 files changed

+18
-11
lines changed

6 files changed

+18
-11
lines changed

tmk_core/common/keyboard.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,15 @@ __attribute__((weak)) void housekeeping_task_kb(void) {}
280280
*/
281281
__attribute__((weak)) void housekeeping_task_user(void) {}
282282

283+
/** \brief housekeeping_task
284+
*
285+
* Invokes hooks for executing code after QMK is done after each loop iteration.
286+
*/
287+
void housekeeping_task(void) {
288+
housekeeping_task_kb();
289+
housekeeping_task_user();
290+
}
291+
283292
/** \brief keyboard_init
284293
*
285294
* FIXME: needs doc
@@ -374,9 +383,6 @@ void keyboard_task(void) {
374383
bool encoders_changed = false;
375384
#endif
376385

377-
housekeeping_task_kb();
378-
housekeeping_task_user();
379-
380386
uint8_t matrix_changed = matrix_scan();
381387
if (matrix_changed) last_matrix_activity_trigger();
382388

tmk_core/common/keyboard.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,9 @@ void keyboard_pre_init_user(void);
7070
void keyboard_post_init_kb(void);
7171
void keyboard_post_init_user(void);
7272

73-
void housekeeping_task_kb(void);
74-
void housekeeping_task_user(void);
73+
void housekeeping_task(void); // To be executed by the main loop in each backend TMK protocol
74+
void housekeeping_task_kb(void); // To be overridden by keyboard-level code
75+
void housekeeping_task_user(void); // To be overridden by user/keymap-level code
7576

7677
uint32_t last_input_activity_time(void); // Timestamp of the last matrix or encoder activity
7778
uint32_t last_input_activity_elapsed(void); // Number of milliseconds since the last matrix or encoder activity

tmk_core/protocol/arm_atsam/main_arm_atsam.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,9 @@ int main(void) {
305305
// dprintf("5v=%u 5vu=%u dlow=%u dhi=%u gca=%u gcd=%u\r\n", v_5v, v_5v_avg, v_5v_avg - V5_LOW, v_5v_avg - V5_HIGH, gcr_actual, gcr_desired);
306306
}
307307
#endif // CONSOLE_ENABLE
308+
309+
// Run housekeeping
310+
housekeeping_task();
308311
}
309312

310313
return 1;

tmk_core/protocol/chibios/main.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,6 @@ int main(void) {
257257
#endif
258258

259259
// Run housekeeping
260-
housekeeping_task_kb();
261-
housekeeping_task_user();
260+
housekeeping_task();
262261
}
263262
}

tmk_core/protocol/lufa/lufa.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,8 +1107,7 @@ int main(void) {
11071107
#endif
11081108

11091109
// Run housekeeping
1110-
housekeeping_task_kb();
1111-
housekeeping_task_user();
1110+
housekeeping_task();
11121111
}
11131112
}
11141113

tmk_core/protocol/vusb/main.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,7 @@ int main(void) {
173173
#endif
174174

175175
// Run housekeeping
176-
housekeeping_task_kb();
177-
housekeeping_task_user();
176+
housekeeping_task();
178177
}
179178
}
180179
}

0 commit comments

Comments
 (0)