From patchwork Tue Jul 12 16:19:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lee Jones X-Patchwork-Id: 71869 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp559920qga; Tue, 12 Jul 2016 09:20:35 -0700 (PDT) X-Received: by 10.66.248.65 with SMTP id yk1mr5502673pac.56.1468340435491; Tue, 12 Jul 2016 09:20:35 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h2si4279084pax.194.2016.07.12.09.20.35; Tue, 12 Jul 2016 09:20:35 -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; dkim=pass header.i=@linaro.org; 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=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933522AbcGLQUa (ORCPT + 30 others); Tue, 12 Jul 2016 12:20:30 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:35030 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932274AbcGLQUY (ORCPT ); Tue, 12 Jul 2016 12:20:24 -0400 Received: by mail-wm0-f42.google.com with SMTP id f65so106024777wmi.0 for ; Tue, 12 Jul 2016 09:20:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6sxHdbO5FKr2npNbXQtXC6HaUgn+wUaNPUcVOpdsc94=; b=P6h4i02D20/hRVXh7vruoXm7qLjhqMr5Fqb5yNgmOUs8yHV5ZM843g/pUJFh0Ytsr6 NtqT2K/sJ2YMO/jbdlc4TYVN21BTJXZCwNLcgXm8sz0craaLxlWlC3RSbMMRq8vD7Onb ksIyBtsMqziowsjtsYLObewxrewBylVMxnT8M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6sxHdbO5FKr2npNbXQtXC6HaUgn+wUaNPUcVOpdsc94=; b=jhGC4BA77+XU2NlLansctT6qBTmXJ2daBLFVUER+oSleCUs/F9tMyyEKBRMSpFuNZK +VrNq/Eoy/KqaZF9nsP5hJ5GFqMUM1qBL9Xw0px8BxemKA2f+FC9RevS+L9Z0rcNtUj9 X6CcnHx8NccHxHBxBbGY6nQZD2j+VDAC1So/ATEu00wHxh2uerkX3o6a4ZqHEd1aQ7+Q yBkxG80mqYMyjLVRCphbTz4o77Efb0EdXOeyvdy5nZTas2VYPL+ViFxuzfRHbdtOtzSU ZqEDbpuv30FWO5dVTQi7r7P31IlCViIcb5KOKXFiGVLObtLFlL2kx+Ei7CKAMMZVGIVD uIKQ== X-Gm-Message-State: ALyK8tKUah8AzYQ8GYnmdVK1QtsWILI7fYbrJmQKF4g6Z7vIAvhbWyzowNKWAgMgn439dfYy X-Received: by 10.28.148.21 with SMTP id w21mr4854592wmd.9.1468340423040; Tue, 12 Jul 2016 09:20:23 -0700 (PDT) Received: from localhost.localdomain (host81-129-170-195.range81-129.btcentralplus.com. [81.129.170.195]) by smtp.gmail.com with ESMTPSA id e16sm7338489wma.12.2016.07.12.09.20.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Jul 2016 09:20:22 -0700 (PDT) From: Lee Jones To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: kernel@stlinux.com, maxime.coquelin@st.com, patrice.chotard@st.com, gregkh@linuxfoundation.org, arnd@arndb.de, peter.griffin@linaro.org, Lee Jones Subject: [PATCH 1/2] driver-core: Add externally callable function to trigger deferred probes Date: Tue, 12 Jul 2016 17:19:26 +0100 Message-Id: <20160712161927.7521-2-lee.jones@linaro.org> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20160712161927.7521-1-lee.jones@linaro.org> References: <20160712161927.7521-1-lee.jones@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Deferred probes are currently only re-executed if new drivers are successfully registered and probed. Drivers which defer their probes based on things like missing firmware located on rootfs will sometimes only be re-probed if kernel modules are found. Unfortunately, this is fragile and can not be guaranteed or relied upon. This call allows us to trigger probe re-execution at any point during boot. For instance after rootfs is mounted in order to collect firmwares in rootfs. Tested-by: Peter Griffin Signed-off-by: Lee Jones --- drivers/base/dd.c | 8 ++++++++ include/linux/device.h | 1 + 2 files changed, 9 insertions(+) -- 2.9.0 diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 16688f5..ab20851 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -203,6 +203,14 @@ void device_unblock_probing(void) } /** + * deferred_probe_tigger() - Trigger a deferred probe + */ +void deferred_probe_trigger(void) +{ + driver_deferred_probe_trigger(); +} + +/** * deferred_probe_initcall() - Enable probing of deferred devices * * We don't want to get in the way when the bulk of drivers are getting probed. diff --git a/include/linux/device.h b/include/linux/device.h index 38f0281..d441471 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -293,6 +293,7 @@ extern struct device_driver *driver_find(const char *name, struct bus_type *bus); extern int driver_probe_done(void); extern void wait_for_device_probe(void); +extern void deferred_probe_trigger(void); /* sysfs interface for exporting driver attributes */