Re: [PATCH v11 4/7] media: qcom: camss: Add support to populate sub-devices
From: Bryan O'Donoghue
Date: Fri Mar 27 2026 - 18:37:21 EST
On 27/03/2026 21:33, Dmitry Baryshkov wrote:
Other drivers typically call the populate function at the end of theThis becomes fragile. The CSI PHY might be built as a module, which
probe function. In this case, however, it is invoked before the main
resources are enabled. I assume this is because the CSIPHY device
needs to be available early. Aside from that, it looks good to me.
might be loaded later.
Is it any more or less fragile than "simple-mfd" in a DT though ? Krzysztof isn't very much in favour of simple-mfd so this method of population is the alternative to hand.
The CSIPHY driver uses devm_of_phy_get which handles deferred probe. If the PHY module isn't loaded yet when CAMSS tries to get it, CAMSS gets -EPROBE_DEFER and retries.
Reviewed-by: Loic Poulain<loic.poulain@xxxxxxxxxxxxxxxx>And this looks suspicious. What if drivers for submodules are already
@@ -4964,6 +4965,8 @@ static int camss_probe(struct platform_device *pdev)
if (!camss)
return -ENOMEM;
+ devm_of_platform_populate(dev);
+
camss->res = of_device_get_match_data(dev);
atomic_set(&camss->ref_count, 0);
there and start probing once populated? Do they have a chance to access
this ref_count?
Nope, we don't share the camss pointer or any of the data-structures in the existing upstream driver with sub-modules.
---
bod