From 0f6052c9aea628c0b2358e909258b3e190377556 Mon Sep 17 00:00:00 2001 From: Tony Kim Date: Mon, 5 Sep 2022 14:45:54 +0900 Subject: [PATCH 2/4] https://sc-debu-git.synaptics.com/gerrit/#/c/171604/ Change-Id: Ic4dc80977dbf4de63c80f907a0dcc7a2136557b5 --- amp/src/service/display/src/disp_api.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/amp/src/service/display/src/disp_api.c b/amp/src/service/display/src/disp_api.c index 640e40f..adb8bea 100755 --- a/amp/src/service/display/src/disp_api.c +++ b/amp/src/service/display/src/disp_api.c @@ -3220,6 +3220,8 @@ HRESULT DISP_VID_PushFrame(AMP_DISP_PLANE_ID uiPlaneId, VOID *handle, AMP_BD_ST return Ret; } + DISP_HIGH("handle:%p, uiPlaneId:%d, push pBD:%p\n", handle, uiPlaneId, pBD); + disp_status_update_push_bd(uiPlaneId); pPlane = &(pDisp ->Plane[uiPlaneId]); @@ -3229,12 +3231,13 @@ HRESULT DISP_VID_PushFrame(AMP_DISP_PLANE_ID uiPlaneId, VOID *handle, AMP_BD_ST } else { Ret = AMP_BD_Map(AMP_BD_GET_BDID(pBD), &hBD); if ((Ret != SUCCESS) || !hBD) { - DISP_ERROR("AMP_BD_Map fails, error code [%x]!", Ret); + DISP_ERROR("AMP_BD_Map fails, error code [%x]!\n", Ret); goto Disp_PushFrame_Exit0; } + DISP_HIGH("handle:%p, uiPlaneId:%d, ref hBD:%p\n", handle, uiPlaneId, hBD); Ret = AMP_BD_Ref(hBD); if (Ret != SUCCESS) { - DISP_ERROR("AMP_BD_Ref fails, error code [%x]!", Ret); + DISP_ERROR("AMP_BD_Ref fails, error code [%x]!\n", Ret); goto Disp_PushFrame_Exit1; } } @@ -3393,6 +3396,17 @@ HRESULT DISP_VID_PopFrame(AMP_DISP_PLANE_ID uiPlaneId, VOID *handle, AMP_BD_HAND } } + BOOL bValid = FALSE; + UINT32 uiRefCnt = 0; + Ret = AMP_BD_GetStatus(hBD, &bValid, &uiRefCnt); + if (Ret != SUCCESS || !bValid || uiRefCnt == 1) { + DISP_ERROR("BD exception, AMP_BD_GetStatus hBD:%p ret=0x%x, valid:%d, " + "refCnt:%d, handle:%p, uiPlaneId:%d\n", hBD, Ret, bValid, + uiRefCnt, handle, uiPlaneId); + Ret = ERR_SWMODEWRONG; + goto Disp_PopFrame_Exit; + } + Ret = AMP_BD_Unref(hBD); if (Ret != SUCCESS) { DISP_ERROR("AMP_BD_Unref fails, error code [%x]!", Ret); @@ -3405,6 +3419,7 @@ HRESULT DISP_VID_PopFrame(AMP_DISP_PLANE_ID uiPlaneId, VOID *handle, AMP_BD_HAND goto Disp_PopFrame_Exit; } + DISP_HIGH("pop hBD:%p, handle:%p, uiPlaneId:%d\n", hBD, handle, uiPlaneId); Disp_PopFrame_Exit: return Ret; } -- 2.7.4