[coreboot-gerrit] Patch set updated for coreboot: 4ffcf3d ec/lenovo/h8: Implement sticky Fn option.
Vladimir Serbinenko (phcoder@gmail.com)
gerrit at coreboot.org
Sat Jan 11 21:01:55 CET 2014
Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4661
-gerrit
commit 4ffcf3df2b0cf74d401a74248307c959b16b605a
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date: Sat Jan 11 10:55:31 2014 +0100
ec/lenovo/h8: Implement sticky Fn option.
Useful for accessibility.
Sticky modifier (sticky Fn) is a behaviour of modifier key when
you don't have to hold it pressed to achieve the result. E.g.
with normal Fn brightness up is:
<Press Fn> <Press Home> <Despress Home> <Depress Fn>
With sticky Fn you can do:
<Press Fn> <Depress Fn> <Press Home> <Despress Home>
Change-Id: I4da5adcea02428d936023891de08684cae77c44e
Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
src/ec/lenovo/h8/h8.c | 12 ++++++++++++
src/mainboard/lenovo/t60/cmos.layout | 1 +
src/mainboard/lenovo/x201/cmos.default | 1 +
src/mainboard/lenovo/x201/cmos.layout | 1 +
src/mainboard/lenovo/x60/cmos.default | 1 +
src/mainboard/lenovo/x60/cmos.layout | 1 +
6 files changed, 17 insertions(+)
diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index 409fb05..0218ed4 100644
--- a/src/ec/lenovo/h8/h8.c
+++ b/src/ec/lenovo/h8/h8.c
@@ -70,6 +70,14 @@ static void h8_fn_ctrl_swap(int on)
ec_clr_bit(0xce, 4);
}
+static void h8_sticky_fn(int on)
+{
+ if (on)
+ ec_set_bit(0x0, 3);
+ else
+ ec_clr_bit(0x0, 3);
+}
+
static void h8_log_ec_version(void)
{
char ecfw[17];
@@ -202,6 +210,10 @@ static void h8_enable(device_t dev)
val = 0;
h8_fn_ctrl_swap(val);
+ if (get_option(&val, "sticky_fn") != CB_SUCCESS)
+ val = 0;
+ h8_sticky_fn(val);
+
if (get_option(&val, "first_battery") != CB_SUCCESS)
val = 1;
diff --git a/src/mainboard/lenovo/t60/cmos.layout b/src/mainboard/lenovo/t60/cmos.layout
index 10f75c0..abd98d2 100644
--- a/src/mainboard/lenovo/t60/cmos.layout
+++ b/src/mainboard/lenovo/t60/cmos.layout
@@ -113,6 +113,7 @@ entries
1064 8 h 0 volume
1072 1 e 9 first_battery
1074 1 e 1 fn_ctrl_swap
+1075 1 e 1 sticky_fn
# -----------------------------------------------------------------
enumerations
diff --git a/src/mainboard/lenovo/x201/cmos.default b/src/mainboard/lenovo/x201/cmos.default
index ae57b97..772b024 100644
--- a/src/mainboard/lenovo/x201/cmos.default
+++ b/src/mainboard/lenovo/x201/cmos.default
@@ -10,3 +10,4 @@ bluetooth=Enable
wwan=Enable
touchpad=Enable
fn_ctrl_swap=Disable
+sticky_fn=Disable
diff --git a/src/mainboard/lenovo/x201/cmos.layout b/src/mainboard/lenovo/x201/cmos.layout
index f91fb51..ba6f87d 100644
--- a/src/mainboard/lenovo/x201/cmos.layout
+++ b/src/mainboard/lenovo/x201/cmos.layout
@@ -91,6 +91,7 @@ entries
413 1 e 1 wwan
414 1 e 1 touchpad
417 1 e 1 fn_ctrl_swap
+418 1 e 1 sticky_fn
#419 565 r 0 unused
# coreboot config options: check sums
diff --git a/src/mainboard/lenovo/x60/cmos.default b/src/mainboard/lenovo/x60/cmos.default
index a2620a9..eed5fa8 100644
--- a/src/mainboard/lenovo/x60/cmos.default
+++ b/src/mainboard/lenovo/x60/cmos.default
@@ -13,3 +13,4 @@ tft_brightness=0xff
first_battery=Primary
bluetooth=Enable
fn_ctrl_swap=Disable
+sticky_fn=Disable
diff --git a/src/mainboard/lenovo/x60/cmos.layout b/src/mainboard/lenovo/x60/cmos.layout
index 9482072..738863e 100644
--- a/src/mainboard/lenovo/x60/cmos.layout
+++ b/src/mainboard/lenovo/x60/cmos.layout
@@ -113,6 +113,7 @@ entries
1081 1 e 1 bluetooth
1082 1 e 1 wwan
1085 1 e 1 fn_ctrl_swap
+1086 1 e 1 sticky_fn
# -----------------------------------------------------------------
enumerations
More information about the coreboot-gerrit
mailing list