From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bjorn Andersson Subject: Re: [PATCH] gpiolib: handle probe deferrals better Date: Fri, 1 Apr 2016 10:52:37 -0700 Message-ID: <20160401175237.GF8929@tuxbot> References: <1459511048-24084-1-git-send-email-linus.walleij@linaro.org> <1766024.riJEdmHPZI@ws-stein> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-gpio-owner@vger.kernel.org To: Linus Walleij Cc: Alexander Stein , "linux-gpio@vger.kernel.org" , Alexandre Courbot , Linux Input , Tomeu Vizoso , Guenter Roeck List-Id: linux-input@vger.kernel.org On Fri 01 Apr 06:03 PDT 2016, Linus Walleij wrote: > On Fri, Apr 1, 2016 at 2:16 PM, Alexander Stein > wrote: > > > I noticed you fiddle with late_initcall_sync. Sorry, I did not mention it: > > gpio_mcp23s08 as well as gpio_keys are loaded as modules, so late_initcall_* > > should not affect it. > > I don't get this. I think probe deferral is only used to defer > initcalls used for built-in drivers. > FWIW, upon matching a device to a driver you will end up in really_probe(), which if the called probe function returns -EPROBE_DEFER will put the device on a deferred-probe-list. A worker is triggered upon subsequent binds that runs through this list and retries the probes, but only once something else successfully probes, potentially providing the missing resources. So it does not treat builtins and modules differently. Regards, Bjorn