Re: [PATCH 1/3] drm/msm/disp/dpu1: allow reservation even if dspps are not available.

From: Dmitry Baryshkov
Date: Tue Jan 17 2023 - 11:40:39 EST


On 17/01/2023 18:35, Dmitry Baryshkov wrote:
On 17/01/2023 18:21, Kalyan Thota wrote:
if any topology requests for dspps and catalogue doesn't have the
allocation, avoid failing the reservation.

This can pave way to build logic allowing composer fallbacks
for all the color features that are handled in dspp.

Signed-off-by: Kalyan Thota <quic_kalyant@xxxxxxxxxxx>
---
  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
index 73b3442..c8899ae 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
@@ -343,7 +343,13 @@ static bool _dpu_rm_check_lm_and_get_connected_blks(struct dpu_rm *rm,
          return true;
      idx = lm_cfg->dspp - DSPP_0;
-    if (idx < 0 || idx >= ARRAY_SIZE(rm->dspp_blks)) {
+
+    if (idx < 0) {

The change doesn't correspond to commit message.

+        DPU_DEBUG("lm doesn't have dspp, ignoring the request %d\n", lm_cfg->dspp);
+        return true;
+    }
+
+    if (idx >= ARRAY_SIZE(rm->dspp_blks)) {
          DPU_ERROR("failed to get dspp on lm %d\n", lm_cfg->dspp);
          return false;
      }

If you'd like to remove duplicate for the (idx >= ARRAY_SIZE) check, I'd suggest dropping the second one


I've misread the patch. However I don't see, why would one request DSPP_NONE while specifying topology->num_dspp. I think that you are trying to put additional logic into a function that should just check for the available resources.

--
With best wishes
Dmitry