Beispiel #1
0
/*
* FUNCTION
*	   bmt_set_guardtimer
*
* DESCRIPTION                                                           
*   	This function is to initialize the bmt_stop timer in bmt task.
*
* CALLS  
*
* PARAMETERS
*	   tick: timer tick(1 tick=4.615ms)
*	
* RETURNS
*	   None
*
* GLOBALS AFFECTED
*     None
*/
void bmt_set_guardtimer(kal_uint32 tick)
{
   #ifdef BMT_KAL_DEBUG   
	   kal_trace(TRACE_FUNC, BMT_STOP_TIMER_START_TRC);
   #endif	
	drv_trace0(TRACE_GROUP_10, BMT_STOP_TIMER_START_TRC);
	stack_start_timer(timer_guardcharge, 0, tick);
}
/*****************************************************************************
 * FUNCTION
 *  jma_audio_recorder_timer_expired
 * DESCRIPTION
 *  This function handles if audio recorder timer is expired
 * PARAMETERS
 *  mma_type            [IN]
 *  java_recorder       [IN]
 *  int reocrder(?)
 * RETURNS
 *  void
 *****************************************************************************/
void jma_audio_recorder_timer_expired(kal_int32 vm_id)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 record_size = 0;
    kal_int32 ticks = kal_milli_secs_to_ticks(200); /* 200 ms */
    FS_HANDLE file_handle;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_AUDIO_RECORDER_TIMER_EXPIRED, vm_id, audio_recorder[vm_id].id, audio_recorder[vm_id].state);
    JMA_CS_ENTER(vm_id, JMA_VOID);

    if (audio_recorder[vm_id].state != JAVA_MEDIA_STATE_RECORDING)
    {
        JMA_CS_LEAVE(JMA_VOID);
    }

    EXT_ASSERT(audio_recorder[vm_id].state == JAVA_MEDIA_STATE_RECORDING, 0, 0, 0);

    /* Get file size */
    file_handle = FS_Open(audio_recorder[vm_id].filename, FS_READ_ONLY | FS_OPEN_SHARED);
    if (file_handle <= 0)
    {
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL);
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, file_handle);
        JMA_CS_LEAVE(JMA_VOID);
    }
    result = FS_GetFileSize(file_handle, &record_size);
    result = FS_Close(file_handle);
    if(1 == result)
    {
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, record_size+1);
    }
    kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, record_size);

    /* Reach record size limit */
    if (record_size >= audio_recorder[vm_id].record_size_limit)
    {
        /* State will be changed */
        jma_mvm_audio_recorder_commit(vm_id, audio_recorder[vm_id].id);

        jvm_post_mma_event(MMA_EVENT_RECORD_STOPPED,
                           audio_recorder[vm_id].id, audio_recorder[vm_id].current_time);
    }
    else /* re-start timer */
    {
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_STACK_START_TIMER);
        stack_start_timer(&java_media_timer, JAVA_MEDIA_TIMER_AUDIO_RECORDER + vm_id, ticks);
    }
    JMA_CS_LEAVE(JMA_VOID);
}
Beispiel #3
0
/*
* FUNCTION
*	   bmt_charge_start
*
* DESCRIPTION                                                           
*   	This function is to start charging algorithm.
*
* CALLS  
*
* PARAMETERS
*	   None
*	
* RETURNS
*	   None
*
* GLOBALS AFFECTED
*     None
*/
void bmt_charge_start(void)
{
   kal_uint8 index;
   BMT_Charge(KAL_FALSE);
   BMT.pmictrl_state = PMIC_CHARGEOFF;
   BMT.bat_state = CHR_PRE;
   BMT.VBAT_UEM= VBAT_UEM_CHR_IN_FISRT;
   bmt_charge_time_value = 10;
   low_charger_count = 0;
   low_current_count = 0;
   low_temper_count = 0;
   over_temper_count = 0;
   
   #ifdef MTK_SLEEP_ENABLE
   L1SM_SleepDisable(bmt_sm_handle);
   #endif
   for(index=0;index<BMT_MAX_CHANNEL;index++)
   {
      adc_sche_modify_parameters(bmt_bmtid_adcscheid[index],1,1);
	   adc_sche_add_item(bmt_bmtid_adcscheid[index],bmt_measure_complete1[index], bmt_adc_sche_measure);
	}
	
	adc_sche_set_timer_page_align(KAL_FALSE);

	stack_start_timer(&ChargeTimeout_timer, 0, KAL_TICKS_1_MIN*60*6);
	#ifdef BMT_KAL_DEBUG   
	   kal_trace(TRACE_FUNC, BMT_SAFETY_TIMER_START_TRC);
	#endif   
   SaftyTimer_Flag = BMT_SaftyTimer_On; 
   #if defined(MT6318)
      #if !defined(__CHARGER_USB_DETECT_WIHT_ONE_EINT__)
   if(pmic_is_chr_det(AC_CHR))
      pmic_charging_currnet_ctrl(pmic_return_current(AC_CHR));
   #ifdef __USB_MULTI_CHARGE_CURRENT__
      else if (bmt_support_usb_charge()) /* If not support, charging current is not set here. */
         pmic_charging_currnet_ctrl(pmic_return_current(USB_CHR));   
   #else /* __USB_MULTI_CHARGE_CURRENT__ */
   else
      pmic_charging_currnet_ctrl(pmic_return_current(USB_CHR));   
   #endif /* __USB_MULTI_CHARGE_CURRENT__ */
      #else/*defined(__CHARGER_USB_DETECT_WIHT_ONE_EINT__)*/
         if(chr_usb_detect.chr_usb_present == CHARGER_PRESENT)                                   
            pmic_charging_currnet_ctrl(pmic_return_current(AC_CHR));   
         else if(chr_usb_detect.chr_usb_present == USB_PRESENT)                                                                                             
         {  
            #ifdef __USB_MULTI_CHARGE_CURRENT__
            if (bmt_support_usb_charge()) /* If not support, charging current is not set here. */
                pmic_charging_currnet_ctrl(pmic_return_current(USB_CHR));   
            #else /* __USB_MULTI_CHARGE_CURRENT__ */             
                pmic_charging_currnet_ctrl(pmic_return_current(USB_CHR));   
             #endif /* __USB_MULTI_CHARGE_CURRENT__ */
         }
      #endif   
   #endif /* defined(MT6318) */
}
Beispiel #4
0
/*****************************************************************************
 * FUNCTION
 *  nvram_restart_timer
 * DESCRIPTION
 *  Restart schedule event
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void nvram_restart_timer(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    stack_start_timer(&nvram_shadow_timer, 0, 10 * KAL_TICKS_1_SEC);    /* 10sec */

}
/*****************************************************************************
 * FUNCTION
 *  jma_audio_recorder_set_record_size_limit
 * DESCRIPTION
 *  This function set the size limit of recorded data
 * PARAMETERS
 *  mma_type            [IN]        Int recorder
 *  java_recorder       [IN]
 *  limit_size          [IN]
 * RETURNS
 *  int - limit_size set
 *****************************************************************************/
kal_int32 jma_mvm_audio_recorder_set_record_size_limit(kal_int32 vm_id, kal_int32 java_recorder, kal_int32 limit_size)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 ticks = kal_milli_secs_to_ticks(200); /* 200 ms */

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MVM_AUDIO_RECORDER_SET_RECORD_SIZE_LIMIT, vm_id, java_recorder, audio_recorder[vm_id].state, limit_size);
    JMA_CS_ENTER(vm_id, 0);

    if (audio_recorder[vm_id].id != java_recorder)
    {
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_RESOURCE_ERROR, audio_recorder[vm_id].id);
        JMA_CS_LEAVE(0);
    }

    /* Save parameter */
    audio_recorder[vm_id].record_size_limit = limit_size;

    if (vm_id != jam_mvm_get_current_vm_id())
    {
        JMA_CS_LEAVE(limit_size);
    }
//#ifdef __MMI_BACKGROUND_CALL__
    if (jma_media_player_is_in_background_call())
    {
        JMA_CS_LEAVE(limit_size);
    }
//#endif /* __MMI_BACKGROUND_CALL__ */

    /* start timer */
    if (audio_recorder[vm_id].state == JAVA_MEDIA_STATE_RECORDING)
    {
        if(audio_recorder[vm_id].record_size_limit != -1)
        {
            kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_STACK_START_TIMER);
            stack_start_timer(&java_media_timer, JAVA_MEDIA_TIMER_AUDIO_RECORDER + vm_id, ticks);
        }
    }
    JMA_CS_LEAVE(limit_size);
}
/*****************************************************************************
 * FUNCTION
 *  jma_audio_recorder_start_record
 * DESCRIPTION
 *  This function submit Record request to media task.
 * PARAMETERS
 *  mma_type            [IN]        Int recorder
 *  java_recorder       [IN]
 * RETURNS
 *  int - 0
 *****************************************************************************/
kal_bool jma_mvm_audio_recorder_start_record(kal_int32 vm_id, kal_int32 java_recorder)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mdi_result ret = MDI_AUDIO_FAIL;
    kal_int32 ticks = kal_milli_secs_to_ticks(200); /* 200 ms */

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MVM_AUDIO_RECORDER_START_RECORD, vm_id, java_recorder, audio_recorder[vm_id].state);
    JMA_CS_ENTER(vm_id, KAL_FALSE);

    if (audio_recorder[vm_id].id != java_recorder)
    {
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_RESOURCE_ERROR, audio_recorder[vm_id].id);
        JMA_CS_LEAVE(KAL_FALSE);
    }
    if (vm_id != jam_mvm_get_current_vm_id())
    {
        JMA_CS_LEAVE(KAL_TRUE);
    }

//#ifdef __MMI_BACKGROUND_CALL__
    if (jma_media_player_is_in_background_call())
    {
        JMA_CS_LEAVE(KAL_FALSE);
    }
//#endif /* __MMI_BACKGROUND_CALL__ */

    if (mmi_ucs2strlen((PS8) audio_recorder[vm_id].filename) == 0)
    {
        JMA_CS_LEAVE(KAL_FALSE);
    }

    if (audio_recorder[vm_id].state == JAVA_MEDIA_STATE_READY)
    {
        ret = mdi_audio_start_record(audio_recorder[vm_id].filename, audio_recorder[vm_id].format, 0,
                                     jma_audio_recorder_record_result_hdlr, NULL);
    }
    else if (audio_recorder[vm_id].state == JAVA_MEDIA_STATE_PAUSED)
    {
        ret = mdi_audio_resume(jma_audio_recorder_record_result_hdlr, NULL);
    }

    /* Handle result */
    if (ret == MDI_AUDIO_SUCCESS)
    {
        kal_trace(TRACE_GROUP_4, J2ME_MMA_STATE_TRANSITION, vm_id, audio_recorder[vm_id].state, JAVA_MEDIA_STATE_RECORDING);
        audio_recorder[vm_id].state = JAVA_MEDIA_STATE_RECORDING;

        if (audio_recorder[vm_id].record_size_limit != -1)
        {
            kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_STACK_START_TIMER);
            stack_start_timer(&java_media_timer, JAVA_MEDIA_TIMER_AUDIO_RECORDER + vm_id, ticks);
        }

        JMA_CS_LEAVE(KAL_TRUE);
    }
    else
    {
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL);
        kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, ret);
        JMA_CS_LEAVE(KAL_FALSE);
    }
}
Beispiel #7
0
/*
* FUNCTION
*	   bmt_charge_start
*
* DESCRIPTION                                                           
*   	This function is to start charging algorithm.
*
* CALLS  
*
* PARAMETERS
*	   None
*	
* RETURNS
*	   None
*
* GLOBALS AFFECTED
*     None
*/
void bmt_charge_start(void)
{
#if defined(__EVB__) && defined(__MTK_INTERNAL__)
/* under construction !*/
#elif defined(__DRV_BMT_NO_CHARGING__)
   return;
#else //#if defined(__EVB__)
  
#if defined(__DRV_BMT_PRECHARGE_TO_FULL_DIRECTLY__)
	double adc;
#endif //#if defined(__DRV_BMT_PRECHARGE_TO_FULL_DIRECTLY__)
    DCL_STATUS adc_status;
	ADC_CTRL_MODIFY_PARAM_T adc_para;   
#if defined(MT6236) || defined(MT6252)
   
  	PMU_CTRL_CHR_SET_CHR_CURRENT set_chr_current;
#endif

//#ifdef __DRV_BMT_SW_POLLING_CHARGER_OV__
//	kal_set_timer(bmt_sw_polling_timerId, (kal_timer_func_ptr)bmt_sw_polling_ov, NULL,43 ,	0);
//#endif //#ifdef __DRV_BMT_SW_POLLING_CHARGER_OV__


   BMT_Charge(KAL_FALSE);
   BMT.pmictrl_state = PMIC_CHARGEOFF;
#if defined(__DRV_BMT_PRECHARGE_TO_FULL_DIRECTLY__)
	if(g_battery_pre_voltage == 0)
	  BMT_Current_Voltage(DCL_VBAT_ADC_CHANNEL, &g_battery_pre_voltage,&adc);
	BMT.bat_state = CHR_PRE_FULL_CHECK;
#else //defined(__DRV_BMT_PRECHARGE_TO_FULL_DIRECTLY__)
   BMT.bat_state = CHR_PRE;
#endif //defined(__DRV_BMT_PRECHARGE_TO_FULL_DIRECTLY__)
   BMT.VBAT_UEM= VBAT_UEM_CHR_IN_FISRT;
   low_charger_count = 0;
   low_current_count = 0;
   low_temper_count = 0;
   over_temper_count = 0;
#if defined(DRV_BMT_HW_PRECC_WORKAROUND)
    SW_Workaround_Flag = KAL_TRUE;
    HW_Plug_Status = bmt_chr_uninit; 
    Manual_Disable_Charge_Flag = KAL_FALSE;
#endif
#if defined(DRV_BMT_HIGH_VCHG_ADAPTIVE_CHARGE_CURRENT_SUPPORT)
   First_Time_Charge_Enable = KAL_TRUE;
   bmt_high_vchg_current = 0xFFFFFFF;
   Pre_VCharge_AVG = 0;
   Cur_VCharge_MAX = 0;
#endif

   
	bmt_enable_sleepmode(KAL_FALSE);

 //  #ifdef MTK_SLEEP_ENABLE
 //  L1SM_SleepDisable(bmt_sm_handle);
 //  #endif
		

      adc_para.u4Period = 1;
	  adc_para.u1EvaluateCount = 1;
	  adc_status = DclSADC_Control(bmt_adc_handle, ADC_CMD_MODIFY_PARAM, (DCL_CTRL_DATA_T *)&adc_para);
	  if(adc_status != STATUS_OK)
	  {
			ASSERT(0);
	  }   	
	 
	  adc_status = DclSADC_Control(bmt_adc_handle, ADC_CMD_START_MEASURE, NULL);
	  if(adc_status != STATUS_OK)
	  {
			ASSERT(0);  		
	  }	      
	
#ifdef __BMT_CHARGE_GUARD_TIME__
	bmt_set_guardtimer(KAL_TICKS_1_MIN*BMT_CHARGE_GUARD_TIME_PERIOD);
	drv_trace2(TRACE_GROUP_10, BMT_SAFETY_AND_GUARD_TIMER_START_TRC, BMT_TOTAL_CHARGE_TIME, BMT_CHARGE_GUARD_TIME_PERIOD);
#else // __BMT_CHARGE_GUARD_TIME__

#if defined(DRV_BMT_HIGH_VCHG_ADAPTIVE_CHARGE_CURRENT_SUPPORT)
    bmt_safety_timer_config = KAL_FALSE;
#else
	stack_start_timer(&ChargeTimeout_timer, 0, KAL_TICKS_1_MIN*BMT_TOTAL_CHARGE_TIME);
	drv_trace1(TRACE_GROUP_10, BMT_SAFETY_TIMER_START_TRC, BMT_TOTAL_CHARGE_TIME);
	SaftyTimer_Flag = BMT_SAFETY_TIMER_ON; 
#endif //#if defined(DRV_BMT_HIGH_VCHG_ADAPTIVE_CHARGE_CURRENT_SUPPORT)

#endif // __BMT_CHARGE_GUARD_TIME__
	
   

#if defined(MT6236)  || defined(MT6252)
    
    set_chr_current.current = PMU_CHARGE_CURRENT_200_00_MA; // Pre-CC 200mA
    DclPMU_Control(bmt_PmuHandler, CHR_SET_CHR_CURRENT, (DCL_CTRL_DATA_T *)&set_chr_current);
                  
#else   
   bmt_set_chr_current();
#endif
   
   #if defined(PMIC_CHARGE_WDT)  // Defined in pmic_features.h
   bmt_charge_enable_wdt(KAL_TRUE);
   #endif // #if defined(PMIC_CHARGE_WDT)
   
   drv_trace0(TRACE_GROUP_10, BMT_CHARGING_START_TRC);
#endif//#if defined(__EVB__)
}
Beispiel #8
0
/*
* FUNCTION
*	   bmt_set_estimativetimer
*
* DESCRIPTION                                                           
*   	This function is to initialize the bmt_stop timer in bmt task.
*
* CALLS  
*
* PARAMETERS
*	   tick: timer tick(1 tick=4.615ms)
*	
* RETURNS
*	   None
*
* GLOBALS AFFECTED
*     None
*/
void bmt_set_estimativetimer(kal_uint32 tick)
{
	drv_trace0(TRACE_GROUP_10, BMT_STOP_TIMER_START_TRC);
	stack_start_timer(timer_estimative, 0, tick);
}