int dpmgr_path_reset(disp_path_handle dp_handle, int encmdq) { int i=0; int ret = 0; int error = 0; int module_name ; ASSERT(dp_handle != NULL); ddp_path_handle handle = (ddp_path_handle)dp_handle; int * modules = ddp_get_scenario_list(handle->scenario); int module_num = ddp_get_module_num(handle->scenario); cmdqRecHandle cmdqHandle = encmdq ? handle->cmdqhandle : NULL; DISP_LOG_I("path reset on scenario %s\n",ddp_get_scenario_name(handle->scenario)); /* first reset mutex */ ddp_mutex_reset(handle->hwmutexid,cmdqHandle); for( i=0; i< module_num;i++) { module_name = modules[i]; if(ddp_modules_driver[module_name] != 0) { if(ddp_modules_driver[module_name]->reset != 0) { DISP_LOG_I("scenario %s reset module %s \n",ddp_get_scenario_name(handle->scenario), ddp_get_module_name(module_name)); ret = ddp_modules_driver[module_name]->reset(module_name, cmdqHandle); if(ret != 0) { error++; } } } } return error > 0? -1: 0; }
int ddp_mutex_clear(int mutex_id, void * handle) { DDPDBG("mutex %d clear\n", mutex_id); DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_MOD(mutex_id),0); DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_SOF(mutex_id),0); /*reset mutex*/ ddp_mutex_reset(mutex_id,handle); return 0; }