[AMD Public Use] Thanks Guchun, yes this would require CONFIG_DRM_AMD_DC_DCN flag, will update it. Regards, Bindu ________________________________ From: Chen, Guchun Sent: Tuesday, March 16, 2021 11:32 PM To: Feng, Kenneth ; R, Bindu ; amd-gfx@lists.freedesktop.org Cc: Deucher, Alexander ; Zhou1, Tao ; Lakha, Bhawanpreet ; R, Bindu Subject: RE: [PATCH] drm/amd/display: Allow idle optimization based on vblank. [AMD Public Use] + /* Allow idle optimization when vblank count is 0 for display off */ + if (dm->active_vblank_irq_count == 0) + dc_allow_idle_optimizations(dm->dc,true); + Above part needs to be guarded by CONFIG_DRM_AMD_DC_DCN? Regards, Guchun -----Original Message----- From: amd-gfx On Behalf Of Feng, Kenneth Sent: Wednesday, March 17, 2021 9:45 AM To: R, Bindu ; amd-gfx@lists.freedesktop.org Cc: Deucher, Alexander ; Zhou1, Tao ; Lakha, Bhawanpreet ; R, Bindu Subject: RE: [PATCH] drm/amd/display: Allow idle optimization based on vblank. [AMD Official Use Only - Internal Distribution Only] Reviewed-by: Kenneth Feng -----Original Message----- From: amd-gfx On Behalf Of Bindu Ramamurthy Sent: Wednesday, March 17, 2021 7:50 AM To: amd-gfx@lists.freedesktop.org Cc: Deucher, Alexander ; Lakha, Bhawanpreet ; Zhou1, Tao ; Feng, Kenneth ; R, Bindu Subject: [PATCH] drm/amd/display: Allow idle optimization based on vblank. [CAUTION: External Email] [Why] idle optimization was being disabled after commit. [How] check vblank count for display off and enable idle optimization based on this count. Signed-off-by: Bindu Ramamurthy --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 553e39f9538c..56a55143ad2d 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -987,7 +987,7 @@ static void event_mall_stutter(struct work_struct *work) if (vblank_work->enable) dm->active_vblank_irq_count++; - else + else if(dm->active_vblank_irq_count) dm->active_vblank_irq_count--; dc_allow_idle_optimizations( @@ -8694,7 +8694,10 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) WARN_ON(!dc_commit_state(dm->dc, dc_state)); mutex_unlock(&dm->dc_lock); } - + /* Allow idle optimization when vblank count is 0 for display off */ + if (dm->active_vblank_irq_count == 0) + dc_allow_idle_optimizations(dm->dc,true); + for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) { struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc); -- 2.25.1 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7Cguchun.chen%40amd.com%7Cb53f164f787e4da3725a08d8e8e6472c%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637515423028336026%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xZouQssY4uo%2FohKAZBCdej9gKFsggBExTfQ3Ddz8D%2BQ%3D&reserved=0 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7Cguchun.chen%40amd.com%7Cb53f164f787e4da3725a08d8e8e6472c%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637515423028336026%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xZouQssY4uo%2FohKAZBCdej9gKFsggBExTfQ3Ddz8D%2BQ%3D&reserved=0