Loading msm/sde/sde_crtc.h +18 −0 Original line number Diff line number Diff line Loading @@ -619,6 +619,24 @@ static inline enum sde_crtc_client_type sde_crtc_get_client_type( return cstate->rsc_client ? RT_RSC_CLIENT : RT_CLIENT; } /** * sde_crtc_get_client_type_for_qos - check the crtc type- rt, nrt, rsc_rt, etc. * @crtc: Pointer to crtc */ static inline enum sde_crtc_client_type sde_crtc_get_client_type_for_qos( struct drm_crtc *crtc) { struct sde_crtc_state *cstate = crtc ? to_sde_crtc_state(crtc->state) : NULL; if (!cstate) return NRT_CLIENT; return sde_crtc_get_intf_mode(crtc) == INTF_MODE_WB_LINE ? NRT_CLIENT : (cstate->rsc_client ? RT_RSC_CLIENT : RT_CLIENT); } /** * sde_crtc_is_enabled - check if sde crtc is enabled or not * @crtc: Pointer to crtc Loading msm/sde/sde_plane.c +4 −2 Original line number Diff line number Diff line Loading @@ -376,7 +376,8 @@ static void _sde_plane_set_qos_lut(struct drm_plane *plane, if (fmt && SDE_FORMAT_IS_LINEAR(fmt)) lut_usage = SDE_QOS_LUT_USAGE_LINEAR; else if (psde->features & BIT(SDE_SSPP_SCALER_QSEED3)) else if (psde->features & BIT(SDE_SSPP_SCALER_QSEED3) || psde->features & BIT(SDE_SSPP_SCALER_QSEED3LITE)) lut_usage = SDE_QOS_LUT_USAGE_MACROTILE_QSEED; else lut_usage = SDE_QOS_LUT_USAGE_MACROTILE; Loading Loading @@ -3194,7 +3195,8 @@ static int sde_plane_sspp_atomic_update(struct drm_plane *plane, return 0; pstate->pending = true; psde->is_rt_pipe = (sde_crtc_get_client_type(crtc) != NRT_CLIENT); psde->is_rt_pipe = (sde_crtc_get_client_type_for_qos(crtc) != NRT_CLIENT); _sde_plane_set_qos_ctrl(plane, false, SDE_PLANE_QOS_PANIC_CTRL); _sde_plane_update_properties(plane, crtc, fb); Loading Loading
msm/sde/sde_crtc.h +18 −0 Original line number Diff line number Diff line Loading @@ -619,6 +619,24 @@ static inline enum sde_crtc_client_type sde_crtc_get_client_type( return cstate->rsc_client ? RT_RSC_CLIENT : RT_CLIENT; } /** * sde_crtc_get_client_type_for_qos - check the crtc type- rt, nrt, rsc_rt, etc. * @crtc: Pointer to crtc */ static inline enum sde_crtc_client_type sde_crtc_get_client_type_for_qos( struct drm_crtc *crtc) { struct sde_crtc_state *cstate = crtc ? to_sde_crtc_state(crtc->state) : NULL; if (!cstate) return NRT_CLIENT; return sde_crtc_get_intf_mode(crtc) == INTF_MODE_WB_LINE ? NRT_CLIENT : (cstate->rsc_client ? RT_RSC_CLIENT : RT_CLIENT); } /** * sde_crtc_is_enabled - check if sde crtc is enabled or not * @crtc: Pointer to crtc Loading
msm/sde/sde_plane.c +4 −2 Original line number Diff line number Diff line Loading @@ -376,7 +376,8 @@ static void _sde_plane_set_qos_lut(struct drm_plane *plane, if (fmt && SDE_FORMAT_IS_LINEAR(fmt)) lut_usage = SDE_QOS_LUT_USAGE_LINEAR; else if (psde->features & BIT(SDE_SSPP_SCALER_QSEED3)) else if (psde->features & BIT(SDE_SSPP_SCALER_QSEED3) || psde->features & BIT(SDE_SSPP_SCALER_QSEED3LITE)) lut_usage = SDE_QOS_LUT_USAGE_MACROTILE_QSEED; else lut_usage = SDE_QOS_LUT_USAGE_MACROTILE; Loading Loading @@ -3194,7 +3195,8 @@ static int sde_plane_sspp_atomic_update(struct drm_plane *plane, return 0; pstate->pending = true; psde->is_rt_pipe = (sde_crtc_get_client_type(crtc) != NRT_CLIENT); psde->is_rt_pipe = (sde_crtc_get_client_type_for_qos(crtc) != NRT_CLIENT); _sde_plane_set_qos_ctrl(plane, false, SDE_PLANE_QOS_PANIC_CTRL); _sde_plane_update_properties(plane, crtc, fb); Loading