disp: msm: sde: add multirect error status for ubwc and meta

This change adds support for error checking ubwc and meta error status
based off whether REC0 or RECT1 is used.

Change-Id: I7c39755da99a9d6c0d02b4ef16fa93b8ec7458a9
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
このコミットが含まれているのは:
Samantha Tran
2021-02-08 21:33:40 -08:00
コミット 73373271a7
7個のファイルの変更163行の追加18行の削除

ファイルの表示

@@ -4276,15 +4276,18 @@ u32 sde_plane_get_ubwc_error(struct drm_plane *plane)
{
u32 ubwc_error = 0;
struct sde_plane *psde;
struct sde_plane_state *pstate;
if (!plane) {
SDE_ERROR("invalid plane\n");
return 0;
}
psde = to_sde_plane(plane);
pstate = to_sde_plane_state(plane->state);
if (!psde->is_virtual && psde->pipe_hw->ops.get_ubwc_error)
ubwc_error = psde->pipe_hw->ops.get_ubwc_error(psde->pipe_hw);
ubwc_error = psde->pipe_hw->ops.get_ubwc_error(psde->pipe_hw,
pstate->multirect_index);
return ubwc_error;
}
@@ -4292,15 +4295,53 @@ u32 sde_plane_get_ubwc_error(struct drm_plane *plane)
void sde_plane_clear_ubwc_error(struct drm_plane *plane)
{
struct sde_plane *psde;
struct sde_plane_state *pstate;
if (!plane) {
SDE_ERROR("invalid plane\n");
return;
}
psde = to_sde_plane(plane);
pstate = to_sde_plane_state(plane->state);
if (psde->pipe_hw->ops.clear_ubwc_error)
psde->pipe_hw->ops.clear_ubwc_error(psde->pipe_hw);
psde->pipe_hw->ops.clear_ubwc_error(psde->pipe_hw, pstate->multirect_index);
}
u32 sde_plane_get_meta_error(struct drm_plane *plane)
{
u32 meta_error = 0;
struct sde_plane *psde;
struct sde_plane_state *pstate;
if (!plane) {
SDE_ERROR("invalid plane\n");
return 0;
}
psde = to_sde_plane(plane);
pstate = to_sde_plane_state(plane->state);
if (psde->pipe_hw->ops.get_meta_error)
meta_error = psde->pipe_hw->ops.get_meta_error(psde->pipe_hw,
pstate->multirect_index);
return meta_error;
}
void sde_plane_clear_meta_error(struct drm_plane *plane)
{
struct sde_plane *psde;
struct sde_plane_state *pstate;
if (!plane) {
SDE_ERROR("invalid plane\n");
return;
}
psde = to_sde_plane(plane);
pstate = to_sde_plane_state(plane->state);
if (psde->pipe_hw->ops.clear_meta_error)
psde->pipe_hw->ops.clear_meta_error(psde->pipe_hw, pstate->multirect_index);
}
#ifdef CONFIG_DEBUG_FS