drm/msm: a6x: Rework qmp_get() error handling
authorAkhil P Oommen <quic_akhilpo@quicinc.com>
Sat, 19 Apr 2025 14:51:32 +0000 (20:21 +0530)
committerRob Clark <robdclark@chromium.org>
Sun, 4 May 2025 16:20:29 +0000 (09:20 -0700)
Fix the following for qmp_get() errors:

1. Correctly handle probe defer for A6x GPUs
2. Ignore other errors because those are okay when GPU ACD is
not required. They are checked again during gpu acd probe.

Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Tested-by: Maya Matuszczyk <maccraft123mc@gmail.com>
Tested-by: Anthony Ruhier <aruhier@mailbox.org>
Patchwork: https://patchwork.freedesktop.org/patch/649346/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gmu.c

index 6bd6d7c..48b4ca8 100644 (file)
@@ -2043,9 +2043,10 @@ int a6xx_gmu_init(struct a6xx_gpu *a6xx_gpu, struct device_node *node)
                goto detach_cxpd;
        }
 
+       /* Other errors are handled during GPU ACD probe */
        gmu->qmp = qmp_get(gmu->dev);
-       if (IS_ERR(gmu->qmp) && adreno_is_a7xx(adreno_gpu)) {
-               ret = PTR_ERR(gmu->qmp);
+       if (PTR_ERR_OR_ZERO(gmu->qmp) == -EPROBE_DEFER) {
+               ret = -EPROBE_DEFER;
                goto detach_gxpd;
        }