On 18/02/2025 15:46, Bryan O'Donoghue wrote:
+ ret = qcom_cc_attach_pds(&pdev->dev, &video_cc_sm8550_desc);
+ if (ret)
+ return ret;
+
ret = devm_pm_runtime_enable(&pdev->dev);
if (ret)
return ret;
What's the difference between doing the attach here or doing it in
really_probe() ?
There doesn't seem to be any difference except that we will have an
additional delay introduced.
Are you describing a race condition ?
I don't see _logic_ here to moving the call into the controller's higher
level probe.
I see you're saying do this before waking up the local PLLs prior to
really_probe.
hmm.. the existing code works for me on the CRD but not on the Dell
Insprion14 so I missed this on my series.
Instead of pushing qcom_cc_attach_pds() back up one level and having to
do that over and over again for each clock controller that has multiple
power domains, we could just move the configure pll logic to a callback.
Add a new callback to qcom_cc_desc()->configure_plls()
Then qcom_cc_really_probe() would look like:
ret = devm_pm_domain_attach_list();
if (ret < 0 && ret != -EEXIST);
return ret;
desc->configure_plls();
There's no point in having devm_pm_domain_attach_list() twice within <
20 LOC we should just force the sequencing in the right order once and
IMO do it in really_probe() so that we don't keep adding custom logic to
multi-pd controllers.
Its a generic problem we can solve closer to the core logic.
---
bod