[JUST RFC] ARM: DIGIC: add csrc-dummy
Alexander Aring
alex.aring at gmail.com
Mon Dec 16 02:46:46 EST 2013
On Mon, Dec 16, 2013 at 08:41:59AM +0100, Sascha Hauer wrote:
> 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 at 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;
first = 1;
:-)
- Alex
More information about the barebox
mailing list