]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
interconnect: qcom: icc-rpmh: probe defer incase of missing QoS clock dependency
authorRaviteja Laggyshetty <quic_rlaggysh@quicinc.com>
Wed, 11 Sep 2024 09:45:16 +0000 (09:45 +0000)
committerGeorgi Djakov <djakov@kernel.org>
Tue, 22 Oct 2024 08:06:17 +0000 (11:06 +0300)
Return -EPROBE_DEFER from interconnect provider incase probe defer is
received from devm_clk_bulk_get_all(). This would help in reattempting
the inteconnect driver probe, once the required QoS clocks are
available.

Suggested-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Raviteja Laggyshetty <quic_rlaggysh@quicinc.com>
Reviewed-by: Konrad Dybcio <konradybcio@kernel.org>
Fixes: 0a7be6b35da8 ("interconnect: qcom: icc-rpmh: Add QoS configuration support")
Link: https://lore.kernel.org/r/20240911094516.16901-1-quic_rlaggysh@quicinc.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>
drivers/interconnect/qcom/icc-rpmh.c

index f49a8e0cb03c06b162e649ac513470f3fc709004..adacd6f7d6a8f76217e19a79dcb32de7283feb40 100644 (file)
@@ -311,6 +311,9 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev)
                }
 
                qp->num_clks = devm_clk_bulk_get_all(qp->dev, &qp->clks);
+               if (qp->num_clks == -EPROBE_DEFER)
+                       return dev_err_probe(dev, qp->num_clks, "Failed to get QoS clocks\n");
+
                if (qp->num_clks < 0 || (!qp->num_clks && desc->qos_clks_required)) {
                        dev_info(dev, "Skipping QoS, failed to get clk: %d\n", qp->num_clks);
                        goto skip_qos_config;