[PATCH] mpc5200/gpt: tiny fix for gpt period limitation

Grant Likely grant.likely at secretlab.ca
Fri Nov 13 08:15:09 EST 2009


On Wed, Nov 11, 2009 at 1:49 AM, Albrecht Dreß <albrecht.dress at arcor.de> wrote:
> This patch fixes a limitation of the 5200's period.
>
> Signed-off-by: Albrecht Dreß <albrecht.dress at arcor.de>

Okay, I've applied this and patches 1 & 2 from your series.  I'm
waiting for a reply from Wim to know whether or not I should also pick
up patch 3.  BUT, you're on my shit list.  Patch 2 in your series
conflicts with this patch.  I had to fix it up by hand.  This patch
should have been part of the series, or at least base the series on
this patch.  Take a look in my -test branch and make sure I fixed it
right.

g.

> ---
>
>  arch/powerpc/include/asm/mpc52xx.h        |    2 +-
>  arch/powerpc/platforms/52xx/mpc52xx_gpt.c |    6 +++---
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/mpc52xx.h b/arch/powerpc/include/asm/mpc52xx.h
> index 707ab75..933fb8f 100644
> --- a/arch/powerpc/include/asm/mpc52xx.h
> +++ b/arch/powerpc/include/asm/mpc52xx.h
> @@ -279,7 +279,7 @@ extern void mpc52xx_restart(char *cmd);
>  /* mpc52xx_gpt.c */
>  struct mpc52xx_gpt_priv;
>  extern struct mpc52xx_gpt_priv *mpc52xx_gpt_from_irq(int irq);
> -extern int mpc52xx_gpt_start_timer(struct mpc52xx_gpt_priv *gpt, int period,
> +extern int mpc52xx_gpt_start_timer(struct mpc52xx_gpt_priv *gpt, u64 period,
>                             int continuous);
>  extern void mpc52xx_gpt_stop_timer(struct mpc52xx_gpt_priv *gpt);
>
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> index 2c3fa13..77572ab 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> @@ -378,12 +378,12 @@ EXPORT_SYMBOL(mpc52xx_gpt_from_irq);
>  /**
>  * mpc52xx_gpt_start_timer - Set and enable the GPT timer
>  * @gpt: Pointer to gpt private data structure
> - * @period: period of timer
> + * @period: period of timer in ns; max. ~130s @ 33MHz IPB clock
>  * @continuous: set to 1 to make timer continuous free running
>  *
>  * An interrupt will be generated every time the timer fires
>  */
> -int mpc52xx_gpt_start_timer(struct mpc52xx_gpt_priv *gpt, int period,
> +int mpc52xx_gpt_start_timer(struct mpc52xx_gpt_priv *gpt, u64 period,
>                             int continuous)
>  {
>        u32 clear, set;
> @@ -400,7 +400,7 @@ int mpc52xx_gpt_start_timer(struct mpc52xx_gpt_priv *gpt, int period,
>         * arithmatic is done here to preserve the precision until the value
>         * is scaled back down into the u32 range.  Period is in 'ns', bus
>         * frequency is in Hz. */
> -       clocks = (u64)period * (u64)gpt->ipb_freq;
> +       clocks = period * (u64)gpt->ipb_freq;
>        do_div(clocks, 1000000000); /* Scale it down to ns range */
>
>        /* This device cannot handle a clock count greater than 32 bits */
>
>
> Jetzt NEU: Do it youself E-Cards bei Arcor.de!
> Stellen Sie Ihr eigenes Unikat zusammen und machen Sie dem Empfänger eine ganz persönliche Freude!
> E-Card Marke Eigenbau: HIER KLICKEN: http://www.arcor.de/rd/footer.ecard
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.


More information about the Linuxppc-dev mailing list