Currently, dpu_hw_lm_collect_misr returns EINVAL if CRC is disabled.
This causes a lot of spam in the DRM debug logs as it's called for every
vblank.

Instead of returning EINVAL when CRC is disabled in
dpu_hw_lm_collect_misr, let's return ENODATA and add an extra ENODATA check
before the debug log in dpu_crtc_get_crc.

Changes since V1:
- Added reported-by and suggested-by tags

Reported-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
Suggested-by: Rob Clark <robdcl...@chromium.org>
Signed-off-by: Jessica Zhang <quic_jessz...@quicinc.com>
Tested-by: Jessica Zhang <quic_jessz...@quicinc.com> # RB5  (qrb5165)
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c  | 3 ++-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 7763558ef566..16ba9f9b9a78 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -204,7 +204,8 @@ static int dpu_crtc_get_crc(struct drm_crtc *crtc)
                rc = m->hw_lm->ops.collect_misr(m->hw_lm, &crcs[i]);
 
                if (rc) {
-                       DRM_DEBUG_DRIVER("MISR read failed\n");
+                       if (rc != -ENODATA)
+                               DRM_DEBUG_DRIVER("MISR read failed\n");
                        return rc;
                }
        }
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
index 86363c0ec834..462f5082099e 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
@@ -138,7 +138,7 @@ static int dpu_hw_lm_collect_misr(struct dpu_hw_mixer *ctx, 
u32 *misr_value)
        ctrl = DPU_REG_READ(c, LM_MISR_CTRL);
 
        if (!(ctrl & LM_MISR_CTRL_ENABLE))
-               return -EINVAL;
+               return -ENODATA;
 
        if (!(ctrl & LM_MISR_CTRL_STATUS))
                return -EINVAL;
-- 
2.35.1

Reply via email to