[PATCH 2/3] gta02: load NAND kernel upon AUX press

Marc Andre Tanner openmoko at brain-dump.org
Wed Dec 2 01:52:53 CET 2009


From: Marc Andre Tanner <mat at brain-dump.org>

Signed-off-by: Marc Andre Tanner <mat at brain-dump.org>
---
 src/cpu/s3c2442/gta02.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/cpu/s3c2442/gta02.c b/src/cpu/s3c2442/gta02.c
index 13be2ac..32a63bf 100644
--- a/src/cpu/s3c2442/gta02.c
+++ b/src/cpu/s3c2442/gta02.c
@@ -493,18 +493,24 @@ static u8 get_ui_keys_gta02(void)
 	u8 ret = 0;
 	static u8 old_keys = 0; /* previous state for debounce */
 	static u8 older_keys = 0; /* previous debounced output for edge detect */
+	static u8 kernel_ui = 0;
 
 	/* GPF6 is AUX on GTA02, map to UI_ACTION_SKIPKERNEL, down = 1 */
 	keys = !!(rGPFDAT & (1 << 6));
 
 	/* edge action */
-	if ((old_keys & 1) && !(older_keys & 1))
-		ret |= UI_ACTION_SKIPKERNEL;
+	if ((old_keys & 1) && !(older_keys & 1)) {
+		/* only generate 1 skip event if a bootmenu kernel is configured
+		 * otherwise we would probably end up skipping the ui kernel too */
+		if (!board_api_gta02.kernel_ui || !kernel_ui)
+			ret |= UI_ACTION_SKIPKERNEL;
+		kernel_ui = UI_ACTION_UI_KERNEL;
+	}
 
 	older_keys = old_keys;
 	old_keys = keys;
 
-	return ret;
+	return ret | kernel_ui;
 }
 
 static u8 get_ui_debug_gta02(void)
@@ -737,4 +743,6 @@ const struct board_api board_api_gta02 = {
 					      "root=/dev/mtdblock6 ",
 		},
 	},
+	/* boot NAND kernel on AUX press */
+	.kernel_ui = 3,
 };
-- 
1.6.5




More information about the openmoko-kernel mailing list