RK3576: rockchip-pm-domain fw_devlink device-link failures for nested power-domain nodes
Muhammed Subair <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.ports.arm.rockchip,gmane.comp.video.dri.devel,gmane.linux.ports.arm.kernel |
|---|---|
| Message-ID | <DU0P190MB24456FE9DB02005BCDDEC336BCDA2@DU0P190MB2445.EURP190.PROD.OUTLOOK.COM> |
Hi Rockchip/kernel folks, I am bringing up an RK3576 board on a 7.1.x based kernel and I see the following early boot errors from fw_devlink/device-links: [ 0.260388] rockchip-pm-domain 27380000.power-management:power-controller: Failed to create device link (0x180) with supplier soc for /soc/power-management@27380000/power-controller/power-domain@0/power-domain@1 [ 0.262168] rockchip-pm-domain 27380000.power-management:power-controller: Failed to create device link (0x180) with supplier soc for /soc/power-management@27380000/power-controller/power-domain@0/power-domain@1/power-domain@2 ... [ 0.285927] rockchip-pm-domain 27380000.power-management:power-controller: Failed to create device link (0x180) with supplier soc for /soc/power-management@27380000/power-controller/power-domain@18/power-domain@17 The board otherwise boots and the affected domains appear functional. PCIe/NVMe, HDMI, Ethernet, etc. are working. The RK3576 power-controller node has nested power-domain children. These child domain nodes contain properties such as `clocks` and `pm_qos`, similar to RK3588/RK3568, and `#power-domain-cells` is present as required by `rockchip,power-controller.yaml`. My current understanding is that the Rockchip PM domain driver consumes these child nodes internally and registers the provider from the top-level `power-controller` via `of_genpd_add_provider_onecell()`. However, fw_devlink recurses into the child fwnodes and tries to create proxy supplier links for dependencies such as `clocks`. Since the child power-domain nodes are not normal devices, this ends up as failed links from `rockchip-pm-domain` to supplier `soc`. Is this expected noise for nested Rockchip power-domain nodes, or is RK3576 missing a DT/driver annotation to prevent fw_devlink from trying to create device links for these internal child nodes? I compared with RK3588/RK3568 and did not find an obvious missing property in RK3576. I also do not want to use `fw_devlink=off`, since that hides the issue globally. Could you advise whether the right fix should be: 1. a DT change for RK3576 power-domain nodes, 2. a Rockchip PM-domain driver change to mark child fwnodes as internal/not devices for fw_devlink, or 3. an OF/fw_devlink change to avoid creating proxy links from generic power-domain child nodes? Thanks, Subair