> +static int amd_resume_child_device(struct device *dev, void *data) > +{ > + struct sdw_slave *slave = dev_to_sdw_dev(dev); > + int ret; > + > + if (!slave->probed) { > + dev_dbg(dev, "skipping device, no probed driver\n"); > + return 0; > + } > + if (!slave->dev_num_sticky) { > + dev_dbg(dev, "skipping device, never detected on bus\n"); > + return 0; > + } > + if (!pm_runtime_suspended(dev)) > + return 0; > + ret = pm_request_resume(dev); I still don't get why the test above was needed. It's racy and brings limited benefits. > + if (ret < 0) > + dev_err(dev, "pm_request_resume failed: %d\n", ret); > + > + return ret; > +}