Skip to content

Commit

Permalink
ARM: mach-shmobile: Introduce shmobile_setup_delay()
Browse files Browse the repository at this point in the history
Add the function shmobile_setup_delay() to let platforms
configure their maximum loops per jiffy delay. With this
jiffies calculation done the dependency on early timer
is removed.

In the future this allows us to assign timers
using the regular driver model via the device tree.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
Magnus Damm authored and Rafael J. Wysocki committed Apr 11, 2012
1 parent 0034102 commit 0f2c9f2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm/mach-shmobile/include/mach/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

extern void shmobile_earlytimer_init(void);
extern struct sys_timer shmobile_timer;
extern void shmobile_setup_delay(unsigned int max_cpu_core_mhz,
unsigned int mult, unsigned int div);
struct twd_local_timer;
void shmobile_twd_init(struct twd_local_timer *twd_local_timer);
extern void shmobile_setup_console(void);
Expand Down
17 changes: 17 additions & 0 deletions arch/arm/mach-shmobile/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,26 @@
*
*/
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <asm/mach/time.h>
#include <asm/smp_twd.h>

void __init shmobile_setup_delay(unsigned int max_cpu_core_mhz,
unsigned int mult, unsigned int div)
{
/* calculate a worst-case loops-per-jiffy value
* based on maximum cpu core mhz setting and the
* __delay() implementation in arch/arm/lib/delay.S
*
* this will result in a longer delay than expected
* when the cpu core runs on lower frequencies.
*/

unsigned int value = (1000000 * mult) / (HZ * div);

lpj_fine = max_cpu_core_mhz * value;
}

static void __init shmobile_late_time_init(void)
{
/*
Expand Down

0 comments on commit 0f2c9f2

Please sign in to comment.