From patchwork Mon Jul 9 15:41:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 141442 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp2813680ljj; Mon, 9 Jul 2018 08:42:19 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcBzY5xe6FJjJoaHDB5skxm1avCBZb2TCko1JVNPKSAkkXiZfFwinxKU4Ji/KCXH3wI5uyu X-Received: by 2002:a17:902:8308:: with SMTP id bd8-v6mr21268929plb.329.1531150939250; Mon, 09 Jul 2018 08:42:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531150939; cv=none; d=google.com; s=arc-20160816; b=ooz8fHMxLuGr9JVCvC8azylL4Z6dJhiHj7Q0qFWUNd7atBh25INSca1Xgp5R9GHZl3 iLeeakodyhBlqGZIYqMteo3ldWvhtUVq3guVXbboSAQYjz+JWls/7ZPNiBp8zyzNno8A CWKepQ8HJ7ntApxtoWSAbfITtPpDUI6w7HZZtDWUbM3dMLRftZ4+F2WNWqbW11h/qr5Q 2+7SWCxm8D1ceLOnGJ5SAxs4TCjopu0GdQZAkzDFk/D60cuksfFNOKlQNGLC4USjEXTa qmiNIYjlZb4tEeXZm5otgKtv3AbTZJ21bqjtNXMT3ZqsIwhcP7IQ/En0ksd7HyL/o4J7 zU2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=NI/NAiVamX5JscPMOlLTMlvmZPXKGe3fL9XuOVxkFH8=; b=JVQEz3xpKpgU21uV6cV1kpTIwhmLpyEs2mtp9l1iS1yTPH9ExkSqqZuY9PIZZXcxGX PoXF5t/ppcTvk0PVSXoVsvJkM6+O6fN+rKD7MQ61NaqY2ytDBIq4bgZH0iCCuOXbIgf6 8j3AQpBeezXh0koD/W5ByqB7WGNe2oWWYPHPrIaFfPP7KJR8CeJmMKklJYmhKW7mZe7F Xtvin9fOKZf8Q9BSRL1JrGzQPTU+4pgdQmxO5KZI7GwwbQ9zOFg4H4o7+wlVIAHjqUc/ nhVMiDgpsI0Z04t7gTiwnn66EtpUj6fu/4a99e5qYcVb8G8MSYJQC2oQhIiXQ+9JxuKg ml6Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x62-v6si16608749pfd.124.2018.07.09.08.42.18; Mon, 09 Jul 2018 08:42:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933714AbeGIPmR (ORCPT + 30 others); Mon, 9 Jul 2018 11:42:17 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:45086 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932881AbeGIPmL (ORCPT ); Mon, 9 Jul 2018 11:42:11 -0400 Received: by mail-oi0-f66.google.com with SMTP id q11-v6so11139551oic.12; Mon, 09 Jul 2018 08:42:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NI/NAiVamX5JscPMOlLTMlvmZPXKGe3fL9XuOVxkFH8=; b=uboHKQ1LE7s7uCE8h8/8F6U1jY6Bd6Gqq1Gn21ZjdIGN1Hxp5dyveyflXqmq3ByDQv VpVc1LwmdGhUKiSSCKZkYCe75FTvrrCq+bZ7VEo7hHvOmrvlr/biM1gOr2XAepQuyKyk GZWiDWy76PZ79LaujCFWPOvPx7v4JNbiAMXgROjGUK0+IrNQKVykHyNGpd56nDUPSp4B MAr5NtwMG0/eu8E39+53WHNSytoMDUyEsS3rmubeioigSmkcJACClzomUY7vrxXD30Q3 u59E2yznh7NHvZK1LHwUU6GCjDgFphelgeXO4X1IyeSJPDg490WEqFWFgl1wG5/NaWM9 CNiQ== X-Gm-Message-State: APt69E3I7Lgcp0ykxSdUkbiZW5JKZmv9sQ1yzMctkGTGDPHBFauqh73/ Pb9eUv+63riGS7dtJBPT/w== X-Received: by 2002:aca:b641:: with SMTP id g62-v6mr26095324oif.71.1531150930783; Mon, 09 Jul 2018 08:42:10 -0700 (PDT) Received: from localhost.localdomain (24-223-123-72.static.usa-companies.net. [24.223.123.72]) by smtp.googlemail.com with ESMTPSA id z196-v6sm30759391oig.12.2018.07.09.08.42.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Jul 2018 08:42:10 -0700 (PDT) From: Rob Herring To: Greg Kroah-Hartman Cc: Linus Walleij , Alexander Graf , Bjorn Andersson , "Rafael J. Wysocki" , Kevin Hilman , Ulf Hansson , Joerg Roedel , Robin Murphy , Mark Brown , Frank Rowand , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, boot-architecture@lists.linaro.org, linux-arm-kernel@lists.infradead.org, Pavel Machek , Len Brown , linux-pm@vger.kernel.org Subject: [PATCH v4 6/6] PM / Domains: Stop deferring probe at the end of initcall Date: Mon, 9 Jul 2018 09:41:53 -0600 Message-Id: <20180709154153.15742-7-robh@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180709154153.15742-1-robh@kernel.org> References: <20180709154153.15742-1-robh@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All PM domain drivers must be built-in (at least those using DT), so there is no point deferring probe after initcalls are done. Continuing to defer probe may prevent booting successfully even if managing PM domains is not required. This can happen if the user failed to enable the driver or if power-domains are added to a platform's DT, but there is not yet a driver (e.g. a new DTB with an old kernel). Call the driver core function driver_deferred_probe_check_init_done() instead of just returning -EPROBE_DEFER to stop deferring probe when initcalls are done. Acked-by: "Rafael J. Wysocki" Cc: Kevin Hilman Cc: Ulf Hansson Cc: Pavel Machek Cc: Len Brown Cc: Greg Kroah-Hartman Cc: linux-pm@vger.kernel.org Signed-off-by: Rob Herring --- v4: - Add Rafael's ack v3: - Update to new function name drivers/base/power/domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.17.1 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 4925af5c4cf0..8c12213875c6 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -2253,7 +2253,7 @@ static int __genpd_dev_pm_attach(struct device *dev, struct device_node *np, mutex_unlock(&gpd_list_lock); dev_dbg(dev, "%s() failed to find PM domain: %ld\n", __func__, PTR_ERR(pd)); - return -EPROBE_DEFER; + return driver_deferred_probe_check_state(dev); } dev_dbg(dev, "adding to PM domain %s\n", pd->name);