From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
To: linux-fbdev@vger.kernel.org
Subject: Re: [PATCH] viafb: don't touch clock state on OLPC XO-1.5
Date: Sun, 23 Sep 2012 19:41:18 +0000 [thread overview]
Message-ID: <505F65DE.5050902@gmx.de> (raw)
In-Reply-To: <20120904154533.1DC4AFAA0F@dev.laptop.org>
On 09/04/2012 03:45 PM, Daniel Drake wrote:
> As detailed in the thread titled "viafb PLL/clock tweaking causes XO-1.5
> instability," enabling or disabling the IGA1/IGA2 clocks causes occasional
> stability problems during suspend/resume cycles on this platform.
>
> This is rather odd, as the documentation suggests that clocks have two
> states (on/off) and the default (stable) configuration is configured to
> enable the clock only when it is needed. However, explicitly enabling *or*
> disabling the clock triggers this system instability, suggesting that there
> is a 3rd state at play here.
>
> Leaving the clock enable/disable registers alone solves this problem.
> This fixes spurious reboots during suspend/resume behaviour introduced by
> commit b692a63a.
>
> Signed-off-by: Daniel Drake <dsd@laptop.org>
Applied. Thanks for investigating it. I didn't have the time to look at
it due to writing my thesis. Patch looks okay, at least it is a clean
workaround. I did Cc stable when committing it to fix older releases.
Thanks,
Florian Tobias Schandinat
> ---
> drivers/video/via/via_clock.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/drivers/video/via/via_clock.c b/drivers/video/via/via_clock.c
> index af8f26b..db1e392 100644
> --- a/drivers/video/via/via_clock.c
> +++ b/drivers/video/via/via_clock.c
> @@ -25,6 +25,7 @@
>
> #include <linux/kernel.h>
> #include <linux/via-core.h>
> +#include <asm/olpc.h>
> #include "via_clock.h"
> #include "global.h"
> #include "debug.h"
> @@ -289,6 +290,10 @@ static void dummy_set_pll(struct via_pll_config config)
> printk(KERN_INFO "Using undocumented set PLL.\n%s", via_slap);
> }
>
> +static void noop_set_clock_state(u8 state)
> +{
> +}
> +
> void via_clock_init(struct via_clock *clock, int gfx_chip)
> {
> switch (gfx_chip) {
> @@ -346,4 +351,18 @@ void via_clock_init(struct via_clock *clock, int gfx_chip)
> break;
>
> }
> +
> + if (machine_is_olpc()) {
> + /* The OLPC XO-1.5 cannot suspend/resume reliably if the
> + * IGA1/IGA2 clocks are set as on or off (memory rot
> + * occasionally happens during suspend under such
> + * configurations).
> + *
> + * The only known stable scenario is to leave this bits as-is,
> + * which in their default states are documented to enable the
> + * clock only when it is needed.
> + */
> + clock->set_primary_clock_state = noop_set_clock_state;
> + clock->set_secondary_clock_state = noop_set_clock_state;
> + }
> }
prev parent reply other threads:[~2012-09-23 19:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-04 15:45 [PATCH] viafb: don't touch clock state on OLPC XO-1.5 Daniel Drake
2012-09-23 19:41 ` Florian Tobias Schandinat [this message]
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=505F65DE.5050902@gmx.de \
--to=florianschandinat@gmx.de \
--cc=linux-fbdev@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.