⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uem_msg_hdlr.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
*   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 + -