From e589bca1549b46f5befaf8ebd47579c56887ae7a Mon Sep 17 00:00:00 2001 From: Tomasz Figa Date: Tue, 23 Apr 2013 17:46:27 +0200 Subject: [PATCH] --- yaml --- r: 374224 b: refs/heads/master c: f9bb48a2c25a96757d13795ba7cc52687f94446f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/clocksource/Kconfig | 1 - trunk/drivers/clocksource/samsung_pwm_timer.c | 16 ++++++++++++++-- trunk/include/clocksource/samsung_pwm.h | 3 +++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index f5d4174e0b48..b75ddf3750c7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 09d718a78c79ddc270dccbfa1b1070b20b9a9ae1 +refs/heads/master: f9bb48a2c25a96757d13795ba7cc52687f94446f diff --git a/trunk/drivers/clocksource/Kconfig b/trunk/drivers/clocksource/Kconfig index ff5b6d87d65a..6d6174978f95 100644 --- a/trunk/drivers/clocksource/Kconfig +++ b/trunk/drivers/clocksource/Kconfig @@ -70,7 +70,6 @@ config CLKSRC_METAG_GENERIC config CLKSRC_SAMSUNG_PWM bool - depends on OF select CLKSRC_MMIO help This is a new clocksource driver for the PWM timer found in diff --git a/trunk/drivers/clocksource/samsung_pwm_timer.c b/trunk/drivers/clocksource/samsung_pwm_timer.c index e3257fae04e6..9f4bd6aa2343 100644 --- a/trunk/drivers/clocksource/samsung_pwm_timer.c +++ b/trunk/drivers/clocksource/samsung_pwm_timer.c @@ -356,7 +356,7 @@ static void __init samsung_timer_resources(void) /* * PWM master driver */ -static void __init samsung_pwm_clocksource_init(void) +static void __init _samsung_pwm_clocksource_init(void) { u8 mask; int channel; @@ -378,6 +378,17 @@ static void __init samsung_pwm_clocksource_init(void) samsung_clocksource_init(); } +void __init samsung_pwm_clocksource_init(void __iomem *base, + unsigned int *irqs, struct samsung_pwm_variant *variant) +{ + pwm.base = base; + memcpy(&pwm.variant, variant, sizeof(pwm.variant)); + memcpy(pwm.irq, irqs, SAMSUNG_PWM_NUM * sizeof(*irqs)); + + _samsung_pwm_clocksource_init(); +} + +#ifdef CONFIG_CLKSRC_OF static void __init samsung_pwm_alloc(struct device_node *np, const struct samsung_pwm_variant *variant) { @@ -414,7 +425,7 @@ static void __init samsung_pwm_alloc(struct device_node *np, return; } - samsung_pwm_clocksource_init(); + _samsung_pwm_clocksource_init(); } static const struct samsung_pwm_variant s3c24xx_variant = { @@ -468,3 +479,4 @@ static void __init s5p_pwm_clocksource_init(struct device_node *np) samsung_pwm_alloc(np, &s5p_variant); } CLOCKSOURCE_OF_DECLARE(s5pc100_pwm, "samsung,s5pc100-pwm", s5p_pwm_clocksource_init); +#endif diff --git a/trunk/include/clocksource/samsung_pwm.h b/trunk/include/clocksource/samsung_pwm.h index b1d8fe706f1a..5c449c8199e9 100644 --- a/trunk/include/clocksource/samsung_pwm.h +++ b/trunk/include/clocksource/samsung_pwm.h @@ -30,4 +30,7 @@ struct samsung_pwm_variant { bool has_tint_cstat; }; +void samsung_pwm_clocksource_init(void __iomem *base, + unsigned int *irqs, struct samsung_pwm_variant *variant); + #endif /* __CLOCKSOURCE_SAMSUNG_PWM_H */