31 May, 2011
2 commits
-
This reverts commit 01fa68b58492a5d6708a91c1f474b6a099a9509e.
The same note as per the sh_tmu change applies here, too.
Signed-off-by: Paul Mundt
-
This reverts commit 1b842e91fea9447eff5eb687e28ad61c02f5033e.
There is a fundamental ordering race between the early and late probe
paths and the runtime PM tie-in that results in __pm_runtime_resume()
attempting to take a lock that hasn't been initialized yet (which by
proxy also suggests that pm_runtime_init() hasn't yet been run on the
device either, making the entire thing unsafe) -- resulting in instant
death on SMP or on UP with spinlock debugging enabled:sh_tmu.0: used for clock events
sh_tmu.0: used for periodic clock events
BUG: spinlock trylock failure on UP on CPU#0, swapper/0
lock: 804db198, .magic: 00000000, .owner: /-1, .owner_cpu: 0
...Revert it for now until the ordering issues can be resolved, or we can get
some more help from the runtime PM framework to make this possible.Signed-off-by: Paul Mundt
24 May, 2011
2 commits
-
* 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)
sh: Ignore R_SH_NONE module relocations.
SH: SE7751: Fix pcibios_map_platform_irq prototype.
sh: remove warning and warning_symbol from struct stacktrace_ops
sh: wire up sys_sendmmsg.
clocksource: sh_tmu: Runtime PM support
clocksource: sh_tmu: __clocksource_updatefreq_hz() update
clocksource: sh_cmt: Runtime PM support
clocksource: sh_cmt: __clocksource_updatefreq_hz() update
dmaengine: shdma: synchronize RCU before freeing, simplify spinlock
dmaengine: shdma: add runtime- and system-level power management
dmaengine: shdma: fix locking
sh: sh-sci: sh7377 and sh73a0 build fixes
sh: cosmetic improvement: use an existing pointer
serial: sh-sci: suspend/resume wakeup support V2
serial: sh-sci: Runtime PM support
sh: select IRQ_FORCED_THREADING.
sh: intc: Set virtual IRQs as nothread.
sh: fixup fpu.o compile order
i2c: add a module alias to the sh-mobile driver
ALSA: add a module alias to the FSI driver
... -
Add a generic mmio clocksource, covering both 32-bit and 16-bit register
access sizes, for up or down counters. This can be used to easily
create clocksources for simple counter-based implementations.Cc: Alessandro Rubini
Cc: Colin Cross
Cc: Eric Miao
Cc: Erik Gilling
Acked-by: "Hans J. Koch"
Cc: Imre Kaloz
Cc: Krzysztof Halasa
Cc: Kukjin Kim
Cc: Lennert Buytenhek
Cc: Linus Walleij
Cc: linux-omap@vger.kernel.org
Acked-by: Nicolas Pitre
Cc: Olof Johansson
Tested-by: Sascha Hauer
Reviewed-by: Thomas Gleixner
Tested-by: Tony Lindgren
Reviewed-by: Viresh Kumar
Cc: Wan ZongShun
Signed-off-by: Russell King
23 May, 2011
4 commits
-
Add Runtime PM support to the TMU driver.
The hardware device is enabled as long as the clocksource
or the clockevent portion of the driver is used.Signed-off-by: Magnus Damm
Acked-by: John Stultz
Signed-off-by: Paul Mundt -
This patch updates the clocksource part of the TMU driver
to make use of the __clocksource_updatefreq_hz() function.Without this patch the old code uses clocksource_register()
together with a hack that assumes a never changing clock rate
(see clk_enable(), clk_get_rate() and clk_disable()).The patch uses clocksource_register_hz() with 1 Hz as initial
value, then lets the ->enable() callback update the value
with __clocksource_updatefreq_hz() once the struct clk has
been enabled and the frequency is stable.Signed-off-by: Magnus Damm
Acked-by: John Stultz
Signed-off-by: Paul Mundt -
Add Runtime PM support to the CMT driver.
The hardware device is enabled as long as the clocksource
or the clockevent portion of the driver is used.Signed-off-by: Magnus Damm
Acked-by: John Stultz
Signed-off-by: Paul Mundt -
This patch updates the clocksource part of the CMT driver
to make use of the __clocksource_updatefreq_hz() function.Without this patch the old code uses clocksource_register()
together with a hack that assumes a never changing clock rate
(see clk_enable(), clk_get_rate() and clk_disable()).The patch uses clocksource_register_hz() with 1 Hz as initial
value, then lets the ->enable() callback update the value
with __clocksource_updatefreq_hz() once the struct clk has
been enabled and the frequency is stable.Signed-off-by: Magnus Damm
Acked-by: John Stultz
Signed-off-by: Paul Mundt
14 May, 2011
2 commits
-
…into timers/clocksource
Conflicts:
arch/ia64/kernel/cyclone.c
arch/mips/kernel/i8253.c
arch/x86/kernel/i8253.cReason: Resolve conflicts so further cleanups do not conflict further
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-
This is based upon both arch/arm/mach-footbridge/isa-timer.c and
arch/x86/kernel/i8253.c.Acked-by: John Stultz
Acked-by: Thomas Gleixner
Cc: "H. Peter Anvin"
Cc: Ingo Molnar
Cc: Ralf Baechle
Signed-off-by: Russell King
22 Feb, 2011
1 commit
-
This converts the remaining x86 clocksources to use
clocksource_register_hz/khz.CC: jacob.jun.pan@intel.com
CC: Glauber Costa
CC: Dimitri Sivanich
CC: Rusty Russell
CC: Jeremy Fitzhardinge
CC: Chris McDermott
CC: Thomas Gleixner
Tested-by: Konrad Rzeszutek Wilk [xen]
Signed-off-by: John Stultz
26 Jan, 2011
1 commit
-
setup_irq() was called before clockevents_register_device() which is
needed by the irq handler. Bug was reproducible by restarting the
kernel using kexec (reliable crash).Signed-off-by: Nikolaus Voss
Cc: David Brownell
Cc: Haavard Skinnemoen
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
22 Jan, 2011
1 commit
-
If the acpi pm timer throws invalid data, clear pmtmr_ioport
so the pm timer won't accidentally be used.This was found when using Xen where there is a acpi pm reported,
but gives bogus values, and other code was continuing to try
to use the pm timer after the initialization failed.[jstultz: Catch additional failure and reword changelog message. ]
Signed-off-by: Konrad Rzeszutek Wilk
Signed-off-by: John Stultz
LKML-Reference:
Signed-off-by: Thomas Gleixner
17 Dec, 2010
1 commit
-
There are control flow that sh_cmt_set_next() does double
spin-lock. The callers sh_cmt_{start,stop}() already have
lock. But another callers sh_cmt_clock_event_{start,next}()
does not.Now sh_cmt_set_next() does not lock by itself. All the
callers should hold spin-lock before calling it.[damm@opensource.se: use __sh_cmt_set_next() to simplify code]
[damm@opensource.se: added stable, suitable for v2.6.35 + v2.6.36]
Cc: stable@kernel.org
Signed-off-by: Takashi YOSHII
Signed-off-by: Magnus Damm
Signed-off-by: Paul Mundt
31 Oct, 2010
1 commit
-
Now when the SH-Mobile ARM platforms have been converted
to use device name it is possible to remove "clk" from
struct sh_timer_config.Signed-off-by: Magnus Damm
Signed-off-by: Paul Mundt
16 Aug, 2010
1 commit
-
Conflicts:
arch/sh/include/asm/Kbuild
drivers/MakefileSigned-off-by: Paul Mundt
04 Aug, 2010
2 commits
-
Fix the rate calculation in the CMT driver.
Without this fix the clocksource runs way
too fast and we get a divide-by-zero error.Signed-off-by: Magnus Damm
Signed-off-by: Paul Mundt -
Fix a one-off error in the CMT driver V2. The match register
should be programmed with the period minus one.Many thanks to Eiraku-san for tracking down this issue.
Signed-off-by: Magnus Damm
Signed-off-by: Paul Mundt
27 Jul, 2010
1 commit
-
This converts the most common of the x86 clocksources over to use
clocksource_register_hz/khz.Signed-off-by: John Stultz
LKML-Reference:
Signed-off-by: Thomas Gleixner
21 Jul, 2010
1 commit
-
My Collabora address is no longer enabled - update the MODULE_AUTHOR
fields of drivers to my current email address.Signed-off-by: Andres Salomon
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
22 Jun, 2010
1 commit
-
The previous CMT fixup accidentally copied in the TMU shift value, reset
this back to its original value while preserving the TMU fix.Signed-off-by: Paul Mundt
02 Jun, 2010
2 commits
-
Based on the sh_tmu change in 66f49121ffa41a19c59965b31b046d8368fec3c7
("clocksource: sh_tmu: compute mult and shift before registration").
The same issues impact the sh_cmt driver, so we take the same approach
here.Cc: stable@kernel.org
Signed-off-by: Paul Mundt -
Since commit 98962465ed9e6ea99c38e0af63fe1dcb5a79dc25 ("nohz: Prevent
clocksource wrapping during idle"), the CPU of an R2D board never goes
to idle. This commit assumes that mult and shift are assigned before
the clocksource is registered. As a consequence the safe maximum sleep
time is negative and the CPU never goes into idle.This patch fixes the problem by moving mult and shift initialization
from sh_tmu_clocksource_enable() to sh_tmu_register_clocksource().Signed-off-by: Aurelien Jarno
Cc: stable@kernel.org
Signed-off-by: Paul Mundt
20 May, 2010
1 commit
-
…el/git/tip/linux-2.6-tip
* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
cs5535-clockevt: Free timer in IRQ setup error path
26 Apr, 2010
1 commit
-
Conflicts:
arch/sh/kernel/dwarf.c
drivers/dma/shdma.cSigned-off-by: Paul Mundt
15 Apr, 2010
1 commit
-
Make sure that the timer IRQs and IPIs aren't enabled for IRQ balancing.
IPIs are disabled as a result of being percpu while the timers simply
disable balancing outright.Signed-off-by: Paul Mundt
30 Mar, 2010
1 commit
-
…it slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
29 Mar, 2010
1 commit
-
We want to get rid of the clock string from platform data entirely,
depending on the clkdev-based clock lookup to do the right thing for us
instead.This converts all of the SH drivers to request their associated function
clocks directly, and if there is no match for that then we fall back on
the legacy lookup while warning about it. After all of the outstanding
CPUs have been converted to clkdev lookups the clock string will be
killed off completely.Signed-off-by: Paul Mundt
13 Mar, 2010
1 commit
-
Due to a hardware limitation cs5535_mfgpt_free_timer() cannot actually
release the timer hardware, but it will at least free the now unreferenced
struct associated with it so calling it is the cleaner thing to do.Signed-off-by: Jens Rottmann
Acked-by: Andres Salomon
Cc: Jordan Crouse
Cc: Ingo Molnar
Cc: john stultz
Signed-off-by: Andrew Morton
Signed-off-by: Thomas Gleixner
10 Mar, 2010
1 commit
-
There is no need to copy in the name from the sh timer config now that
dev_name() is available early. We prefer the dev_name() variant for
consistent naming.Signed-off-by: Paul Mundt
07 Mar, 2010
1 commit
-
Move the CS5535 MFGPT hrtimer kconfig option to be with the other MFGPT
options. This makes it easier to find and also removes it from the main
"Device Drivers" menu, where it should not have been.Signed-off-by: Randy Dunlap
Acked-by: Andres Salomon
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
02 Mar, 2010
1 commit
-
* 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
posix-timers.c: Don't export local functions
clocksource: start CMT at clocksource resume
clocksource: add suspend callback
clocksource: add argument to resume callback
ntp: Cleanup xtime references in ntp.c
ntp: Make time_esterror and time_maxerror static
27 Feb, 2010
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (187 commits)
sh: remove dead LED code for migo-r and ms7724se
sh: ecovec build fix for CONFIG_I2C=n
sh: ecovec r-standby support
sh: ms7724se r-standby support
sh: SH-Mobile R-standby register save/restore
clocksource: Fix up a registration/IRQ race in the sh drivers.
sh: ms7724: modify scan_timing for KEYSC
sh: ms7724: Add sh_sir support
sh: mach-ecovec24: Add sh_sir support
sh: wire up SET/GET_UNALIGN_CTL.
sh: allow alignment fault mode to be configured at kernel boot.
sh: sh7724: Update FSI/SPU2 clock
sh: always enable sh7724 vpu_clk and set to 166MHz on Ecovec
sh: add sh7724 kick callback to clk_div4_table
sh: introduce struct clk_div4_table
sh: clock-cpg div4 set_rate() shift fix
sh: Turn on speculative return for SH7785 and SH7786
sh: Merge legacy and dynamic PMB modes.
sh: Use uncached I/O helpers in PMB setup.
sh: Provide uncached I/O helpers.
...
25 Feb, 2010
1 commit
-
All of the SH clocksource drivers follow the scheme that the IRQ is setup
prior to registering the clockevent. The interrupt handler in the
clockevent cases looks to the event handler function pointer being filled
in by the registration code, permitting us to get in to situations where
asserted IRQs step in to the handler before registration has had a chance
to complete and hitting a NULL pointer deref.In practice this is not an issue for most platforms, but some of them
with fairly special loaders (or that are chain-loading from another
kernel) may enter in to this situation. This fixes up the oops reported
by Rafael on hp6xx.Reported-and-tested-by: Rafael Ignacio Zurita
Cc: stable@kernel.org
Signed-off-by: Paul Mundt
23 Feb, 2010
1 commit
-
geode-mfgpt: restore previous behavior for selecting IRQ
The MFGPT IRQ used to be, in order of decreasing priority,
* IRQ supplied by the user as a boot-time parameter,
* IRQ previously set by the BIOS or another driver,
* default IRQ given at compile time.Return to this behavior, which got broken when splitting the
MFGPT/clocksource driver for 2.6.33-rc1.Signed-off-by: Jens Rottmann
Acked-by: Andres Salomon
Cc: Jordan Crouse
Cc: Ingo Molnar
Cc: john stultz
Acked-by: Thomas Gleixner
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 Feb, 2010
1 commit
-
Add code to start the CMT timer on clocksource resume. While at it handle
the suspend case as well. Remove the platform device specific suspend
calls.This makes sure the timer is started during sysdev_resume(). Without this
patch the clocksource may be read as suspended, this after sysdev resume
but before platform device resume.Signed-off-by: Magnus Damm
Cc: john stultz
Cc: Paul Mundt
Signed-off-by: Andrew Morton
Signed-off-by: Thomas Gleixner
16 Dec, 2009
1 commit
-
This is based on the old code in arch/x86/kernel/mfgpt_32.c, but is
modular and not Geode-specific. There's no reason why the clock event
device needs to be registered so early at boot; the clockevent code is
perfectly capable of dynamic switching.[akpm@linux-foundation.org: add linux/irq.h include]
Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: Ingo Molnar
Cc: Thomas Gleixner
Cc: john stultz
Cc: Chris Ball
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
15 Aug, 2009
1 commit
-
This patch updates the SuperH CMT driver with suspend and resume
callbacks for the suspend-to-ram case. This patch stops the CMT
channel at suspend time to avoid unwanted wake up events.Signed-off-by: Magnus Damm
Signed-off-by: Paul Mundt
24 Jun, 2009
1 commit
-
Avoid undocumented vague TMU behavior when zero value is set to TCOR.
This primarily fixes up issues encountered under qemu with a zero-length
period, while the hardware itself is fairly ambivalent one way or the
other.Signed-off-by: Shin-ichiro KAWASAKI
Acked-by: Magnus Damm
Signed-off-by: Paul Mundt
17 Jun, 2009
1 commit
-
…tes' and 'sh/perf_counter'