linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sebastian Reichel <sre@kernel.org>
To: NeilBrown <neilb@suse.de>
Cc: Pavel Machek <pavel@ucw.cz>,
	pali.rohar@gmail.com, kernel list <linux-kernel@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-omap@vger.kernel.org, tony@atomide.com, khilman@kernel.org,
	aaro.koskinen@iki.fi, ivo.g.dimitrov.75@gmail.com,
	patrikbachan@gmail.com, Samuel Ortiz <sameo@linux.intel.com>,
	Lee Jones <lee.jones@linaro.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	GTA04 owners <gta04-owner@goldelico.com>,
	linux-pm@vger.kernel.org
Subject: Re: twl4030_charger: need changes to get probed?
Date: Mon, 9 Mar 2015 12:14:10 +0100	[thread overview]
Message-ID: <20150309111410.GB3914@earth> (raw)
In-Reply-To: <20150309110653.7532613c@notabene.brown>

[-- Attachment #1: Type: text/plain, Size: 2746 bytes --]

Hi,

On Mon, Mar 09, 2015 at 11:06:53AM +1100, NeilBrown wrote:
> On Sat, 7 Mar 2015 22:01:02 +0100 Sebastian Reichel <sre@debian.org> wrote:
> > platform_driver_probe() does not support deferred probing.
> > 
> > Neil, can you take this patch into your series for the next round?
> 
> I could, but I do wonder if it is the right thing to do.
> 
> Shouldn't we fix platform_driver_probe() to support deferred probing.

well most drivers use platform_driver_register anyways. Other
subsystems, like e.g. i2c have converted all drivers already.
In drivers/power/ there are only three drivers using
platform_driver_probe:

drivers/power/avs/smartreflex.c - ok here
drivers/power/reset/brcmstb-reboot.c - looks ok, too
drivers/power/twl4030_charger.c - should probably be converted

> As I understand it, it refused to retry a probe if there is an error, and the
> comments suggest that such retrying is avoided because it would be a waste
> of time:
> 
> 	/*
> 	 * Prevent driver from requesting probe deferral to avoid further
> 	 * futile probe attempts.
> 	 */
> 
> In this case, it isn't futile.

All drivers would benefit of being probed again if they returned
EPROBEDEFER, but their probe function can't be called again if
they use driver_platform_probe, since the probe function will be
unloaded when it should be called again. Apart from that the
.probe function pointer is not set. Thus trying to probe the
driver again at a later point is "a waste of time" and "futile",
since it will definitely fail.

> Earlier there is a comment saying:
> 
>  * Use this instead of platform_driver_register() when you know the device
>  * is not hotpluggable and has already been registered, and you want to
>  * remove its run-once probe() infrastructure from memory after the driver
>  * has bound to the device.
> 
> I presume all this applies.  I assume that the only problem is a probe-order
> thing.  So maybe we should fix platform_driver_probe() to do the right thing
> with -EPROBEDEFER??
> 
> Trouble is, I really don't understand the  point or mechanism for
> platform_driver_probe(), so I cannot suggest anything.
> But I have been annoyed before that platform_driver_probe doesn't cope with
> EPROBEDEFER, so I would like it fixed.

platform_driver_probe is not about probe-order, but about not having
the probe function in memory once the driver is loaded. So the probe
function cannot be called again. If you don't want this use
platform_driver_register, as most drivers actually do.

I guess we should add some coccinelle scripts for detection of
potentially broken drivers (e.g. everything requesting gpios/pinctrl
together with platform_driver_register).

-- Sebastian

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2015-03-09 11:14 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-24  4:33 [PATCH 00/15] Enhance twl4030_charger functionality NeilBrown
2015-02-24  4:33 ` [PATCH 02/15] twl4030_charger: use devm_request_threaded_irq NeilBrown
2015-02-24  4:33 ` [PATCH 03/15] twl4030_charger: use devres for power_supply_register and kzalloc NeilBrown
2015-03-07 20:25   ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 01/15] power_supply core: support use of devres to register/unregister a power supply NeilBrown
2015-02-26  2:25   ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 06/15] twl4030_charger: split uA calculation into a function NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-04  9:20     ` NeilBrown
2015-02-24  4:33 ` [PATCH 07/15] twl4030_charger: allow fine control of charger current NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-04  6:47     ` NeilBrown
2015-03-04 10:24       ` Pavel Machek
2015-03-07 20:32         ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 08/15] twl4030_charger: distinguish between USB current and 'AC' current NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-04  6:53     ` NeilBrown
2015-02-24  4:33 ` [PATCH 05/15] twl4030_charger: trust phy to determine when USB power is available NeilBrown
2015-02-24  4:33 ` [PATCH 04/15] twl4030_charger: use runtime_pm to keep usb phy active while charging NeilBrown
2015-02-25  7:24   ` Lee Jones
2015-03-05  5:48     ` NeilBrown
2015-02-24  4:33 ` [PATCH 11/15] twl4030_charger: enable manual enable/disable of usb charging NeilBrown
2015-03-02 21:03   ` Pavel Machek
2015-03-04  6:15     ` NeilBrown
2015-03-04 10:19       ` Pavel Machek
2015-02-24  4:33 ` [PATCH 12/15] twl4030_charger: add software controlled linear charging mode NeilBrown
2015-03-02 21:09   ` Pavel Machek
2015-03-05  6:33     ` NeilBrown
2015-03-06 21:24       ` twl4030_charger: need changes to get probed? Pavel Machek
2015-03-06 21:57         ` Pali Rohár
2015-03-06 22:12           ` Grazvydas Ignotas
2015-03-06 22:40             ` Pavel Machek
2015-03-06 22:56               ` Pali Rohár
2015-03-07 15:56                 ` Grazvydas Ignotas
2015-03-07 16:43                   ` Pali Rohár
2015-04-26 10:13                   ` Pavel Machek
2015-03-07 21:01         ` Sebastian Reichel
2015-03-09  0:06           ` NeilBrown
2015-03-09 11:14             ` Sebastian Reichel [this message]
2015-02-24  4:33 ` [PATCH 09/15] twl4030_charger: allow max_current to be managed via sysfs NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-05  6:26     ` NeilBrown
2015-03-05  8:17       ` Pavel Machek
2015-03-07 20:37       ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 10/15] twl4030_charger: only draw USB current as negotiated with host NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-02-24  4:33 ` [PATCH 14/15] twl4030_charger: Increase current carefully while watching voltage NeilBrown
2015-03-02 21:29   ` Pavel Machek
2015-03-05  6:51     ` NeilBrown
2015-02-24  4:33 ` [PATCH 13/15] twl4030_charger: add ac/mode to match usb/mode NeilBrown
2015-03-02 21:13   ` Pavel Machek
2015-03-06 21:59   ` Grazvydas Ignotas
2015-03-22 23:13     ` NeilBrown
2015-02-24  4:33 ` [PATCH 15/15] twl4030_charger: assume a 'charger' can supply maximum current NeilBrown
2015-03-02 21:29   ` Pavel Machek
2015-03-05  6:45     ` NeilBrown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150309111410.GB3914@earth \
    --to=sre@kernel.org \
    --cc=aaro.koskinen@iki.fi \
    --cc=dbaryshkov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=gta04-owner@goldelico.com \
    --cc=ivo.g.dimitrov.75@gmail.com \
    --cc=khilman@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=pali.rohar@gmail.com \
    --cc=patrikbachan@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=sameo@linux.intel.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).