pvr_power_domains_init() currently fails probe with -ENOENT when the device tree node has no "power-domains" property. On some platforms (e.g. SpacemiT K3) the GPU power domain is brought up by the bootloader and is not modeled or managed by Linux, so there is legitimately no power-domains phandle to attach.
Treat a missing "power-domains" property as "nothing to attach" and continue probing, rather than failing. Signed-off-by: Sterling-Ash <[email protected]> --- drivers/gpu/drm/imagination/pvr_power.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/imagination/pvr_power.c b/drivers/gpu/drm/imagination/pvr_power.c index a71d5b35601e..5751e2d814b0 100644 --- a/drivers/gpu/drm/imagination/pvr_power.c +++ b/drivers/gpu/drm/imagination/pvr_power.c @@ -635,6 +635,15 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev) domain_count = of_count_phandle_with_args(dev->of_node, "power-domains", "#power-domain-cells"); + if (domain_count == -ENOENT) { + /* + * No "power-domains" property in the device tree: the platform + * handles power domains transparently or at the firmware/bootloader level, + * so there is no domain to attach. Treat this as non-fatal. + */ + err = 0; + goto out; + } if (domain_count < 0) { err = domain_count; goto out; -- 2.34.1
