On Mon, Aug 17, 2026 at 03:18:30PM +0200, Konrad Dybcio wrote:
> On 8/15/26 3:25 PM, Shawn Guo wrote:
> > On Nord, ADSP0/1/2 share HPASS-domain resources (PLLs, AG_NOC, RSCp,
> > CESTA, THROTTLE, QTMR) owned by ADSP0, and their firmware cannot
> > tolerate one member being started or stopped independently of the
> > others. Modeling that requires each PAS instance to know which other
> > instances it is grouped with.
> 
> [...]
> 
> > +static struct qcom_pas_cluster *qcom_pas_cluster_get(struct device_node 
> > *node)
> > +{
> > +   struct qcom_pas_cluster *cluster;
> > +
> > +   mutex_lock(&qcom_pas_cluster_list_lock);
> 
> Use scoped mutex guards

Will do in the next version, thanks!

> 
> [...]
> 
> > +static int qcom_pas_cluster_init(struct qcom_pas *pas, struct device_node 
> > *np)
> > +{
> > +   struct device_node *root_node;
> > +   bool is_root;
> > +
> > +   root_node = of_parse_phandle(np, "qcom,cluster-root", 0);
> > +   if (!root_node)
> > +           return 0;
> > +
> > +   is_root = root_node == np;
> > +
> > +   /*
> > +    * A non-root member is useless without its root: it can never be
> > +    * booted, since its boot has to be sequenced after the root's. Reject
> > +    * it here rather than at first boot, so that a DT enabling a dependent
> > +    * DSP but not the one owning the shared resources fails loudly and
> > +    * early.
> > +    */
> > +   if (!is_root && !of_device_is_available(root_node)) {
> 
> Let's use fwnode_device_is_available() instead, even though there's
> megatons of OF-specific calls across the framework

Noted! But this will probably be gone anyway with Krzysztof's comment
that property "qcom,cluster-root" is not really necessary.

Shawn

Reply via email to