linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: thierry.reding@gmail.com (Thierry Reding)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] simplefb: Change simplefb_init from module_init to fs_initcall
Date: Tue, 18 Nov 2014 12:21:24 +0100	[thread overview]
Message-ID: <20141118112123.GA3873@ulmo> (raw)
In-Reply-To: <546B26F4.50302@redhat.com>

On Tue, Nov 18, 2014 at 12:01:08PM +0100, Hans de Goede wrote:
> Hi,
> 
> On 11/18/2014 11:19 AM, Thierry Reding wrote:
> > On Thu, Nov 13, 2014 at 09:58:41AM +0100, Geert Uytterhoeven wrote:
> >> Hi Maxime,
> >>
> >> On Thu, Nov 13, 2014 at 9:52 AM, Maxime Ripard
> >> <maxime.ripard@free-electrons.com> wrote:
> >>>> -module_init(simplefb_init);
> >>>> +/*
> >>>> + * While this can be a module, if builtin it's most likely the console
> >>>> + * So let's leave module_exit but move module_init to an earlier place
> >>>> + */
> >>>
> >>> Not really related to this patch itself, but do we want to support
> >>> simplefb as a module? It seems like it's going to be most of the time
> >>> broken.
> >>
> >> If it depends on clocks, it won't work as a module, as CCF will have disabled
> >> all unused clocks at that point.
> > 
> > If it does depend on anything beyond clocks it won't work at all. Clocks
> > are special because they get set up very early at boot time. If it turns
> > out that a simplefb ever needs a regulator to remain on, and that's even
> > quite likely to happen eventually, it's going to fail miserably, because
> > those regulators will typically be provided by a PMIC on an I2C bus. The
> > regulator won't be registered until very late into the boot process and
> > a regulator_get() call will almost certainly cause the simplefb driver
> > to defer probing.
> 
> Right, this has been discussed already and the plan is to have simplefb
> continue its probe function and return success from it if it encounters
> any -eprobe_defer errors, while tracking which resources it misses.
> 
> And then have a late_initcall which will claim any resources which failed
> with -eprobe beforehand.

How do you ensure that the late_initcall gets run before any of the
other late_initcalls that disable the resources? Also my recollection is
that deferred probing will first be triggered the first time from a
late_initcall, so chances aren't very high that all resources have shown
up by that time.

> > Now deferring probing is a real showstopper for simplefb, because not
> > only does it make the framebuffer useless as early boot console, once
> > probing is attempted again the clocks that it would have needed to
> > acquire to keep going will already have been switched off, too.
> 
> That is not true, even with the current implementation, if all necessary
> drivers are built in, then simplefb will come up later, but it will still
> come up before the late_initcall which disables the clocks.

Yes, in the current implementation because clocks typically are
registered very early and thus you don't hit the deferred probe. The
same is not true for other types of resources where it's actually quite
common to hit deferred probing (regulators is a very notorious one).

It doesn't matter whether a driver is built-in or not, once you hit
deferred probing you lose.

> Once we do the split probing described above (which is something which
> we plan to do when it becomes necessary), then simplefb will still come
> up early.

It will come up early but won't have acquired all the resources that it
needs, so unless you somehow manage to order late_initcalls in exactly
the way that you need them, the frameworks will still turn off what you
haven't managed to claim yet.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141118/8e76abb6/attachment.sig>

  reply	other threads:[~2014-11-18 11:21 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-12 22:08 [PATCH 1/4] dt-bindings: simplefb: Specify node location and handoff related properties Hans de Goede
2014-11-12 22:08 ` [PATCH 2/4] simplefb: Add support for enumerating simplefb dt nodes in /chosen Hans de Goede
2014-11-12 23:39   ` [linux-sunxi] " Julian Calaby
2014-11-13  8:27     ` Hans de Goede
2014-11-13  8:34       ` Geert Uytterhoeven
2014-11-13  8:40         ` Hans de Goede
2014-11-13  8:47           ` Julian Calaby
2014-11-13 10:24     ` Grant Likely
2014-11-13  8:15   ` Geert Uytterhoeven
2014-11-13  8:16     ` Geert Uytterhoeven
2014-11-13  8:28       ` Hans de Goede
2014-11-12 22:08 ` [PATCH 3/4] simplefb: Change simplefb_init from module_init to fs_initcall Hans de Goede
2014-11-13  8:52   ` Maxime Ripard
2014-11-13  8:58     ` Geert Uytterhoeven
2014-11-18 10:19       ` Thierry Reding
2014-11-18 11:01         ` Hans de Goede
2014-11-18 11:21           ` Thierry Reding [this message]
2014-11-18 11:46             ` Hans de Goede
2014-11-18 12:44               ` Hans de Goede
2014-11-18 15:16                 ` Thierry Reding
2014-11-18 15:28                   ` Maxime Ripard
2014-11-13  9:24     ` Hans de Goede
2014-11-13 10:29       ` Grant Likely
2014-11-13 10:31         ` Grant Likely
2014-11-13 12:01           ` Hans de Goede
2014-11-13 10:42         ` Maxime Ripard
     [not found]         ` <jwvy4rf2i7h.fsf-monnier+gmane.comp.hardware.netbook.arm.sunxi@gnu.org>
2014-11-13 19:04           ` [linux-sunxi] " Hans de Goede
2014-11-12 22:08 ` [PATCH 4/4] fbcon: Change fbcon_init " Hans de Goede
2014-11-13  8:38 ` [PATCH 1/4] dt-bindings: simplefb: Specify node location and handoff related properties Geert Uytterhoeven
2014-11-13  8:43   ` Hans de Goede

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=20141118112123.GA3873@ulmo \
    --to=thierry.reding@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).