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@xxxxxxxxx> > > --- > > +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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox