📄 uem_msg_hdlr.c
字号:
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemdrv_rtc_period_ind_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemdrv_rtc_period_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
RTC_Primitive *msg_ptr = (RTC_Primitive*) local_para_ptr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEMRTC_PERIOD_IND);
switch (msg_ptr->rtc_ind)
{
case RTC_TC_IND:
uemdrv_rtc_period_ind();
break;
case RTC_AL_IND:
uemdrv_alarm_detect_ind();
break;
default:
break;
}
return;
}
/*****************************************************************************
* Function
* uemdrv_pmic_ind_hdlr
* DESCRIPTION
* The function is used to notify the battery status from PMIC driver.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemdrv_pmic_ind_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemdrv_pmic_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
uem_bmt_struct bmt_status;
drvuem_pmic_ind_struct *msg_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_PMIC_IND);
msg_ptr = (drvuem_pmic_ind_struct*) local_para_ptr;
uem_get_bat_status(&bmt_status);
bmt_status.status = uem_battery_status_convert((kal_uint8) msg_ptr->status);
uem_set_bat_status(bmt_status);
uemdrv_pmic_ind(bmt_status.status);
return;
}
/*****************************************************************************
* Function
* uembmt_adc_measure_done_cnf_hdlr
* DESCRIPTION
* The ADC of bmt task measure the result of voltage and ADC.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uembmt_adc_measure_done_cnf_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uembmt_adc_measure_done_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
uem_bmt_struct bmt_status;
bmt_adc_measure_done_conf_struct *msg_ptr = (bmt_adc_measure_done_conf_struct*) local_para_ptr;
static kal_bool first_time_ind = KAL_TRUE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
bmt_status.status = PMIC_VBAT_STATUS;
bmt_status.adc = msg_ptr->adc_value;
bmt_status.volt = msg_ptr->volt;
/* store the data in SRAM */
uem_set_bat_status(bmt_status);
/* First time is used for Power on to quickly response the status,
After second time is used for normal time caculator */
if (first_time_ind)
{
g_uem_cntx_p->bmt_status.disp_level = uem_vbat_level_convert(bmt_status.volt);
g_uem_cntx_p->bmt_status.last_level = g_uem_cntx_p->bmt_status.disp_level;
g_uem_cntx_p->bmt_status.hit_count = 0;
kal_prompt_trace(
MOD_UEM,
"[BAT_LV: %u] [BMT status:%d volt:%d last:%d disp:%d cnt:%d]",
g_uem_cntx_p->bmt_status.disp_level,
bmt_status.status,
bmt_status.volt,
g_uem_cntx_p->bmt_status.last_level,
g_uem_cntx_p->bmt_status.disp_level,
g_uem_cntx_p->bmt_status.hit_count);
l4cuem_battery_status_ind(PMIC_VBAT_STATUS, g_uem_cntx_p->bmt_status.disp_level);
uem_send_msg_to_bmt(
MSG_ID_BMT_ADC_MODIFY_PARAMETERS_REQ,
(kal_uint32) (g_uem_cntx_p->adc_sche_id),
(kal_uint32) (ADC_IDLE_EVAL_COUNT),
(kal_uint32) (ADC_IDLE_EVAL_PERIOD));
first_time_ind = KAL_FALSE;
}
else
{
/* notify the message to L4C */
uemdrv_pmic_ind(PMIC_VBAT_STATUS);
}
}
/*****************************************************************************
* Function
* uemdrv_aux_id_hdlr
* DESCRIPTION
* The function is responsed detect the accessory plug in.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemdrv_aux_id_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemdrv_aux_id_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
aux_id_struct *p_aux_id_struct = (aux_id_struct*) local_para_ptr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (p_aux_id_struct->aux_id)
{
case AUX_ID_PLUGOUT:
{
uemdrv_gpio_detect_ind(EXT_DEV_NONE);
break;
}
case AUX_ID_EARPHONE:
{
uemdrv_gpio_detect_ind(EXT_DEV_EARPHONE);
break;
}
case AUX_ID_KEY_PRESS:
uemdrv_gpio_detect_ind(EXT_DEV_KEY_1);
break;
case AUX_ID_KEY_RELEASE:
uemdrv_gpio_detect_ind(EXT_DEV_KEY_2);
break;
case AUX_ID_UART:
uemdrv_gpio_detect_ind(EXT_DEV_UART);
break;
case AUX_ID_CLAM_OPEN:
uemdrv_gpio_detect_ind(EXT_DEV_CLAM_OPEN);
FLAG_SET_ON(g_uem_cntx_p->acc_latest_state, UEM_ACCESSORY_TYPE_CLAM);
break;
case AUX_ID_CLAM_CLOSE:
uemdrv_gpio_detect_ind(EXT_DEV_CLAM_CLOSE);
FLAG_SET_OFF(g_uem_cntx_p->acc_latest_state, UEM_ACCESSORY_TYPE_CLAM);
break;
#ifdef PLUTO_MMI
case AUX_ID_TVOUT:
uem_send_msg_to_aud(MSG_ID_MEDIA_TVO_AV_CABLE_DETECT_IND, 1 /* plug-in */ );
break;
case AUX_ID_TVOUT_OUT:
uem_send_msg_to_aud(MSG_ID_MEDIA_TVO_AV_CABLE_DETECT_IND, 0 /* plug-out */ );
break;
#endif /* PLUTO_MMI */
default:
break;
}
}
/*****************************************************************************
* Function
* uemnvm_write_data_cnf_hdlr
* DESCRIPTION
* The function is responsed from NVRAM for writing data success or not.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemnvm_write_data_cnf_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemnvm_write_data_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
nvram_write_cnf_struct *parm_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_WRITE_DATA_CNF);
parm_ptr = (nvram_write_cnf_struct*) local_para_ptr;
switch (parm_ptr->file_idx)
{
case NVRAM_EF_UEM_RMI_DATA_LID:
case NVRAM_EF_CUST_HW_LEVEL_TBL_LID:
{
g_uem_cntx_p->cause_id = parm_ptr->result;
/* restore the function id in UEM message from NVRAM */
g_uem_cntx_p->func_id = parm_ptr->access_id;
break;
}
default:
break;
}
/* error case */
switch ((g_uem_cntx_p->func_id))
{
case VOL_SET:
case CALA_SET:
case CALD_EXE:
case CSGT_SET:
case CGCI_SET:
case CLAN_SET:
case CALM_SET:
case GPIO_SET:
case CVIB_SET:
uem_send_msg_to_l4c(MSG_ID_L4CUEM_SET_PROFILE_CNF, NULL);
break;
case CGCI_SET + 10:
uem_send_msg_to_l4c(MSG_ID_L4CUEM_SET_AUDIO_PROFILE_CNF, NULL);
break;
case CGCI_SET + 11:
uem_send_msg_to_l4c(MSG_ID_L4CUEM_SET_HW_LEVEL_CNF, NULL);
break;
default:
break;
}
}
/*****************************************************************************
* Function
* uemnvm_read_data_cnf_hdlr
* DESCRIPTION
* The function is responsed from NVRAM for reading data success or not.
* PARAMETERS
* local_para_ptr IN
* peer_buff_ptr IN
* RETURNS
* void
* GLOBALS AFFECTED
*****************************************************************************/
/*****************************************************************************
* FUNCTION
* uemnvm_read_data_cnf_hdlr
* DESCRIPTION
*
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void uemnvm_read_data_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
nvram_read_cnf_struct *parm_ptr = NULL;
kal_uint16 pdu_len;
kal_uint8 *pdu_ptr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_FUNC, FUNC_UEM_READ_DATA_CNF);
parm_ptr = (nvram_read_cnf_struct*) local_para_ptr;
pdu_ptr = get_pdu_ptr(peer_buff_ptr, &pdu_len);
switch (parm_ptr->file_idx)
{
case NVRAM_EF_UEM_RMI_DATA_LID:
{
if (parm_ptr->length != sizeof(uem_context_rmi_struct))
{
/* error reading length */
kal_trace(TRACE_ERROR, ERROR_UEM_NVRAM_DATA_LEN, sizeof(uem_context_rmi_struct), parm_ptr->length);
return;
}
kal_mem_cpy(&(g_uem_cntx_p->rmi_data), (uem_context_rmi_struct*) pdu_ptr, sizeof(uem_context_rmi_struct));
if (g_uem_cntx_p->state == UEM_STATE_STARTUP)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -