From c4f0062e438000d5e682b7dd1c74e830a2c448a7 Mon Sep 17 00:00:00 2001 From: hmz007 <hmz007@gmail.com> Date: Thu, 9 Feb 2023 16:33:23 +0800 Subject: [PATCH] rockchip: drmhwc: fix cluster two win mode for rk356x This patch fixes error in vop2_cluster_two_win_mode_check(): if ((actual_w + xoffset % 16) > 2048) { DRM_ERROR("%s act_w(%d) + xoffset(%d) / 16 << 2048 in two win mode\n", Signed-off-by: hmz007 <hmz007@gmail.com> Change-Id: Icddb00aa0b403f41803fc1f21083141d844d3dfc --- .../drmhwc2/rockchip/platform/rk356x/drmvop356x.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hardware/rockchip/hwcomposer/drmhwc2/rockchip/platform/rk356x/drmvop356x.cpp b/hardware/rockchip/hwcomposer/drmhwc2/rockchip/platform/rk356x/drmvop356x.cpp index dc0b5f3c60a..ea749aed8aa 100644 --- a/hardware/rockchip/hwcomposer/drmhwc2/rockchip/platform/rk356x/drmvop356x.cpp +++ b/hardware/rockchip/hwcomposer/drmhwc2/rockchip/platform/rk356x/drmvop356x.cpp @@ -680,7 +680,7 @@ int Vop356x::MatchPlane(std::vector<DrmCompositionPlane> *composition_planes, ctx.state.bClu0Used = true; ctx.state.iClu0UsedZ = zpos; ctx.state.iClu0UsedDstXOffset = (*iter_layer)->display_frame.left; - if(input_w > 2048 || output_w > 2048 || eotf != TRADITIONAL_GAMMA_SDR || + if(input_w > 2032 || output_w > 2032 || eotf != TRADITIONAL_GAMMA_SDR || ((*iter_layer)->transform & (DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270)) != 0){ ctx.state.bClu0TwoWinMode = false; }else{ @@ -690,7 +690,7 @@ int Vop356x::MatchPlane(std::vector<DrmCompositionPlane> *composition_planes, ctx.state.bClu1Used = true; ctx.state.iClu1UsedZ = zpos; ctx.state.iClu1UsedDstXOffset = (*iter_layer)->display_frame.left; - if(input_w > 2048 || output_w > 2048 || eotf != TRADITIONAL_GAMMA_SDR || + if(input_w > 2032 || output_w > 2032 || eotf != TRADITIONAL_GAMMA_SDR || ((*iter_layer)->transform & (DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270)) != 0){ ctx.state.bClu1TwoWinMode = false; }else{ @@ -964,7 +964,7 @@ int Vop356x::MatchPlaneMirror(std::vector<DrmCompositionPlane> *composition_plan ctx.state.bClu0Used = true; ctx.state.iClu0UsedZ = zpos; ctx.state.iClu0UsedDstXOffset = (*iter_layer)->display_frame.left; - if(input_w > 2048 || output_w > 2048 || + if(input_w > 2032 || output_w > 2032 || ((*iter_layer)->transform & (DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270)) != 0){ ctx.state.bClu0TwoWinMode = false; }else{ @@ -974,7 +974,7 @@ int Vop356x::MatchPlaneMirror(std::vector<DrmCompositionPlane> *composition_plan ctx.state.bClu1Used = true; ctx.state.iClu1UsedZ = zpos; ctx.state.iClu1UsedDstXOffset = (*iter_layer)->display_frame.left; - if(input_w > 2048 || output_w > 2048 || + if(input_w > 2032 || output_w > 2032 || ((*iter_layer)->transform & (DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270)) != 0){ ctx.state.bClu1TwoWinMode = false; }else{