DPI_STATUS DPI_StartTransfer(bool isMutexLocked)
{
    // needStartDSI = 1: For command mode or the first time of video mode.
    // After the first time of video mode. Configuration is applied in ConfigurationUpdateTask.
    extern struct mutex OverlaySettingMutex;

    MMProfileLogMetaStringEx(MTKFB_MMP_Events.Debug, MMProfileFlagPulse, isMutexLocked, 0, "StartTransfer");

    if (!isMutexLocked)
        disp_path_get_mutex();

    mutex_lock(&OverlaySettingMutex);

    LCD_CHECK_RET(LCD_ConfigOVL());
    // Insert log for trigger point.
    DBG_OnTriggerLcd();

    // To trigger frame update.
    DPI_EnableClk();

    mutex_unlock(&OverlaySettingMutex);

    if (!isMutexLocked)
        disp_path_release_mutex();

    return DPI_STATUS_OK;
}
Exemple #2
0
jint MMProfileLogMetaStringEx_J(JNIEnv *env, jobject thiz, jint event, jint type, jint data1, jint data2, jstring str)
{
    jint ret;
    const char *_str = str ? env->GetStringUTFChars(str, NULL) : NULL;
    if (!_str)
    {
        return -1;
    }
    ret = MMProfileLogMetaStringEx((MMP_Event)event, (MMP_LogType)type, (unsigned int)data1, (unsigned int)data2, _str);
    env->ReleaseStringUTFChars(str, _str);
    return ret;
}
bool CPTLogStrEx(CPT_Event event, CPT_LogType type, unsigned int data1, unsigned int data2, const char* str)
{
	if(!gbInit)
	{
        return true;
	}
	switch(type){
		case 	CPTFlagStart:
			MMProfileLogMetaStringEx(gMMPEvent[event], MMProfileFlagStart, data1, data2, str);
			break;
		case 	CPTFlagEnd:
			MMProfileLogMetaStringEx(gMMPEvent[event], MMProfileFlagEnd, data1, data2, str);
			break;
		case 	CPTFlagPulse:
			MMProfileLogMetaStringEx(gMMPEvent[event], MMProfileFlagPulse, data1, data2, str);
			break;
        case    CPTFlagSeparator:
            MMProfileLogMetaStringEx(gMMPEvent[event], MMProfileFlagEventSeparator, data1, data2, str);
            break;
		default:
			break;
	}
    return true;
}