mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Antony Pavlov <antonynpavlov@gmail.com>
Cc: barebox@lists.infradead.org
Subject: Re: [JUST RFC] ARM: DIGIC: add csrc-dummy
Date: Mon, 16 Dec 2013 08:41:59 +0100	[thread overview]
Message-ID: <20131216074158.GP24559@pengutronix.de> (raw)
In-Reply-To: <1387119725-6803-2-git-send-email-antonynpavlov@gmail.com>

On Sun, Dec 15, 2013 at 07:02:05PM +0400, Antony Pavlov wrote:
> The clocksource csrc-timer driver that uses DIGIC
> hardware TIMER2 perfectrly works on Canon A1100,
> but does not works on Canon EOS 600D.
> IMHO we need additional timer initialisation.
> 
> This patch introduces a quick-and-dirty termporary
> solution for this situation: a clocksource driver that
> does not use any hardware at all.
> 
> Also this driver is very handy for running barebox
> on Magic Lantern EOS qemu-based emulator as
> the emulator does not realize timer counter register at all!
> 
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> ---
> +static uint64_t dummy_cs_read(void)
> +{
> +	dummy_counter += 2000;
> +	return dummy_counter;
> +}

I also played with the same approach. In my case it was more a fallback
when the initialization order was wrong so that the time functions were
used before the real clocksource was initialized. Without it time never
advanced and every udelay() locked up the system (or it crashed because
we didn't check for the clocksource being NULL, can't remember).

Maybe it would be possible to add this clocksource unconditionally on
every build, but let a real clocksource take over.

To do this and not silently fall back to a dummy console I suggest a:

static uint64_t dummy_cs_read(void)
{
	static int first;

	if (!first) {
		pr_warn("Warning: Using dummy clocksource\n");
		first = 0;
	}

	dummy_counter += 2000;
	return dummy_counter;
}

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  parent reply	other threads:[~2013-12-16  7:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-15 15:02 [JUST RFC] add hardware independent clock source Antony Pavlov
2013-12-15 15:02 ` [JUST RFC] ARM: DIGIC: add csrc-dummy Antony Pavlov
2013-12-15 18:08   ` Alexander Shiyan
2013-12-15 18:52     ` Antony Pavlov
2013-12-15 18:50       ` Alexander Shiyan
2013-12-15 19:30   ` Alexander Aring
2013-12-15 20:40     ` Antony Pavlov
2013-12-15 21:17       ` Alexander Aring
2013-12-16  7:41   ` Sascha Hauer [this message]
2013-12-16  7:46     ` Alexander Aring
2013-12-16  7:48     ` Alexander Shiyan

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=20131216074158.GP24559@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=antonynpavlov@gmail.com \
    --cc=barebox@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