FreeCalypso > hg > fc-tourmaline
view components/fcbm @ 280:82665effff30
keypad boot init overhaul: handle initially held-down keys
This change fixes two previous behavioural defects:
1) On Compal phones, the PWR key had to be released before the boot
sequence would proceed at all - it was stuck in an endless IRQ loop
at the point of Nucleus enabling interrupts, before anything else.
2) On both Compal and sane platforms including Luna, if some regular
non-PWR key was held down at boot time, the boot sequence would
proceed and complete normally, but all non-PWR keypad buttons would
be dead for the remainder of that boot cycle.
The fix is a generic solution - no Compal-specific hack ended up being
needed for the special case of their idiotic PWON-to-ROW4 hw wiring.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 24 Sep 2021 00:47:12 +0000 |
parents | a5b00817a60f |
children |
line wrap: on
line source
# Building FCBM SWE - an original FreeCalypso addition CFLAGS="-mn -mt -o -x -mw -me -pw2" CPPFLAGS="-DTOOL_CHOICE=0 -D_TMS470" case "$UI_CONFIG" in bigcolor) CPPFLAGS="$CPPFLAGS -DCOLOURDISPLAY" CPPFLAGS="$CPPFLAGS -DLSCREEN" ;; smallbw) ;; *) echo "Error: UI_CONFIG=$UI_CONFIG setting not understood" 1>&2 exit 1 esac # Includes CPPFLAGS="$CPPFLAGS -I$SRC/nucleus" CPPFLAGS="$CPPFLAGS -I.." CPPFLAGS="$CPPFLAGS -I../config" CPPFLAGS="$CPPFLAGS -I$SRC/gpf/inc" CPPFLAGS="$CPPFLAGS -I$SRC/gpf/frame/cust_os" CPPFLAGS="$CPPFLAGS -I$SRC/condat/com/include" CPPFLAGS="$CPPFLAGS -I$SRC/cs/system" CPPFLAGS="$CPPFLAGS -I$SRC/cs/riviera" CPPFLAGS="$CPPFLAGS -I$SRC/cs/riviera/rv" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/abb" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/armio" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/clkm" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/conf" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/dma" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/dsp_dwnld" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/inth" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/memif" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/rhea" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/security" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/spi" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/timer" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/uart" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_core/ulpd" CPPFLAGS="$CPPFLAGS -I$SRC/cs/drivers/drv_app" CPPFLAGS="$CPPFLAGS -I$SRC/cs/services" # Source modules SRCDIR=$SRC/cs/services/fcbm cfile_plain $SRCDIR/fcbm_charging.c cfile_plain $SRCDIR/fcbm_display_ctrl.c cfile_plain $SRCDIR/fcbm_env.c cfile_plain $SRCDIR/fcbm_kpd_if.c cfile_plain $SRCDIR/fcbm_messages.c cfile_plain $SRCDIR/fcbm_phone_on.c cfile_plain $SRCDIR/fcbm_powerkey_if.c cfile_plain $SRCDIR/fcbm_reset_mode.c cfile_plain $SRCDIR/fcbm_send_msg.c cfile_plain $SRCDIR/fcbm_task.c cfile_plain $SRCDIR/fcbm_textout.c