# HG changeset patch # User Jacob Alexander # Date 1456889721 28800 # Node ID cbcdb7a16b7c5d81e08c813ce2670709d7dd57e3 # Parent ad693d70c292d19331e089a70d227921e59d42b6 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 diff -r ad693d70c292 -r cbcdb7a16b7c Scan/ISSILed/led_scan.c --- 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; } diff -r ad693d70c292 -r cbcdb7a16b7c Scan/WhiteFox/defaultMap.kll --- 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 */ ";