linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: magnus.damm@gmail.com (Magnus Damm)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 00/16] Consolidation: move SMP local timers to driver/clocksource
Date: Mon, 27 Jun 2011 13:53:28 +0900	[thread overview]
Message-ID: <BANLkTi=yqsa9Arwqex2SRmuLLZeJ3EUDNw@mail.gmail.com> (raw)
In-Reply-To: <BANLkTimsGp+FsKSxqzigmFCZxhQ+Av0DzA@mail.gmail.com>

On Sun, Jun 26, 2011 at 4:00 PM, Grant Likely <grant.likely@secretlab.ca> wrote:
> On Mon, Jun 20, 2011 at 2:32 AM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
>> On Mon, Jun 20, 2011 at 09:25:30AM +0100, Marc Zyngier wrote:
>>> On 17/06/11 18:25, Rob Herring wrote:
>>> > If this is the direction to go, then there are a lot of other timers
>>> > that can be moved besides just local timers. But Russell didn't really
>>> > like the shmobile patches for early platform devices which this relies
>>> > on. So we should get agreement on the small bit of infrastructure needed
>>> > first, then start moving individual timers.
>>>
>>> I'm open to suggestions. Should the early platform infrastructure be
>>> flagged as unsuitable, I'd be happy to switch to something else, as long
>>> as it is minimal, and does not create another ARM-specific API (been
>>> there, done that...).
>>
>> I am most certainly not a fan of the early platform device stuff as I've
>> said in the past.
>>
>> It looks to me like:
>>
>> 1. it's overcomplex and fragile.
>> 2. it abuses the early command line system.
>> 3. it abuses platform devices etc.
>> 4. it requires more initialization calls.
>>
>> Lastly, and probably more importantly for the direction we're going, I
>> can't see how it would hook into DT other than using the DT provided
>> command line, which also appears to be an abuse there too.
>
> I'm going to second that opinion. ?I just looked through the early
> platform stuff, and I'm not thrilled with the model.
>
> Setting up timers does not need to plug into the device model. ?Unless
> I'm completely reading the ARM code wrong, these timers are pretty
> fundamental to the operating system, and thus aren't really like other
> devices. ?I don't see any problem with individual timer init functions
> populated in machine_desc assuming that multiple boards with the same
> SoC will not require different timer initialization.

Perhaps that's the case for some ARM platforms, but at least the
sh7372 ARM platform is using general purpose timers as system timers.
We have to since there are not other timers dedicated as system
timers. Same for the SH architecture. I suspect that's the case for
most other SoCs too actually, with the exception of platforms making
use of ARM IP such as the TWD found in for instance Cortex-A9.

On most SoCs there are a wide range of SoC-specific timer channels to
choose from. We want to reuse the same driver for multiple SoCs so
separating the device configuration parameters (such as I/O base and
IRQ) from the actual driver is desired.

The reason why we want to select timer channel is that some timer
channels are tied to GPIO pins, and those GPIO pins may be used to
driver board-specific hardware. So timer channel #2 may be great as
clock source for board X but on board Y channel #2 is used to drive
the PWM for the LCD backlight.

I fail to see what is wrong with separating device configuration from
the actual driver.

Thanks,

/ magnus

  reply	other threads:[~2011-06-27  4:53 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-16 19:06 [RFC PATCH 00/16] Consolidation: move SMP local timers to driver/clocksource Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 01/16] ARM: local timers: early device probing hooks Marc Zyngier
2011-06-17 14:56   ` Arnd Bergmann
2011-06-17 15:13     ` Marc Zyngier
2011-06-17 16:10       ` Arnd Bergmann
2011-06-16 19:06 ` [RFC PATCH 02/16] ARM: local timers: add arm_smp_twd driver to driver/clocksource Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 03/16] ARM: local timers: move realview to LOCAL_TIMER_DEVICES/ARM_SMP_TWD Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 04/16] ARM: local timers: move vexpress " Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 05/16] ARM: local timers: remove localtimer.c from plat-versatile Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 06/16] ARM: local timers: move Tegra to LOCAL_TIMER_DEVICES/ARM_SMP_TWD Marc Zyngier
2011-06-16 20:07   ` Stephen Warren
2011-06-16 20:22     ` Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 07/16] ARM: local timers: move OMAP4 " Marc Zyngier
2011-06-17  8:16   ` Santosh Shilimkar
2011-06-17  8:39     ` Marc Zyngier
2011-06-17  8:42       ` Santosh Shilimkar
2011-06-16 19:06 ` [RFC PATCH 08/16] ARM: local timers: move shmobile " Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 09/16] ARM: local timers: move ux500 " Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 10/16] ARM: local timers: add exynos_mct driver to driver/clocksource Marc Zyngier
2011-06-17 15:09   ` Arnd Bergmann
2011-06-17 15:17     ` Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 11/16] ARM: local timers: move exynos4 to LOCAL_TIMER_DEVICES/EXYNOS_MCT/ARM_SMP_TWD Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 12/16] ARM: watchdog: make mpcore_wdt independant from asm/smp_twd.h Marc Zyngier
2011-06-17  7:08   ` Wim Van Sebroeck
2011-06-17  8:04     ` Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 13/16] ARM: local timers: remove smp_twd from arch/arm Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 14/16] ARM: local timers: add msm_timer driver to driver/clocksource Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 15/16] ARM: local timers: move msm to LOCAL_TIMER_DEVICES/MSM_TIMER Marc Zyngier
2011-06-16 19:06 ` [RFC PATCH 16/16] ARM: local timers: remove local timer support from arch/arm Marc Zyngier
2011-06-17 11:00 ` [RFC PATCH 00/16] Consolidation: move SMP local timers to driver/clocksource Linus Walleij
2011-06-17 13:27   ` Marc Zyngier
2011-06-20  8:21     ` Linus Walleij
2011-06-17 15:07 ` Arnd Bergmann
2011-06-17 15:24   ` Marc Zyngier
2011-06-17 17:25   ` Rob Herring
2011-06-20  8:25     ` Marc Zyngier
2011-06-20  8:32       ` Russell King - ARM Linux
2011-06-22  0:54         ` Magnus Damm
2011-06-26  7:00         ` Grant Likely
2011-06-27  4:53           ` Magnus Damm [this message]
2011-06-21 11:13     ` Marc Zyngier
2011-06-21 12:51       ` Rob Herring
2011-06-21 13:02         ` Marc Zyngier
2011-06-21 13:18           ` Rob Herring
2011-06-21 13:46             ` Marc Zyngier
2011-06-20  8:23   ` Linus Walleij

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='BANLkTi=yqsa9Arwqex2SRmuLLZeJ3EUDNw@mail.gmail.com' \
    --to=magnus.damm@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).