FreeCalypso > hg > fc-tourmaline
view src/cs/layer1/dyn_dwl_include/l1_dyn_dwl_defty.h @ 78:c632896652ba
mfw/ti1_key.c: properly initialize notified_keys array
The code in this ti1_key.c layer needs to call kpd_subscribe() and
kpd_define_key_notification() functions in order to register with the
KPD driver. The original code passed KPD_NB_PHYSICAL_KEYS in
nb_notified_keys - this constant is defined to 24 in kpd_cfg.h on all
platforms of interest to us - but it only filled the first 23 slots
in the notified_keys array, resulting in stack garbage being passed
to KPD API functions. The fix consists of initializing the last
missed array slot to KPD_KEY_RECORD, the key ID for the right side
button on the D-Sample handset.
On our current hw targets this "Record" button exists as the EXTRA
button on our Luna keypad board and as the camera button on the
Pirelli DP-L10. There is no support whatsoever for this button
in current BMI+MFW, we have no plans of doing anything with Pirelli's
camera button even if we do get our UI fw running on that phone,
and the Mother's dream of building our own FreeCalypso handset with
the same button arrangement as D-Sample (including the right side
button) is currently very nebulous - but let us nonetheless handle
the full set of buttons on the KPD to MFW interface, and let upper
layers weed out unsupported buttons.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 25 Oct 2020 23:41:01 +0000 |
| parents | 4e78acac3d88 |
| children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1_DYN_DWL_DEFTY.H * * Filename l1_dyn_dwl_defty.h * Copyright 2004 (C) Texas Instruments * ************* Revision Controle System Header *************/ #if(L1_DYN_DSP_DWNLD==1) #ifndef _L1_DYN_DWL_DEFTY_H_ #define _L1_DYN_DWL_DEFTY_H_ #include "l1_dyn_dwl_const.h" /***************************************************************************************/ /* Dynamic download L1A structure to store dynamic download L1A global variables */ /***************************************************************************************/ typedef struct { UWORD32 signal_code_vect[MAX_NUM_OF_PATCH_IDS]; UWORD32 num_of_elem; }T_FIFO_DYN_DWNLD ; typedef struct { UWORD8 state; UWORD16 num_patches_installed; UWORD16 patch_id[MAX_NUM_OF_PATCH_IDS]; UWORD16 num_of_elem_to_copy; UWORD16 next_patch_id[MAX_NUM_OF_PATCH_IDS]; BOOL semaphore_vect[MAX_NUM_OF_SEMAPHORES]; BOOL melody0_E2_flag_activated; BOOL melody1_E2_flag_activated; UWORD16 dsp_trace_level_copy; BOOL trace_flag_blocked; UWORD16 num_of_primitives; BOOL dedicated_stop_flag; T_FIFO_DYN_DWNLD waiting_patch_fifo; }T_L1A_DYN_DWNLD_GLOBAL; /***************************************************************************************/ /* Dynamic DSP L1A-L1S structure... */ /***************************************************************************************/ typedef struct { BOOL start; BOOL stop; } T_DYN_DWNLD_TASK_COMMAND; /***************************************************************************************/ /* Dynamic DSP download HISR - L1A structure... */ /***************************************************************************************/ typedef struct { BOOL restart; } T_DYN_DWNLD_HISR_COMMAND; typedef struct { UWORD16 num_of_elem; UWORD32 address[MAX_NUM_OF_PATCH_IDS]; } T_DYN_DWNLD_HISR_UN_PARAM; typedef struct { UWORD32 start_MCU_copy_address[MAX_NUM_OF_PATCH_IDS]; UWORD16 size_of_dwnld_area; UWORD16 start_of_dwnld_area; UWORD16 num_of_elem; UWORD32 address_to_install[MAX_NUM_OF_PATCH_IDS]; UWORD16 crc[MAX_NUM_OF_PATCH_IDS]; UWORD16 size_array[MAX_NUM_OF_PATCH_IDS]; }T_DYN_DWNLD_HISR_CPY_PARAM; typedef struct { T_DYN_DWNLD_HISR_COMMAND command; T_DYN_DWNLD_HISR_UN_PARAM uninstall_parameters; T_DYN_DWNLD_HISR_CPY_PARAM copy_parameters; } T_L1A_DYN_DWNLD_HISR_COM; /***************************************************************************************/ /* Dynamic download HISR structure to store dynamic download HISR global variables */ /***************************************************************************************/ typedef struct { UWORD8 state; BOOL running; UWORD16 uninstall_counter; UWORD16 patch_ids_counter; UWORD32 running_source_pointer; UWORD16 tmp_patch_size; } T_L1_DYN_DWNLD_API_HISR; /***************************************************************************************/ /* Dynamic Download MCU-DSP API */ /***************************************************************************************/ typedef struct { API d_api_dwl_download_ctrl; API d_api_dwl_error_code; API d_api_dwl_function_address[2]; API d_api_dwl_crc; API d_api_dwl_size; API d_api_dwl_write_pointer; } T_DYN_DWNLD_MCU_DSP; typedef struct { UWORD32 primitive; UWORD16 msg_id; }T_SIGNAL_PATCH; #define GPRS_PATCH 0 #define AMR_SCH_PATCH 1 #define TTY_PATCH 2 #define AMR_MMS_PATCH 3 #define E2_PATCH 4 #define DEDI_STATE_MACHINE 0 #define TTY_STATE_MACHINE 1 #define E2_STATE_MACHINE 2 #define VOICE_MEMO_AMR_SM 3 #define VOICE_PLAY_AMR_SM 4 #define SPEECH_RECO_SM 5 #endif // _L1_DYN_DWL_DEFTY_H_ #endif // L1_DYN_DSP_DWNLD
