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.baryshkov@linaro.org>
Suggested-by: Rob Clark <robdclark@chromium.org>
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Tested-by: Jessica Zhang <quic_jesszhan@quicinc.com> # RB5  (qrb5165)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/484274/
Link: https://lore.kernel.org/r/20220430005210.339-1-quic_jesszhan@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
 
                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;
                }
        }
 
        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;