[coreboot-gerrit] Patch set updated for coreboot: c3bde82 ec/lenovo/h8: Implement sticky Fn option.

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Sun Jan 12 15:41:35 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 c3bde82adcc48222547e2222e2c04cdcf5965732
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 e44a278..c67b3b3 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