Regression: PM: domains: Delete usage of driver_deferred_probe_check_state

Peng Fan peng.fan at nxp.com
Mon Aug 15 23:21:40 PDT 2022


Hi Saravana,

The following two patches breaks NXP i.MX8ULP, but I think
it may break others use SCMI.

commit 5a46079a96451cfb15e4f5f01f73f7ba24ef851a
Author: Saravana Kannan <mailto:saravanak at google.com>
Date:   Wed Jun 1 00:06:57 2022 -0700

    PM: domains: Delete usage of driver_deferred_probe_check_state()

    Now that fw_devlink=on by default and fw_devlink supports
    "power-domains" property, the execution will never get to the point
    where driver_deferred_probe_check_state() is called before the supplier
    has probed successfully or before deferred probe timeout has expired.

    So, delete the call and replace it with -ENODEV.

    Tested-by: Geert Uytterhoeven <mailto:geert+renesas at glider.be>
    Reviewed-by: Ulf Hansson <mailto:ulf.hansson at linaro.org>
    Signed-off-by: Saravana Kannan <mailto:saravanak at google.com>
    Link: https://lore.kernel.org/r/20220601070707.3946847-2-saravanak@google.com
    Signed-off-by: Greg Kroah-Hartman <mailto:gregkh at linuxfoundation.org>

commit 9cbffc7a59561be950ecc675d19a3d2b45202b2b
Author: Saravana Kannan <mailto:saravanak at google.com>
Date:   Wed Jun 1 00:07:05 2022 -0700

    driver core: Delete driver_deferred_probe_check_state()

    The function is no longer used. So delete it.

    Tested-by: Geert Uytterhoeven <mailto:geert+renesas at glider.be>
    Signed-off-by: Saravana Kannan <mailto:saravanak at google.com>
    Link: https://lore.kernel.org/r/20220601070707.3946847-10-saravanak@google.com
    Signed-off-by: Greg Kroah-Hartman <mailto:gregkh at linuxfoundation.org>

The i.MX8ULP mmc device node use
"power-domains = <&scmi_devpd IMX8ULP_PD_USDHC0>;"

The scmi firmware node as below:
        firmware {
                scmi {
                        compatible = "arm,scmi-smc";
                        arm,smc-id = <0xc20000fe>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        shmem = <&scmi_buf>;

                        scmi_devpd: protocol at 11 {
                                reg = <0x11>;
                                #power-domain-cells = <1>;
                        };

                        scmi_sensor: protocol at 15 {
                                reg = <0x15>;
                                #thermal-sensor-cells = <1>;
                        };
                };
        };

When sdhc driver probe, the scmi power domain provider has not
been registered. So __genpd_dev_pm_attach directly return
-ENODEV.

device_links_check_suppliers should already check suppliers,
but scmi protocol device not have compatible, so 
of_link_to_phandle
      |-> of_get_compat_node
use the parent node of scmi protocol as supplier if I understand
correct.

I am not sure whether we need to revert the above two patches,
or do you have other suggestions?

Thanks,
Peng.



More information about the linux-arm-kernel mailing list