watchdog: s3c2410_wdt: Only register for cpufreq on ARM_S3C24XX_CPUFREQ
authorDoug Anderson <dianders@chromium.org>
Mon, 25 Nov 2013 23:36:43 +0000 (15:36 -0800)
committerWim Van Sebroeck <wim@iguana.be>
Tue, 28 Jan 2014 20:22:38 +0000 (21:22 +0100)
commit0f1dd98d896efb956d474754b5d2f0c420d40192
treec4d2621fc2fa49f73407a068f5a99577b45e0598
parent25134eafb05eef6dd4b6caee3a711b63ee0c3737
watchdog: s3c2410_wdt: Only register for cpufreq on ARM_S3C24XX_CPUFREQ

On modern SoCs the watchdog timer is parented on a clock that doesn't
change every time we have a cpufreq change.  That means we don't need
to constantly adjust the watchdog timer, so avoid registering for and
dealing with cpufreq transitions unless we've actually got
CONFIG_ARM_S3C24XX_CPUFREQ defined.

Note that this is more than just an optimization.  The s3c2410
watchdog driver actually pats the watchdog on every CPU frequency
change.  On modern systems these happen many times per second (even in
a system where "nothing" is happening).  That effectively makes any
userspace watchdog program useless (the watchdog is constantly patted
by the kernel).  If we need ARM_S3C24XX_CPUFREQ defined on a
multiplatform kernel we'll need to make sure that kernel supports
common clock and change this to user common clock framework.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/s3c2410_wdt.c