Mercurial > louis > kiibohd-controller
changeset 422:cbcdb7a16b7c
Fixing potential WF LED issue
- Added fix for USB Current Change
* If called during interrupt, could hang the I2C bus
* Delaying I2C writes till scan loop
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Tue, 01 Mar 2016 19:35:21 -0800 |
parents | ad693d70c292 |
children | 64d1057661f3 |
files | Scan/ISSILed/led_scan.c Scan/WhiteFox/defaultMap.kll |
diffstat | 2 files changed, 21 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/Scan/ISSILed/led_scan.c Tue Feb 23 14:35:08 2016 -0800 +++ b/Scan/ISSILed/led_scan.c Tue Mar 01 19:35:21 2016 -0800 @@ -639,12 +639,26 @@ // LED State processing loop +unsigned int LED_currentEvent = 0; inline uint8_t LED_scan() { + // Check for current change event + if ( LED_currentEvent ) + { + // TODO dim LEDs in low power mode instead of shutting off + if ( LED_currentEvent < 150 ) + { + // Enable Software shutdown of ISSI chip + LED_writeReg( 0x0A, 0x00, 0x0B ); + } + else + { + // Disable Software shutdown of ISSI chip + LED_writeReg( 0x0A, 0x01, 0x0B ); + } - // I2C Busy - // S & I2C_S_BUSY - //I2C_S_BUSY + LED_currentEvent = 0; + } return 0; } @@ -654,17 +668,8 @@ // current - mA void LED_currentChange( unsigned int current ) { - // TODO dim LEDs in low power mode instead of shutting off - if ( current < 150 ) - { - // Enabled Software shutdown of ISSI chip - LED_writeReg( 0x0A, 0x00, 0x0B ); - } - else - { - // Disable Software shutdown of ISSI chip - LED_writeReg( 0x0A, 0x01, 0x0B ); - } + // Delay action till next LED scan loop (as this callback sometimes occurs during interrupt requests) + LED_currentEvent = current; }
--- a/Scan/WhiteFox/defaultMap.kll Tue Feb 23 14:35:08 2016 -0800 +++ b/Scan/WhiteFox/defaultMap.kll Tue Mar 01 19:35:21 2016 -0800 @@ -95,7 +95,7 @@ 0xFF, 0x00, /* C6-1 -> C6-16 */ 0xFF, 0x00, /* C7-1 -> C7-16 */ 0xFF, 0x00, /* C8-1 -> C8-16 */ - 0xFE, 0x00, /* C9-1 -> C9-16 */ + 0xFF, 0x00, /* C9-1 -> C9-16 */ "; # LED Brightness Override @@ -124,6 +124,6 @@ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */ -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */ ";