Skip to content

Commit e7e1030

Browse files
committed
core: Fix sleep_led
1 parent 0866323 commit e7e1030

File tree

4 files changed

+29
-20
lines changed

4 files changed

+29
-20
lines changed

common/avr/sleep_led.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,17 @@ void sleep_led_disable(void)
4545
TIMSK1 &= ~_BV(OCIE1A);
4646
}
4747

48-
void sleep_led_toggle(void)
48+
49+
__attribute__ ((weak))
50+
void sleep_led_on(void)
4951
{
50-
/* Disable Compare Match Interrupt */
51-
TIMSK1 ^= _BV(OCIE1A);
52+
led_set(1<<USB_LED_CAPS_LOCK);
53+
}
54+
55+
__attribute__ ((weak))
56+
void sleep_led_off(void)
57+
{
58+
led_set(0);
5259
}
5360

5461

@@ -86,10 +93,10 @@ ISR(TIMER1_COMPA_vect)
8693

8794
// LED on
8895
if (timer.pwm.count == 0) {
89-
led_set(1<<USB_LED_CAPS_LOCK);
96+
sleep_led_on();
9097
}
9198
// LED off
9299
if (timer.pwm.count == pgm_read_byte(&breathing_table[timer.pwm.index])) {
93-
led_set(0);
100+
sleep_led_off();
94101
}
95102
}

common/avr/suspend.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,11 @@ void suspend_idle(uint8_t time)
9696

9797
void suspend_power_down(void)
9898
{
99-
#ifdef SUSPEND_MODE_STANDBY
99+
#ifdef NO_SUSPEND_POWER_DOWN
100+
;
101+
#elif defined(SUSPEND_MODE_NOPOWERSAVE)
102+
;
103+
#elif defined(SUSPEND_MODE_STANDBY)
100104
standby();
101105
#elif defined(SUSPEND_MODE_IDLE)
102106
idle();

common/command.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,22 @@ static bool command_common(uint8_t code)
182182
{
183183
#ifdef KEYBOARD_LOCK_ENABLE
184184
static host_driver_t *host_driver = 0;
185+
#endif
186+
#ifdef SLEEP_LED_ENABLE
187+
static bool sleep_led_test = false;
185188
#endif
186189
switch (code) {
187190
#ifdef SLEEP_LED_ENABLE
188191
case KC_Z:
189192
// test breathing sleep LED
190193
print("Sleep LED test\n");
191-
sleep_led_toggle();
192-
led_set(host_keyboard_leds());
194+
if (sleep_led_test) {
195+
sleep_led_disable();
196+
led_set(host_keyboard_leds());
197+
} else {
198+
sleep_led_enable();
199+
}
200+
sleep_led_test = !sleep_led_test;
193201
break;
194202
#endif
195203
#ifdef BOOTMAGIC_ENABLE

common/sleep_led.h

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,10 @@
22
#define SLEEP_LED_H
33

44

5-
#ifdef SLEEP_LED_ENABLE
6-
75
void sleep_led_init(void);
86
void sleep_led_enable(void);
97
void sleep_led_disable(void);
10-
void sleep_led_toggle(void);
11-
12-
#else
13-
14-
#define sleep_led_init()
15-
#define sleep_led_enable()
16-
#define sleep_led_disable()
17-
#define sleep_led_toggle()
18-
19-
#endif
8+
void sleep_led_on(void);
9+
void sleep_led_off(void);
2010

2111
#endif

0 commit comments

Comments
 (0)