All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v1 (WIP) 08/16] [Timer]Create new userland timer API
Date: Tue, 28 Jun 2011 21:31:17 -0700	[thread overview]
Message-ID: <CAPnjgZ2e42WeZdH3moKO+EfP0f7huo-Kjsg7Rz0SqyAHFjTQAg@mail.gmail.com> (raw)
In-Reply-To: <1309261269-4363-9-git-send-email-graeme.russ@gmail.com>

Hi Graeme,

What a mammoth effort and what a fantastic clean up.

I'm a bit unsure of this patch which seems to have two prototypes for
the since functions:

On Tue, Jun 28, 2011 at 4:41 AM, Graeme Russ <graeme.russ@gmail.com> wrote:
>
> Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
> ---
> ?include/common.h | ? 36 ++++++++++++++++++++----------------
> ?lib/time.c ? ? ? | ? 26 ++++++++++++++++++++++++++
> ?2 files changed, 46 insertions(+), 16 deletions(-)
>
> diff --git a/include/common.h b/include/common.h
> index 340e585..9735d47 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -584,11 +584,29 @@ void ? ? ?timer_interrupt ? ?(struct pt_regs *);
> ?void ? external_interrupt (struct pt_regs *);
> ?void ? irq_install_handler(int, interrupt_handler_t *, void *);
> ?void ? irq_free_handler ? (int);
> -void ? reset_timer ? ? ? ?(void);
> -ulong ?get_timer ? ? ? ? ?(ulong base);
> ?void ? enable_interrupts ?(void);
> ?int ? ?disable_interrupts (void);
>
> +/*
> + * Timer API
> + */
> +void reset_timer (void);
> +ulong get_timer (ulong base);
> +u64 get_ticks(void);
> +void wait_ticks(unsigned long);
> +void __udelay(unsigned long);
> +ulong usec2ticks(unsigned long usec);
> +ulong ticks2usec(unsigned long ticks);
> +int init_timebase(void);
> +
> +/* lib/time.c */
> +void udelay(unsigned long);
> +
> +u32 time_now_ms(void);
> +u32 time_since_ms(u32 from, u32 to);
> +u32 time_max_since_ms(u32 from, u32 to);

Here they have two parameters

> +u32 time_resolution_ms(void);
> +
> ?/* $(CPU)/.../commproc.c */
> ?int ? ?dpram_init (void);
> ?uint ? dpram_base(void);
> @@ -616,17 +634,6 @@ void ? ? ? flush_cache ? (unsigned long, unsigned long);
> ?void ? flush_dcache_range(unsigned long start, unsigned long stop);
> ?void ? invalidate_dcache_range(unsigned long start, unsigned long stop);
>
> -
> -/* arch/$(ARCH)/lib/ticks.S */
> -unsigned long long get_ticks(void);
> -void ? wait_ticks ? ?(unsigned long);
> -
> -/* arch/$(ARCH)/lib/time.c */
> -void ? __udelay ? ? ?(unsigned long);
> -ulong ?usec2ticks ? ?(unsigned long usec);
> -ulong ?ticks2usec ? ?(unsigned long ticks);
> -int ? ?init_timebase (void);
> -
> ?/* lib/gunzip.c */
> ?int gunzip(void *, int, unsigned char *, unsigned long *);
> ?int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
> @@ -644,9 +651,6 @@ void qsort(void *base, size_t nmemb, size_t size,
> ? ? ? ? ? int(*compar)(const void *, const void *));
> ?int strcmp_compar(const void *, const void *);
>
> -/* lib/time.c */
> -void ? udelay ? ? ? ?(unsigned long);
> -
> ?/* lib/vsprintf.c */
> ?ulong ?simple_strtoul(const char *cp,char **endp,unsigned int base);
> ?int strict_strtoul(const char *cp, unsigned int base, unsigned long *res);
> diff --git a/lib/time.c b/lib/time.c
> index a309c26..1563507 100644
> --- a/lib/time.c
> +++ b/lib/time.c
> @@ -41,3 +41,29 @@ void udelay(unsigned long usec)
> ? ? ? ? ? ? ? ?usec -= kv;
> ? ? ? ?} while(usec);
> ?}
> +
> +u32 time_since_ms(u32 from)

and here only one (which is what I expect).

Can you please explain what I am missing?

Thanks,
Simon

> +{
> + ? ? ? u32 delta = time_now_ms() - from;
> +
> + ? ? ? /* round down */
> + ? ? ? if (delta < time_ms_resolution())
> + ? ? ? ? ? ? ? return 0;
> +
> + ? ? ? return delta - time_resolution_ms();
> +}
> +
> +u32 time_max_since_ms(u32 from)
> +{
> + ? ? ? u32 delta = time_now_ms() - from;
> +
> + ? ? ? return delta + time_resolution_ms();
> +}
> +
> +__attribute__((weak))
> +u32 time_resolution_ms(void) {return 1;}
> +
> +u32 time_now_ms(void)
> +{
> + ? ? ? return get_timer(0);
> +}
> --
> 1.7.5.2.317.g391b14
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

  reply	other threads:[~2011-06-29  4:31 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-28 11:40 [U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite Graeme Russ
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 01/16] [Timer]Fix misuse of ARM *timer_masked() functions outside arch/arm Graeme Russ
2011-06-28 12:35   ` Andreas Bießmann
2011-07-11 21:57   ` Wolfgang Denk
2011-07-14 17:01     ` Albert ARIBAUD
2011-07-14 19:50       ` Wolfgang Denk
2011-07-14 23:24         ` Graeme Russ
2011-07-15  6:31           ` Wolfgang Denk
2011-07-15  7:00             ` Graeme Russ
2011-07-15 12:16   ` [U-Boot] [PATCH v2 1/7]Timer: Fix " Graeme Russ
2011-07-16  8:40     ` Albert ARIBAUD
2011-07-16  8:59       ` Graeme Russ
2011-07-16  9:12         ` Albert ARIBAUD
2011-07-16  9:31     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-16  9:58       ` Albert ARIBAUD
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 02/16] [Timer]Remove calls to set_timer outside arch/ Graeme Russ
2011-07-11 21:58   ` Wolfgang Denk
2011-07-15 12:17   ` [U-Boot] [PATCH v2 2/7]Timer: Remove " Graeme Russ
2011-07-16  9:33     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:52       ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 03/16] [Timer]Remove calls to set_timer in arch/ Graeme Russ
2011-07-11 21:59   ` Wolfgang Denk
2011-07-15 12:18   ` [U-Boot] [PATCH v2 3/7]Timer: Remove set_timer completely Graeme Russ
2011-07-16  9:34     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:52       ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 04/16] [Timer]Allow reset_timer() only for Nios2 Graeme Russ
2011-07-11 22:01   ` Wolfgang Denk
2011-07-15 12:18   ` [U-Boot] [PATCH v2 4/7]Timer: Allow reset_timer() only for systems with low resolution timers Graeme Russ
2011-07-16  9:35     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:53       ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 05/16] [Timer]Remove reset_timer() for non-Nios2 arches Graeme Russ
2011-07-11 22:02   ` Wolfgang Denk
2011-07-15  0:01     ` Graeme Russ
2011-07-15 12:19   ` [U-Boot] [PATCH v2 5/7]Timer: Remove " Graeme Russ
2011-07-16  9:36     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:53       ` Wolfgang Denk
2011-08-19 21:24         ` Mike Frysinger
2011-08-19 22:55           ` Graeme Russ
2011-08-19 23:12             ` Mike Frysinger
2011-09-28 19:24           ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 06/16] [Timer]Fix at91rm9200/spi.c timer usage Graeme Russ
2011-06-28 12:30   ` Andreas Bießmann
2011-07-15 12:20   ` [U-Boot] [PATCH v2 6/7]Timer: Fix " Graeme Russ
2011-07-16  9:37     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:54       ` Wolfgang Denk
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 07/16] [Timer]Remove reset_timer_masked() Graeme Russ
2011-07-11 22:04   ` Wolfgang Denk
2011-07-15 12:21   ` [U-Boot] [PATCH v2 7/7]Timer: Remove reset_timer_masked() Graeme Russ
2011-07-16  9:38     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:54       ` Wolfgang Denk
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 08/16] [Timer]Create new userland timer API Graeme Russ
2011-06-29  4:31   ` Simon Glass [this message]
2011-06-29  4:36     ` Graeme Russ
2011-06-29  4:48       ` Simon Glass
2011-07-11 22:05   ` Wolfgang Denk
2011-07-11 22:32     ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 09/16] [Timer]Replace get_timer() usage in drivers/block/ Graeme Russ
2011-06-29  4:40   ` Simon Glass
2011-06-29  5:06     ` Reinhard Meyer
2011-06-29  5:19       ` Graeme Russ
2011-06-29  5:30         ` Simon Glass
2011-06-29  5:38           ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 10/16] [Timer]Replace get_timer() usage in driver/mtd and driver/block Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 11/16] [Timer]Remove reset_timer() completely Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 12/16] [Timer]Replace get_timer() usage in drivers/ Graeme Russ
2011-06-28 12:36   ` Vitaly Kuzmichev
2011-06-28 23:03     ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 13/16] [Timer]Replace get_timer() usage in net/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 14/16] [Timer]Replace get_timer() usage in common/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 15/16] [Timer]Replace get_timer() usage in board/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 16/16] [Timer]Replace get_timer() usage in arch/ Graeme Russ
2011-06-29  4:45   ` Simon Glass
2011-06-29  4:51     ` Graeme Russ
2011-06-29  5:15       ` Mike Frysinger
2011-06-29  5:26         ` Mike Frysinger
2011-06-29  5:29           ` Graeme Russ
2011-06-29  4:54 ` [U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite Graeme Russ
2011-06-29  5:08 ` Mike Frysinger
2011-06-29  5:20   ` Graeme Russ
2011-07-08  0:25 ` Graeme Russ
2011-07-09  6:01   ` Albert ARIBAUD
2011-07-11 21:56 ` Wolfgang Denk
2011-07-11 22:49   ` Graeme Russ
2011-07-11 23:36   ` Graeme Russ
2011-07-12  2:17     ` Graeme Russ
2011-07-12  8:49       ` Wolfgang Denk
2011-07-12 10:36         ` Graeme Russ
2011-07-12 13:10           ` Wolfgang Denk
2011-07-12 15:23             ` Scott McNutt
2011-07-12 17:27               ` J. William Campbell
2011-07-13  0:29             ` Graeme Russ
2011-07-14 19:30               ` Wolfgang Denk
2011-07-17  1:51           ` Graeme Russ
2011-07-12 14:30       ` J. William Campbell
2011-07-12 16:08         ` Reinhard Meyer
2011-07-13  0:33           ` Graeme Russ
2011-07-13  1:20             ` J. William Campbell
2011-07-14 19:41               ` Wolfgang Denk
2011-07-14 23:52                 ` J. William Campbell
2011-07-15  7:17                   ` Wolfgang Denk
2011-07-15 18:08                     ` J. William Campbell
2011-07-15 18:34                       ` Wolfgang Denk
2011-07-15 21:03                         ` J. William Campbell
2011-07-16 14:11                           ` Graeme Russ
2011-07-15 12:15 ` [U-Boot] [PATCH v2 0/7]Timer: Simplify API Graeme Russ
2011-07-15 13:08   ` Graeme Russ
2011-07-16  8:36     ` Albert ARIBAUD
2011-07-16  9:01       ` Graeme Russ
2011-07-16  9:13         ` Albert ARIBAUD
2011-07-16  9:32         ` Wolfgang Denk

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=CAPnjgZ2e42WeZdH3moKO+EfP0f7huo-Kjsg7Rz0SqyAHFjTQAg@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /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.