From 1cc36c89ec1b055bddc8d36e55d15b73685a4364 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 2 Jan 2018 16:24:53 -0700 Subject: [PATCH] Use EC functions to set KB color --- ec.c | 24 ++++++++++++------------ kb.c | 42 +++++++++++------------------------------- 2 files changed, 23 insertions(+), 43 deletions(-) diff --git a/ec.c b/ec.c index 73618a9..bbb2446 100644 --- a/ec.c +++ b/ec.c @@ -26,24 +26,28 @@ #define FBF2 0xFC #define FBF3 0xFD -enum KbRegion { - KB_LEFT, - KB_CENTER, - KB_RIGHT, +enum EcKbRegion { + EC_KB_LEFT, + EC_KB_CENTER, + EC_KB_RIGHT, + EC_KB_EXTRA, }; -static void ec_kb_color_set(enum KbRegion region, u32 color) { +static void ec_kb_color_set(enum EcKbRegion region, u32 color) { u8 region_code; switch(region) { - case KB_LEFT: + case EC_KB_LEFT: region_code = 0x3; break; - case KB_CENTER: + case EC_KB_CENTER: region_code = 0x4; break; - case KB_RIGHT: + case EC_KB_RIGHT: region_code = 0x5; break; + case EC_KB_EXTRA: + region_code = 0x7; + break; default: return; } @@ -56,10 +60,6 @@ static void ec_kb_color_set(enum KbRegion region, u32 color) { } static int ec_init(void) { - ec_kb_color_set(KB_LEFT, 0xFF0000); - ec_kb_color_set(KB_CENTER, 0xFF00); - ec_kb_color_set(KB_RIGHT, 0xFF); - return 0; } diff --git a/kb.c b/kb.c index 48cd973..e36c056 100644 --- a/kb.c +++ b/kb.c @@ -267,39 +267,19 @@ static void kb_full_color__set_color(unsigned left, unsigned center, kb_colors[right].name, (unsigned int)kb_colors[right].value.rgb, kb_colors[extra].name, (unsigned int)kb_colors[extra].value.rgb ); - - cmd = 0xF0000000; - cmd |= kb_colors[left].value.b << 16; - cmd |= kb_colors[left].value.r << 8; - cmd |= kb_colors[left].value.g << 0; - - if (!s76_wmbb(SET_KB_LED, cmd, NULL)) - kb_backlight.color.left = left; - - cmd = 0xF1000000; - cmd |= kb_colors[center].value.b << 16; - cmd |= kb_colors[center].value.r << 8; - cmd |= kb_colors[center].value.g << 0; - - if (!s76_wmbb(SET_KB_LED, cmd, NULL)) - kb_backlight.color.center = center; - - cmd = 0xF2000000; - cmd |= kb_colors[right].value.b << 16; - cmd |= kb_colors[right].value.r << 8; - cmd |= kb_colors[right].value.g << 0; - - if (!s76_wmbb(SET_KB_LED, cmd, NULL)) - kb_backlight.color.right = right; + + ec_kb_color_set(EC_KB_LEFT, kb_colors[left].value.rgb); + kb_backlight.color.left = left; + + ec_kb_color_set(EC_KB_CENTER, kb_colors[center].value.rgb); + kb_backlight.color.center = center; + + ec_kb_color_set(EC_KB_RIGHT, kb_colors[right].value.rgb); + kb_backlight.color.right = right; if (kb_backlight.extra == KB_HAS_EXTRA_TRUE) { - cmd = 0xF3000000; - cmd |= kb_colors[extra].value.b << 16; - cmd |= kb_colors[extra].value.r << 8; - cmd |= kb_colors[extra].value.g << 0; - - if(!s76_wmbb(SET_KB_LED, cmd, NULL)) - kb_backlight.color.extra = extra; + ec_kb_color_set(EC_KB_EXTRA, kb_colors[extra].value.rgb); + kb_backlight.color.extra = extra; } kb_backlight.mode = KB_MODE_CUSTOM;