From: Hans de Goede <hdegoede@redhat.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [linux-sunxi] Re: [PATCH 4/4] simplefb: add clock handling code
Date: Thu, 02 Oct 2014 13:40:16 +0000 [thread overview]
Message-ID: <542D55C0.4020306@redhat.com> (raw)
In-Reply-To: <CAKON4Ow4WU8yhy+LKGgKfvS8E15MU=gfRoZXNW6AWGOBVPG8SQ@mail.gmail.com>
Hi,
On 10/02/2014 03:34 PM, jonsmirl@gmail.com wrote:
> On Thu, Oct 2, 2014 at 9:23 AM, Michal Suchanek <hramrach@gmail.com> wrote:
>> On 2 October 2014 14:56, jonsmirl@gmail.com <jonsmirl@gmail.com> wrote:
>>> On Thu, Oct 2, 2014 at 8:39 AM, Hans de Goede <hdegoede@redhat.com> wrote:
>>>> Hi,
>>>>
>>>> On 10/02/2014 02:22 PM, jonsmirl@gmail.com wrote:
>>>>> On Thu, Oct 2, 2014 at 2:42 AM, Hans de Goede <hdegoede@redhat.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 10/01/2014 08:12 PM, Stephen Warren wrote:
>>>>>>> On 10/01/2014 11:54 AM, jonsmirl@gmail.com wrote:
>>>>>>>> On Wed, Oct 1, 2014 at 1:26 PM, Hans de Goede <hdegoede@redhat.com> wrote:
>>>>>>> ...
>>>>>>>>> We've been over all this again and again and again.
>>>>>>>>>
>>>>>>>>> AAAARRRRRGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!
>>>>>>>>>
>>>>>>>>> All solutions provided sofar are both tons more complicated, then the
>>>>>>>>> simple solution of simply having the simplefb dt node declare which
>>>>>>>>> clocks it needs. And to make things worse all of them sofar have
>>>>>>>>> unresolved issues (due to their complexity mostly).
>>>>>>>>>
>>>>>>>>> With the clocks in the simplefb node, then all a real driver has to do,
>>>>>>>>> is claim those same clocks before unregistering the simplefb driver,
>>>>>>>>> and everything will just work.
>>>>>>>>>
>>>>>>>>> Yet we've been discussing this for months, all because of some
>>>>>>>>> vague worries from Thierry, and *only* from Thierry that this will
>>>>>>>>> make simplefb less generic / not abstract enough, while a simple
>>>>>>>>> generic clocks property is about as generic as things come.
>>>>>>>
>>>>>>> Note: I haven't been following this thread, and really don't have the time to get involved, but I did want to point out one thing:
>>>>>>>
>>>>>>> As I think I mentioned very early on in this thread, one of the big concerns when simplefb was merged was that it would slowly grow and become a monster. As such, a condition of merging it was that it would not grow features like resource management at all. That means no clock/regulator/... support. It's intended as a simple stop-gap between early platform bringup and whenever a real driver exists for the HW. If you need resource management, write a HW-specific driver. The list archives presumably have a record of the discussion, but I don't know the links off the top of my head. If nobody
>>>>>>> other than Thierry is objecting, presumably the people who originally objected simply haven't noticed this patch/thread. I suppose it's possible they changed their mind.
>>>>>>>
>>>>>>> BTW, there's no reason that the simplefb code couldn't be refactored out into a support library that's used by both the simplefb we currently have and any new HW-specific driver. It's just that the simplefb binding and driver shouldn't grow.
>>>>>>
>>>>>> The whole reason why we want to use simplefb is not just to get things
>>>>>> running until HW specific driver is in place, but also to have early console
>>>>>> output (to help debugging boot problems on devices without a serial console),
>>>>>> in a world where most video drivers are build as loadable modules, so we
>>>>>> won't have video output until quite late into the boot process.
>>>>>
>>>>> You need both.
>>>>>
>>>>> 1) temporary early boot console -- this is nothing but an address in
>>>>> RAM and the x/y layout. The character set from framebuffer is built
>>>>> into the kernel. The parallel to this is early-printk and how it uses
>>>>> the UARTs without interrupts. This console vaporizes late in the boot
>>>>> process -- the same thing happens with the early printk UART driver.
>>>>> EARLYPRINTK on the command line enables this.
>>>>>
>>>>> 2) a device specific driver -- this sits on initrd and it loaded as
>>>>> soon as possible. The same thing happens with the real UART driver for
>>>>> the console. CONSOLE= on the command line causes the transition. There
>>>>> is an API in the kernel to do this transition, I believe it is called
>>>>> set_console() but it's been a while.
>>>>
>>>> Eventually we need both, yes. But 1) should stay working until 2) loads,
>>>> not until some phase of the bootup is completed, but simply until 2) loads.
>>>
>>> No, that is where you get into trouble. The device specific driver has
>>> to go onto initrd where it can be loaded as early in the boot process
>>> as possible.
>>>
>>> Trying to indefinitely extend the life of the earlyprintk or
>>> earlyframeuffer is what causes problems. Doing that forces you to
>>> basically turn them into device specific drivers which do things like
>>> claiming device specific resources and gaining device specific
>>> dependency knowledge, things that shouldn't be in earlyframebuffer.
>>>
>>
>> No. When initrd is running boot has already finished as far as kernel
>> is concerned.
>>
>> And you have to extend the life of the simplefb from the time boot has
>> finished through the time kernel mounts initrd (or other root) and
>> hands over to userspace found on the initrd, through the time this
>> userspace searches for the kms driver and until the time it has
>> finally loaded if that ever succeeds.
>
> Does the clock and regulator cleanup happen before drivers can load
> off from initrd? I didn't think it did but I might be wrong.
Yes the cleanup happens before the first userspace process starts, be
that the fake /sbin/init from the initrd, or the real /sbin/init if
no initrd is used.
> So maybe a solution to this is to delay that cleanup until after
> initrd drivers have a chance to load. Of course it is not possible to
> delay it indefinitely (like for disk based loading) but delaying over
> initrd is a fixed limit.
And delaying over the initrd is not helpful. Not having the real driver
load for whatever reasons, is not necessarily a boot blocking event,
and if it us just missing will not lead to any error messages.
So the boot will continue normally with a black screen, and things are
still impossible to debug.
Regards,
Hans
next prev parent reply other threads:[~2014-10-02 13:40 UTC|newest]
Thread overview: 269+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-13 7:17 simplefb: add clock handling Luc Verhaegen
2014-08-13 7:17 ` [PATCH 1/4] simplefb: formalize pseudo palette handling Luc Verhaegen
2014-08-13 7:25 ` David Herrmann
2014-08-13 8:46 ` Geert Uytterhoeven
2014-08-13 8:50 ` David Herrmann
2014-08-13 16:45 ` Stephen Warren
2014-08-13 7:17 ` [PATCH 2/4] simplefb: add goto error path to probe Luc Verhaegen
2014-08-13 7:27 ` David Herrmann
2014-08-14 10:29 ` Luc Verhaegen
2014-08-14 10:33 ` David Herrmann
2014-08-14 10:42 ` Luc Verhaegen
2014-08-13 7:17 ` [PATCH 3/4] simplefb: disable dt node upon remove Luc Verhaegen
2014-08-13 8:40 ` Grant Likely
2014-08-13 8:49 ` David Herrmann
2014-08-13 9:23 ` Grant Likely
2014-08-13 9:32 ` David Herrmann
2014-08-13 9:45 ` Luc Verhaegen
2014-08-13 10:19 ` [linux-sunxi] " Luc Verhaegen
2014-08-13 12:54 ` jonsmirl
2014-08-13 19:14 ` Grant Likely
2014-08-13 19:25 ` Luc Verhaegen
2014-08-13 19:58 ` Stephen Warren
2014-08-13 20:01 ` Luc Verhaegen
2014-08-13 20:00 ` Grant Likely
2014-08-13 20:19 ` Luc Verhaegen
2014-08-13 20:41 ` [linux-sunxi] " jonsmirl
2014-08-14 10:15 ` Grant Likely
2014-08-14 12:07 ` jonsmirl
2014-08-15 0:45 ` Henrik Nordström
2014-08-15 1:27 ` jonsmirl
2014-08-15 6:43 ` Maxime Ripard
2014-08-15 12:34 ` jonsmirl
2014-08-13 16:44 ` Stephen Warren
2014-08-13 17:26 ` [linux-sunxi] " jonsmirl
2014-08-13 17:34 ` Stephen Warren
2014-08-13 17:44 ` jonsmirl
2014-08-13 7:17 ` [PATCH 4/4] simplefb: add clock handling code Luc Verhaegen
2014-08-13 16:38 ` Stephen Warren
2014-08-13 16:47 ` Luc Verhaegen
2014-08-13 17:01 ` Maxime Ripard
2014-08-14 9:37 ` [linux-sunxi] " Hans de Goede
2014-08-14 10:31 ` [linux-sunxi] " Koen Kooi
2014-08-14 10:57 ` Luc Verhaegen
2014-08-14 11:18 ` Hans de Goede
2014-08-14 11:18 ` Hans de Goede
2014-08-25 12:12 ` Thierry Reding
2014-08-25 12:44 ` Maxime Ripard
2014-08-25 13:39 ` Thierry Reding
2014-08-25 13:47 ` [linux-sunxi] " Hans de Goede
2014-08-25 14:16 ` Thierry Reding
2014-08-25 14:23 ` jonsmirl
2014-08-25 14:27 ` Hans de Goede
2014-08-25 15:12 ` Thierry Reding
2014-08-25 15:18 ` Luc Verhaegen
2014-08-26 8:40 ` Thierry Reding
2014-08-26 13:22 ` Maxime Ripard
2014-08-26 13:43 ` Thierry Reding
2014-08-25 15:49 ` jonsmirl
2014-08-26 9:02 ` Hans de Goede
2014-08-25 15:01 ` Thierry Reding
2014-08-25 14:23 ` Hans de Goede
2014-08-25 14:53 ` Thierry Reding
2014-08-25 15:07 ` Maxime Ripard
2014-08-26 8:26 ` Thierry Reding
2014-08-26 9:00 ` Mark Brown
2014-08-26 9:18 ` Thierry Reding
2014-08-26 10:06 ` Mark Brown
2014-08-26 10:55 ` Thierry Reding
2014-08-26 11:33 ` Mark Brown
2014-08-26 18:40 ` Henrik Nordström
2014-08-27 7:40 ` Mark Brown
2014-08-27 8:22 ` Maxime Ripard
2014-08-27 8:37 ` Geert Uytterhoeven
2014-08-27 8:55 ` Maxime Ripard
2014-08-27 9:05 ` Geert Uytterhoeven
2014-08-27 10:32 ` Maxime Ripard
2014-08-27 10:07 ` Thierry Reding
2014-08-27 10:26 ` Henrik Nordström
2014-08-27 12:45 ` Julian Calaby
2014-08-27 13:24 ` Maxime Ripard
2014-08-25 15:08 ` jonsmirl
2014-08-25 14:58 ` Maxime Ripard
2014-08-25 15:05 ` Thierry Reding
2014-08-25 15:09 ` Luc Verhaegen
2014-08-26 7:52 ` Thierry Reding
2014-08-26 12:02 ` Luc Verhaegen
2014-08-26 12:21 ` Thierry Reding
2014-08-26 12:33 ` Luc Verhaegen
2014-08-26 14:41 ` Thierry Reding
2014-08-25 15:22 ` Maxime Ripard
2014-08-26 8:04 ` Thierry Reding
2014-08-26 8:45 ` Michal Suchanek
2014-08-26 13:53 ` Maxime Ripard
2014-08-26 14:35 ` Thierry Reding
2014-08-26 19:59 ` Hans de Goede
2014-08-27 9:31 ` Thierry Reding
2014-08-27 10:35 ` Hans de Goede
2014-08-27 12:44 ` jonsmirl
2014-08-27 12:50 ` Hans de Goede
2014-08-27 12:56 ` jonsmirl
2014-08-27 13:05 ` Thierry Reding
2014-08-27 12:56 ` Thierry Reding
2014-08-27 13:44 ` Hans de Goede
2014-08-27 14:16 ` Thierry Reding
2014-08-28 12:15 ` Hans de Goede
2014-08-28 13:22 ` jonsmirl
2014-08-28 14:20 ` Geert Uytterhoeven
2014-08-28 14:33 ` jonsmirl
2014-08-28 14:37 ` Geert Uytterhoeven
2014-08-28 15:11 ` jonsmirl
2014-08-28 16:25 ` Michal Suchanek
2014-08-28 16:34 ` jonsmirl
2014-08-28 16:50 ` Luc Verhaegen
2014-08-28 20:31 ` Michal Suchanek
2014-08-29 7:16 ` Thierry Reding
2014-08-29 7:01 ` Thierry Reding
2014-08-29 7:23 ` Hans de Goede
2014-08-29 8:12 ` Thierry Reding
2014-08-29 14:12 ` Maxime Ripard
2014-08-29 14:38 ` Thierry Reding
2014-08-29 15:25 ` Michal Suchanek
2014-09-02 9:25 ` Maxime Ripard
2014-09-27 23:56 ` Mike Turquette
2014-09-29 8:06 ` Thierry Reding
2014-09-29 8:27 ` Geert Uytterhoeven
2014-09-29 8:54 ` Thierry Reding
2014-09-29 9:10 ` Geert Uytterhoeven
2014-09-29 9:29 ` Thierry Reding
2014-09-29 9:44 ` Michal Suchanek
2014-09-29 10:40 ` Thierry Reding
2014-09-29 9:23 ` Maxime Ripard
2014-09-29 10:18 ` Thierry Reding
2014-09-29 10:35 ` Geert Uytterhoeven
2014-09-29 10:44 ` Thierry Reding
2014-09-29 11:32 ` Geert Uytterhoeven
2014-09-29 14:00 ` Thierry Reding
2014-09-29 11:34 ` Maxime Ripard
2014-09-29 13:54 ` Thierry Reding
2014-09-29 15:57 ` Maxime Ripard
2014-09-30 4:59 ` Thierry Reding
2014-09-30 7:46 ` Maxime Ripard
2014-09-30 11:43 ` Hans de Goede
2014-09-30 11:46 ` Thierry Reding
2014-09-30 21:37 ` Mike Turquette
2014-10-01 7:30 ` Thierry Reding
2014-10-01 18:17 ` Mike Turquette
2014-10-02 8:12 ` Thierry Reding
2014-09-29 11:00 ` Julian Calaby
2014-09-29 13:21 ` Thierry Reding
2014-09-29 14:46 ` Julian Calaby
2014-09-29 15:19 ` Thierry Reding
2014-09-29 15:42 ` Michal Suchanek
2014-09-30 0:10 ` Julian Calaby
2014-09-29 11:46 ` Maxime Ripard
2014-09-29 13:47 ` Thierry Reding
2014-09-29 15:04 ` Michal Suchanek
2014-09-29 15:49 ` Thierry Reding
2014-09-29 16:39 ` Michal Suchanek
2014-09-29 15:55 ` Mark Brown
2014-09-30 5:09 ` Thierry Reding
2014-09-30 17:39 ` Mark Brown
2014-10-01 7:41 ` Thierry Reding
2014-10-01 11:10 ` Javier Martinez Canillas
2014-10-01 12:32 ` Mark Brown
2014-10-01 12:48 ` Thierry Reding
2014-10-01 17:05 ` Mark Brown
2014-10-01 17:26 ` Hans de Goede
2014-10-01 17:54 ` jonsmirl
2014-10-01 18:12 ` Stephen Warren
2014-10-01 18:16 ` Luc Verhaegen
2014-10-02 6:42 ` Hans de Goede
2014-10-02 12:22 ` jonsmirl
2014-10-02 12:39 ` Hans de Goede
2014-10-02 12:56 ` jonsmirl
2014-10-02 13:14 ` Hans de Goede
2014-10-02 13:27 ` jonsmirl
2014-10-02 13:33 ` Hans de Goede
2014-10-02 13:40 ` jonsmirl
2014-10-02 14:08 ` Hans de Goede
2014-10-02 14:16 ` jonsmirl
2014-10-02 14:21 ` Hans de Goede
2014-10-02 14:41 ` jonsmirl
2014-10-02 14:50 ` Hans de Goede
2014-10-02 15:14 ` jonsmirl
2014-10-02 15:30 ` jonsmirl
2014-10-02 15:38 ` Hans de Goede
2014-10-02 15:36 ` Michal Suchanek
2014-10-02 23:31 ` Julian Calaby
2014-10-03 7:56 ` Hans de Goede
2014-11-11 16:15 ` Grant Likely
2014-10-02 14:18 ` Maxime Ripard
2014-10-02 14:23 ` Hans de Goede
2014-10-02 14:17 ` Michal Suchanek
2014-10-02 13:59 ` Michal Suchanek
2014-10-02 13:23 ` Michal Suchanek
2014-10-02 13:34 ` jonsmirl
2014-10-02 13:40 ` Hans de Goede [this message]
2014-10-02 13:44 ` jonsmirl
2014-10-02 13:46 ` Geert Uytterhoeven
2014-10-02 13:49 ` jonsmirl
2014-10-02 19:15 ` Geert Uytterhoeven
2014-10-02 15:49 ` Stephen Warren
2014-10-03 11:16 ` Hans de Goede
2014-10-03 11:45 ` Tomi Valkeinen
2014-10-03 11:53 ` Hans de Goede
2014-10-01 11:31 ` Mark Brown
2014-09-29 16:28 ` Maxime Ripard
2014-09-29 16:58 ` Luc Verhaegen
2014-09-29 22:02 ` Luc Verhaegen
2014-09-30 5:39 ` Thierry Reding
2014-09-30 8:03 ` Maxime Ripard
2014-09-30 11:02 ` Thierry Reding
2014-09-30 12:41 ` Mark Brown
2014-09-30 12:50 ` jonsmirl
2014-09-30 5:21 ` Thierry Reding
2014-09-30 7:52 ` Maxime Ripard
2014-09-30 8:54 ` Thierry Reding
2014-09-30 9:38 ` Michal Suchanek
2014-09-30 11:31 ` Thierry Reding
2014-09-30 14:12 ` Michal Suchanek
2014-09-30 12:29 ` Maxime Ripard
2014-09-29 16:11 ` Mark Brown
2014-09-30 6:03 ` Thierry Reding
2014-09-30 18:00 ` Mark Brown
2014-10-01 8:14 ` Thierry Reding
2014-10-01 12:20 ` Mark Brown
2014-10-01 12:48 ` Thierry Reding
2014-10-01 13:01 ` jonsmirl
2014-10-01 13:17 ` Michal Suchanek
2014-10-01 13:40 ` jonsmirl
2014-10-01 17:17 ` Mark Brown
2014-10-01 18:43 ` Geert Uytterhoeven
2014-10-02 8:30 ` Thierry Reding
2014-10-02 8:27 ` Thierry Reding
2014-10-01 8:17 ` Thierry Reding
2014-09-29 17:51 ` jonsmirl
2014-09-29 18:06 ` Michal Suchanek
2014-08-27 13:56 ` Maxime Ripard
2014-08-27 14:30 ` Thierry Reding
2014-08-27 13:43 ` Maxime Ripard
2014-08-26 21:02 ` Maxime Ripard
2014-08-27 6:54 ` Thierry Reding
2014-08-27 8:00 ` Hans de Goede
2014-08-27 9:37 ` Thierry Reding
2014-08-27 8:45 ` Maxime Ripard
2014-08-27 9:52 ` Thierry Reding
2014-08-27 15:42 ` Maxime Ripard
2014-08-27 20:57 ` Michal Suchanek
2014-08-28 10:08 ` Thierry Reding
2014-08-29 5:13 ` Michal Suchanek
2014-08-29 6:19 ` Thierry Reding
2014-08-29 6:48 ` Michal Suchanek
2014-08-29 7:08 ` Thierry Reding
2014-08-28 10:11 ` Thierry Reding
2014-08-28 10:32 ` Michal Suchanek
2014-08-28 20:46 ` Maxime Ripard
2014-08-29 6:29 ` Thierry Reding
2014-08-29 13:57 ` Maxime Ripard
2014-08-29 14:31 ` Thierry Reding
2014-08-27 8:17 ` Henrik Nordström
2014-08-25 15:25 ` Andreas Färber
2014-08-26 13:19 ` Maxime Ripard
2014-08-13 7:54 ` simplefb: add clock handling David Herrmann
2014-08-13 8:11 ` Luc Verhaegen
2014-08-13 8:21 ` [linux-sunxi] " Koen Kooi
2014-08-13 8:36 ` Hans de Goede
2014-08-13 10:16 ` Koen Kooi
2014-08-13 10:24 ` David Herrmann
2014-08-13 11:36 ` 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=542D55C0.4020306@redhat.com \
--to=hdegoede@redhat.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).