]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
soc: qcom: ocmem: return -EPROBE_DEFER is ocmem is not available
authorDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Mon, 23 Mar 2026 01:20:59 +0000 (03:20 +0200)
committerBjorn Andersson <andersson@kernel.org>
Tue, 24 Mar 2026 02:20:41 +0000 (21:20 -0500)
If OCMEM is declared in DT, it is expected that it is present and
handled by the driver. The GPU driver will ignore -ENODEV error, which
typically means that OCMEM isn't defined in DT. Let ocmem return
-EPROBE_DEFER if it supposed to be used, but it is not probed (yet).

Fixes: 88c1e9404f1d ("soc: qcom: add OCMEM driver")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260323-ocmem-v1-3-ad9bcae44763@oss.qualcomm.com
[bjorn: s/ERR_PTR(dev_err_probe)/dev_err_ptr_probe/
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/soc/qcom/ocmem.c

index d47ce5707fd880e13c73909ba46c9f57b812de03..96ca0b87bfc48585bedf0bb5eb88a157a14cfb41 100644 (file)
@@ -203,10 +203,9 @@ struct ocmem *of_get_ocmem(struct device *dev)
 
        ocmem = platform_get_drvdata(pdev);
        put_device(&pdev->dev);
-       if (!ocmem) {
-               dev_err(dev, "Cannot get ocmem\n");
-               return ERR_PTR(-ENODEV);
-       }
+       if (!ocmem)
+               return dev_err_ptr_probe(dev, -EPROBE_DEFER, "Cannot get ocmem\n");
+
        return ocmem;
 }
 EXPORT_SYMBOL_GPL(of_get_ocmem);