Message ID | 1374278673-25615-6-git-send-email-tomasz.figa@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/20/2013 02:04 AM, Tomasz Figa wrote: > In case of Samsung PWM timer, clocksource MMIO can not be used, because > custom suspend/resume callbacks are required. > > Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> > --- Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org> Please in the future Cc me and Thomas Gleixner (clocksource/clockevent maintainers). Thanks -- Daniel > drivers/clocksource/Kconfig | 1 - > drivers/clocksource/samsung_pwm_timer.c | 19 +++++++++++++++---- > 2 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig > index b7b9b04..41c6946 100644 > --- a/drivers/clocksource/Kconfig > +++ b/drivers/clocksource/Kconfig > @@ -99,7 +99,6 @@ config CLKSRC_EXYNOS_MCT > > config CLKSRC_SAMSUNG_PWM > bool > - select CLKSRC_MMIO > help > This is a new clocksource driver for the PWM timer found in > Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver > diff --git a/drivers/clocksource/samsung_pwm_timer.c b/drivers/clocksource/samsung_pwm_timer.c > index 823279b..753ffec 100644 > --- a/drivers/clocksource/samsung_pwm_timer.c > +++ b/drivers/clocksource/samsung_pwm_timer.c > @@ -288,6 +288,18 @@ static void __init samsung_clockevent_init(void) > } > } > > +static cycle_t samsung_clocksource_read(struct clocksource *c) > +{ > + return ~readl_relaxed(pwm.source_reg); > +} > + > +static struct clocksource samsung_clocksource = { > + .name = "samsung_clocksource_timer", > + .rating = 250, > + .read = samsung_clocksource_read, > + .flags = CLOCK_SOURCE_IS_CONTINUOUS, > +}; > + > /* > * Override the global weak sched_clock symbol with this > * local implementation which uses the clocksource to get some > @@ -297,7 +309,7 @@ static void __init samsung_clockevent_init(void) > */ > static u32 notrace samsung_read_sched_clock(void) > { > - return ~__raw_readl(pwm.source_reg); > + return samsung_clocksource_read(NULL); > } > > static void __init samsung_clocksource_init(void) > @@ -324,9 +336,8 @@ static void __init samsung_clocksource_init(void) > setup_sched_clock(samsung_read_sched_clock, > pwm.variant.bits, clock_rate); > > - ret = clocksource_mmio_init(pwm.source_reg, "samsung_clocksource_timer", > - clock_rate, 250, pwm.variant.bits, > - clocksource_mmio_readl_down); > + samsung_clocksource.mask = CLOCKSOURCE_MASK(pwm.variant.bits); > + ret = clocksource_register_hz(&samsung_clocksource, clock_rate); > if (ret) > panic("samsung_clocksource_timer: can't register clocksource\n"); > } >
Hi Daniel, On Monday 22 of July 2013 05:56:16 Daniel Lezcano wrote: > On 07/20/2013 02:04 AM, Tomasz Figa wrote: > > In case of Samsung PWM timer, clocksource MMIO can not be used, > > because > > custom suspend/resume callbacks are required. > > > > Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> > > --- > > Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org> Thanks for review. > Please in the future Cc me and Thomas Gleixner (clocksource/clockevent > maintainers). Oh, right, sorry. This series originally was not touching the clocksource driver and I just kept original recipient list. Btw. Have you updated MAINTAINERS file? In latest linux-next I can still see only John Stultz and Thomas Gleixner as maintainers of drivers/clocksource. Best regards, Tomasz
On 07/22/2013 09:47 AM, Tomasz Figa wrote: > Hi Daniel, > > On Monday 22 of July 2013 05:56:16 Daniel Lezcano wrote: >> On 07/20/2013 02:04 AM, Tomasz Figa wrote: >>> In case of Samsung PWM timer, clocksource MMIO can not be used, >>> because >>> custom suspend/resume callbacks are required. >>> >>> Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> >>> --- >> >> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org> > > Thanks for review. > >> Please in the future Cc me and Thomas Gleixner (clocksource/clockevent >> maintainers). > > Oh, right, sorry. This series originally was not touching the clocksource > driver and I just kept original recipient list. > > Btw. Have you updated MAINTAINERS file? In latest linux-next I can still > see only John Stultz and Thomas Gleixner as maintainers of > drivers/clocksource. Yes, right last week :) https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit/?h=timers/core&id=9222d247bcbaacc40fe15549158f9d67523c1ace Thanks -- Daniel
On Monday 22 of July 2013 22:13:17 Daniel Lezcano wrote: > On 07/22/2013 09:47 AM, Tomasz Figa wrote: > > Hi Daniel, > > > > On Monday 22 of July 2013 05:56:16 Daniel Lezcano wrote: > >> On 07/20/2013 02:04 AM, Tomasz Figa wrote: > >>> In case of Samsung PWM timer, clocksource MMIO can not be used, > >>> because > >>> custom suspend/resume callbacks are required. > >>> > >>> Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> > >>> --- > >> > >> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org> > > > > Thanks for review. > > > >> Please in the future Cc me and Thomas Gleixner > >> (clocksource/clockevent > >> maintainers). > > > > Oh, right, sorry. This series originally was not touching the > > clocksource driver and I just kept original recipient list. > > > > Btw. Have you updated MAINTAINERS file? In latest linux-next I can > > still see only John Stultz and Thomas Gleixner as maintainers of > > drivers/clocksource. > > Yes, right last week :) > > https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit/?h=timer > s/core&id=9222d247bcbaacc40fe15549158f9d67523c1ace OK, great, just wanted to make sure. Apparently linux-next did not pick this up. Best regards, Tomasz
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index b7b9b04..41c6946 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@ -99,7 +99,6 @@ config CLKSRC_EXYNOS_MCT config CLKSRC_SAMSUNG_PWM bool - select CLKSRC_MMIO help This is a new clocksource driver for the PWM timer found in Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver diff --git a/drivers/clocksource/samsung_pwm_timer.c b/drivers/clocksource/samsung_pwm_timer.c index 823279b..753ffec 100644 --- a/drivers/clocksource/samsung_pwm_timer.c +++ b/drivers/clocksource/samsung_pwm_timer.c @@ -288,6 +288,18 @@ static void __init samsung_clockevent_init(void) } } +static cycle_t samsung_clocksource_read(struct clocksource *c) +{ + return ~readl_relaxed(pwm.source_reg); +} + +static struct clocksource samsung_clocksource = { + .name = "samsung_clocksource_timer", + .rating = 250, + .read = samsung_clocksource_read, + .flags = CLOCK_SOURCE_IS_CONTINUOUS, +}; + /* * Override the global weak sched_clock symbol with this * local implementation which uses the clocksource to get some @@ -297,7 +309,7 @@ static void __init samsung_clockevent_init(void) */ static u32 notrace samsung_read_sched_clock(void) { - return ~__raw_readl(pwm.source_reg); + return samsung_clocksource_read(NULL); } static void __init samsung_clocksource_init(void) @@ -324,9 +336,8 @@ static void __init samsung_clocksource_init(void) setup_sched_clock(samsung_read_sched_clock, pwm.variant.bits, clock_rate); - ret = clocksource_mmio_init(pwm.source_reg, "samsung_clocksource_timer", - clock_rate, 250, pwm.variant.bits, - clocksource_mmio_readl_down); + samsung_clocksource.mask = CLOCKSOURCE_MASK(pwm.variant.bits); + ret = clocksource_register_hz(&samsung_clocksource, clock_rate); if (ret) panic("samsung_clocksource_timer: can't register clocksource\n"); }
In case of Samsung PWM timer, clocksource MMIO can not be used, because custom suspend/resume callbacks are required. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> --- drivers/clocksource/Kconfig | 1 - drivers/clocksource/samsung_pwm_timer.c | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-)