int ext_disp_suspend(void) { EXT_DISP_STATUS ret = EXT_DISP_STATUS_OK; DISPFUNC(); _ext_disp_path_lock(); if(pgc->state == EXTD_DEINIT || pgc->state == EXTD_SUSPEND) { DISPERR("EXTD_DEINIT or EXTD_SUSPEND\n"); goto done; } pgc->need_trigger_overlay = 0; if(dpmgr_path_is_busy(pgc->dpmgr_handle)) { dpmgr_wait_event_timeout(pgc->dpmgr_handle, DISP_PATH_EVENT_FRAME_DONE, HZ/30); } if(ext_disp_use_cmdq == CMDQ_ENABLE) _cmdq_stop_trigger_loop(); dpmgr_path_stop(pgc->dpmgr_handle, CMDQ_DISABLE); //ALPS01857347+ dpmgr_path_power_off(pgc->dpmgr_handle, CMDQ_DISABLE); //- if(dpmgr_path_is_busy(pgc->dpmgr_handle)) { dpmgr_wait_event_timeout(pgc->dpmgr_handle, DISP_PATH_EVENT_FRAME_DONE, HZ/30); } ///if(dpmgr_path_is_busy(pgc->dpmgr_handle)) dpmgr_path_reset(pgc->dpmgr_handle, CMDQ_DISABLE); #if 0///(dpmgr_path_is_busy2(pgc->dpmgr_handle)) { dpmgr_path_reset(pgc->dpmgr_handle, CMDQ_DISABLE); dpmgr_check_status(pgc->dpmgr_handle); } #endif extd_drv_suspend(pgc->plcm); ///dpmgr_path_power_off(pgc->dpmgr_handle, CMDQ_DISABLE); pgc->state = EXTD_SUSPEND; done: _ext_disp_path_unlock(); DISPMSG("ext_disp_suspend done \n"); return ret; }
int ext_disp_suspend(void) { EXT_DISP_STATUS ret = EXT_DISP_STATUS_OK; EXT_DISP_FUNC(); _ext_disp_path_lock(); if(pgc->state == EXTD_DEINIT || pgc->state == EXTD_SUSPEND) { EXT_DISP_ERR("status is not EXTD_RESUME\n"); goto done; } pgc->need_trigger_overlay = 0; if(dpmgr_path_is_busy(pgc->dpmgr_handle)) { dpmgr_wait_event_timeout(pgc->dpmgr_handle, DISP_PATH_EVENT_FRAME_DONE, HZ/30); } if(ext_disp_use_cmdq == CMDQ_ENABLE) { _cmdq_stop_trigger_loop(); } dpmgr_path_stop(pgc->dpmgr_handle, CMDQ_DISABLE); dpmgr_path_power_off(pgc->dpmgr_handle, CMDQ_DISABLE); if(dpmgr_path_is_busy(pgc->dpmgr_handle)) { dpmgr_wait_event_timeout(pgc->dpmgr_handle, DISP_PATH_EVENT_FRAME_DONE, HZ/30); } dpmgr_path_reset(pgc->dpmgr_handle, CMDQ_DISABLE); extd_drv_suspend(pgc->plcm); pgc->state = EXTD_SUSPEND; done: _ext_disp_path_unlock(); EXT_DISP_LOG("ext_disp_suspend done \n"); return ret; }