All of lore.kernel.org
 help / color / mirror / Atom feed
From: boris.brezillon@free-electrons.com (Boris BREZILLON)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/13] AT91: PIT: (Almost) remove the global variables
Date: Thu, 26 Jun 2014 07:12:06 +0200	[thread overview]
Message-ID: <53ABABA6.1060205@free-electrons.com> (raw)
In-Reply-To: <1403701605-26678-10-git-send-email-maxime.ripard@free-electrons.com>

Hello Maxime,

On 25/06/2014 15:06, Maxime Ripard wrote:
> The timer driver is using some global variables to define some variables it has
> to use in most of its functions, like the base address.
>
> Use some container_of calls to have a single dynamic (and local) variable to
> hold this content.
>
> The only exception is in the !DT case, where the call chain to
> at91sam926x_ioremap_pit and then at91sam926x_pit_init as init_time makes it
> hard for the moment to pass the physical address of the timer.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  arch/arm/mach-at91/at91sam926x_time.c | 179 ++++++++++++++++++++--------------
>  1 file changed, 108 insertions(+), 71 deletions(-)
>
> diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c
> index 9678ac391a81..f2c463567beb 100644
> --- a/arch/arm/mach-at91/at91sam926x_time.c
> +++ b/arch/arm/mach-at91/at91sam926x_time.c
> @@ -20,6 +20,7 @@
>  #include <linux/of.h>
>  #include <linux/of_address.h>
>  #include <linux/of_irq.h>
> +#include <linux/slab.h>
>  

[...]

>  	unsigned	bits;
> @@ -186,67 +195,95 @@ static void __init at91sam926x_pit_common_init(unsigned int pit_irq)
>  	 * Use our actual MCK to figure out how many MCK/16 ticks per
>  	 * 1/HZ period (instead of a compile-time constant LATCH).
>  	 */
> -	pit_rate = clk_get_rate(mck) / 16;
> -	pit_cycle = (pit_rate + HZ/2) / HZ;
> -	WARN_ON(((pit_cycle - 1) & ~AT91_PIT_PIV) != 0);
> +	pit_rate = clk_get_rate(data->mck) / 16;
> +	data->cycle = (pit_rate + HZ/2) / HZ;

You could use DIV_ROUND_CLOSEST here.

Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

WARNING: multiple messages have this Message-ID (diff)
From: Boris BREZILLON <boris.brezillon@free-electrons.com>
To: Maxime Ripard <maxime.ripard@free-electrons.com>,
	linux@maxim.org.za, Nicolas Ferre <nicolas.ferre@atmel.com>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Boris Brezillon <boris@free-electrons.com>,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	Thomas Petazzoni <thomas@free-electrons.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 09/13] AT91: PIT: (Almost) remove the global variables
Date: Thu, 26 Jun 2014 07:12:06 +0200	[thread overview]
Message-ID: <53ABABA6.1060205@free-electrons.com> (raw)
In-Reply-To: <1403701605-26678-10-git-send-email-maxime.ripard@free-electrons.com>

Hello Maxime,

On 25/06/2014 15:06, Maxime Ripard wrote:
> The timer driver is using some global variables to define some variables it has
> to use in most of its functions, like the base address.
>
> Use some container_of calls to have a single dynamic (and local) variable to
> hold this content.
>
> The only exception is in the !DT case, where the call chain to
> at91sam926x_ioremap_pit and then at91sam926x_pit_init as init_time makes it
> hard for the moment to pass the physical address of the timer.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  arch/arm/mach-at91/at91sam926x_time.c | 179 ++++++++++++++++++++--------------
>  1 file changed, 108 insertions(+), 71 deletions(-)
>
> diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c
> index 9678ac391a81..f2c463567beb 100644
> --- a/arch/arm/mach-at91/at91sam926x_time.c
> +++ b/arch/arm/mach-at91/at91sam926x_time.c
> @@ -20,6 +20,7 @@
>  #include <linux/of.h>
>  #include <linux/of_address.h>
>  #include <linux/of_irq.h>
> +#include <linux/slab.h>
>  

[...]

>  	unsigned	bits;
> @@ -186,67 +195,95 @@ static void __init at91sam926x_pit_common_init(unsigned int pit_irq)
>  	 * Use our actual MCK to figure out how many MCK/16 ticks per
>  	 * 1/HZ period (instead of a compile-time constant LATCH).
>  	 */
> -	pit_rate = clk_get_rate(mck) / 16;
> -	pit_cycle = (pit_rate + HZ/2) / HZ;
> -	WARN_ON(((pit_cycle - 1) & ~AT91_PIT_PIV) != 0);
> +	pit_rate = clk_get_rate(data->mck) / 16;
> +	data->cycle = (pit_rate + HZ/2) / HZ;

You could use DIV_ROUND_CLOSEST here.

Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com


  reply	other threads:[~2014-06-26  5:12 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-25 13:06 [PATCH 00/13] AT91: PIT: Cleanups and move to drivers/clocksource Maxime Ripard
2014-06-25 13:06 ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 01/13] AT91: PIT: Follow the general coding rules Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 02/13] AT91: generic.h: Add include safe guards Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 03/13] AT91: PIT: Use of_have_populated_dt instead of CONFIG_OF Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 04/13] AT91: PIT: Rework probe functions Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 05/13] AT91: dt: Remove init_time definitions Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 06/13] AT91: PIT: Use consistent exit path in probe Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 07/13] AT91: PIT: Use pr_fmt Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 08/13] AT91: PIT: use request_irq instead of setup_irq Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 09/13] AT91: PIT: (Almost) remove the global variables Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-26  5:12   ` Boris BREZILLON [this message]
2014-06-26  5:12     ` Boris BREZILLON
2014-06-26  9:28     ` Maxime Ripard
2014-06-26  9:28       ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 10/13] AT91: soc: Add init_time callback Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 11/13] AT91: Convert the boards to the " Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 12/13] AT91: PIT: Convert to an early_platform_device Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-25 13:06 ` [PATCH 13/13] AT91: PIT: Move the driver to drivers/clocksource Maxime Ripard
2014-06-25 13:06   ` Maxime Ripard
2014-06-26  5:26   ` Boris BREZILLON
2014-06-26  5:26     ` Boris BREZILLON
2014-06-26  9:30     ` Maxime Ripard
2014-06-26  9:30       ` Maxime Ripard
2014-06-26 11:48       ` Boris BREZILLON
2014-06-26 11:48         ` Boris BREZILLON
2014-06-26 12:54         ` Maxime Ripard
2014-06-26 12:54           ` Maxime Ripard
2014-06-26  5:30 ` [PATCH 00/13] AT91: PIT: Cleanups and move " Boris BREZILLON
2014-06-26  5:30   ` Boris BREZILLON

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=53ABABA6.1060205@free-electrons.com \
    --to=boris.brezillon@free-electrons.com \
    --cc=linux-arm-kernel@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 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.