Skip to content

Commit

Permalink
Fix missed shutdown callbacks (qmk#22549)
Browse files Browse the repository at this point in the history
  • Loading branch information
drashna committed Nov 27, 2023
1 parent cc4a52e commit 094357c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 16 deletions.
7 changes: 0 additions & 7 deletions keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
};
// clang-format on
#endif // ENCODER_MAP_ENABLE

void shutdown_user(void) {
#ifdef RGB_MATRIX_ENABLE
rgb_matrix_sethsv_noeeprom(HSV_RED);
rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE
}
21 changes: 12 additions & 9 deletions keyboards/miiiw/blackio83/blackio83.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,34 +97,37 @@ void keyboard_post_init_kb(void) {
loop10hz_token = defer_exec(LOOP_10HZ_PERIOD, loop_10Hz, NULL);
}

__attribute__((weak)) void shutdown_user(void) {
bool shutdown_kb(bool jump_to_bootloader) {
if (shutdown_user(jump_to_bootloader)) {
#ifdef RGB_MATRIX_ENABLE
rgb_matrix_set_suspend_state(true);
#endif // RGB_MATRIX_ENABLE
wait_ms(10);
rgb_matrix_set_suspend_state(true);
#endif // RGB_MATRIX_ENABLE
wait_ms(10);
}
ws2812_poweroff();
return true;
}

#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_mask_kb(uint32_t state) {
if (!dip_switch_update_mask_user(state)) { return false; }

if(state & 0x01) {
led_suspend();
usbDisconnectBus(&USB_DRIVER);
usbStop(&USB_DRIVER);
shutdown_user();
shutdown_user(true);
setPinInputHigh(POWER_SWITCH_PIN);
palEnableLineEvent(POWER_SWITCH_PIN, PAL_EVENT_MODE_RISING_EDGE);
POWER_EnterSleep();
}

return true;
}
#endif

uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) {

if(last_input_activity_elapsed() > 1000) {
static uint32_t pmu_timer = 0;
if(timer_elapsed32(pmu_timer) > 3000) {
Expand All @@ -144,7 +147,7 @@ uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) {

extern matrix_row_t matrix[MATRIX_ROWS];
static uint32_t restore_tick = 0;
if(matrix[0] == 0x4000 && matrix[1] == 0 &&
if(matrix[0] == 0x4000 && matrix[1] == 0 &&
matrix[2] == 0 && matrix[3] == 0 && matrix[4] == 0 && matrix[5] == 0x201) {
if(restore_tick++ > 50) {
restore_tick = 0;
Expand Down

0 comments on commit 094357c

Please sign in to comment.