linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.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 08:12:38 +0000	[thread overview]
Message-ID: <20141002081236.GA30167@ulmo> (raw)
In-Reply-To: <CAPtuhTgJ7TLg8CKe3pQiBeEw9s33UrYEXPj6SDCga2yAh7WfEA@mail.gmail.com>

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

On Wed, Oct 01, 2014 at 11:17:23AM -0700, Mike Turquette wrote:
> On Wed, Oct 1, 2014 at 12:30 AM, Thierry Reding
> <thierry.reding@gmail.com> wrote:
> > On Tue, Sep 30, 2014 at 02:37:53PM -0700, Mike Turquette wrote:
> >> Quoting Thierry Reding (2014-09-29 06:54:00)
> >> > On Mon, Sep 29, 2014 at 01:34:36PM +0200, Maxime Ripard wrote:
> >> > > On Mon, Sep 29, 2014 at 12:44:57PM +0200, Thierry Reding wrote:
> >> > > > > >> Plus, speaking more specifically about the clocks, that won't prevent
> >> > > > > >> your clock to be shut down as a side effect of a later clk_disable
> >> > > > > >> call from another driver.
> >> > > > >
> >> > > > > > Furthermore isn't it a bug for a driver to call clk_disable() before a
> >> > > > > > preceding clk_enable()? There are patches being worked on that will
> >> > > > > > enable per-user clocks and as I understand it they will specifically
> >> > > > > > disallow drivers to disable the hardware clock if other drivers are
> >> > > > > > still keeping them on via their own referenc.
> >> > > > >
> >> > > > > Calling clk_disable() preceding clk_enable() is a bug.
> >> > > > >
> >> > > > > Calling clk_disable() after clk_enable() will disable the clock (and
> >> > > > > its parents)
> >> > > > > if the clock subsystem thinks there are no other users, which is what will
> >> > > > > happen here.
> >> > > >
> >> > > > Right. I'm not sure this is really applicable to this situation, though.
> >> > >
> >> > > It's actually very easy to do. Have a driver that probes, enables its
> >> > > clock, fails to probe for any reason, call clk_disable in its exit
> >> > > path. If there's no other user at that time of this particular clock
> >> > > tree, it will be shut down. Bam. You just lost your framebuffer.
> >> > >
> >> > > Really, it's just that simple, and relying on the fact that some other
> >> > > user of the same clock tree will always be their is beyond fragile.
> >> >
> >> > Perhaps the meaning clk_ignore_unused should be revised, then. What you
> >> > describe isn't at all what I'd expect from such an option. And it does
> >> > not match the description in Documentation/kernel-parameters.txt either.
> >>
> >> From e156ee56cbe26c9e8df6619dac1a993245afc1d5 Mon Sep 17 00:00:00 2001
> >> From: Mike Turquette <mturquette@linaro.org>
> >> Date: Tue, 30 Sep 2014 14:24:38 -0700
> >> Subject: [PATCH] doc/kernel-parameters.txt: clarify clk_ignore_unused
> >>
> >> Refine the definition around clk_ignore_unused, which caused some
> >> confusion recently on the linux-fbdev and linux-arm-kernel mailing
> >> lists[0].
> >>
> >> [0] http://lkml.kernel.org/r/<20140929135358.GC30998@ulmo>
> >>
> >> Signed-off-by: Mike Turquette <mturquette@linaro.org>
> >> ---
> >> Thierry,
> >>
> >> Please let me know if this wording makes the feature more clear.
> >
> > I think that's better than before, but I don't think it's accurate yet.
> > As pointed out by Maxime unused clock may still be disabled if it's part
> > of a tree and that tree is being disabled because there are no users
> > left.
> 
> It is entirely accurate. This feature does in fact "prevent the clock
> framework from *automatically* gating clock ...".

According to what Maxime said if an unused clock is a sibling (has the
same parent) of a clock that is used and then gets disabled, then if the
parent has no other clocks that are enabled, the unused clock will still
be disabled.

That's still counts as "automatically" to me. Not automatically would
mean that the clock needs to be disabled explicitly for it to become
disabled. Disabling it as a side-effect of its parent getting disabled
is still automatic.

> And it was merged by Olof so that he could use simplefb with the
> Chromebook!

And presumably it does work for that specific Chromebook. It seems,
though that for hardware with a somewhat whackier clock tree it doesn't
work so well. As far as I can tell that's the reason for this patch and
the ensuing discussion in the first place.

Although, perhaps nobody ever really tested whether or not the above
scenario was actually a problem for sunxi and maybe clk_ignore_unused
would work for them. But as I understand they don't want to use it, so
this whole debate about this kernel parameter is a bit moot.

> > What I had argued is that it's unexpected behavior, because the clock
> > is still unused (or becomes unused again), therefore shouldn't be
> > disabled at that point either.
> 
> Leaving clocks enabled because nobody claimed them is not an option.

But that's exactly what clk_ignore_unused is, isn't it? I'm now totally
confused.

> > So if you want to keep the current behaviour where an unused clock can
> > still be disabled depending on what other users do, then I think it'd be
> > good to mention that as a potential caveat.
> 
> Do you have a suggestion on the wording?

Perhaps something like this:

	Note that if an unused clock shares a parent with clocks that
	are used, the unused clock may still become disabled as a side-
	effect of the parent clock being disabled when none of the
	children that are used remain enabled.

?

Thierry

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

  reply	other threads:[~2014-10-02  8:12 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 [this message]
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
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=20141002081236.GA30167@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).