On 30/08/2023 15:09, Bartosz Golaszewski wrote: >>>>> + >>>>> + return gen_pool_virt_to_phys(pool->genpool, (unsigned long)vaddr); >>>>> +} >>>>> +EXPORT_SYMBOL_GPL(qcom_shm_bridge_to_phys_addr); >>>>> + >>>>> +static int qcom_shm_bridge_probe(struct platform_device *pdev) >>>>> +{ >>>>> + struct qcom_shm_bridge_pool *default_pool; >>>>> + struct device *dev = &pdev->dev; >>>>> + int ret; >>>>> + >>>>> + /* >>>>> + * We need to wait for the SCM device to be created and bound to the >>>>> + * SCM driver. >>>>> + */ >>>>> + if (!qcom_scm_is_available()) >>>>> + return -EPROBE_DEFER; >>>> >>>> I think we miss here (and in all other drivers) device links to qcm. >>>> >>> >>> Well, SCM, once probed, cannot be unbound. What would device links >>> guarantee above that? >> >> Runtime PM, probe ordering (dependencies) detection. >> > > Shouldn't we cross that bridge when we get there? SCM has no support > for runtime PM. Probe ordering is quite well handled with a simple > probe deferral. This is also not a parent-child relationship. SHM > Bridge calls into the trustzone using SCM, but SCM is also a user of > SHM Bridge. OK Best regards, Krzysztof