OpenCloudOS-Kernel/arch/tile/lib
Chris Metcalf 1337173148 arch/tile: fix __ndelay etc to work better
The current implementations of __ndelay and __udelay call a hypervisor
service to delay, but the hypervisor service isn't actually implemented
very well, and the consensus is that Linux should handle figuring this
out natively and not use a hypervisor service.

By converting nanoseconds to cycles, and then spinning until the
cycle counter reaches the desired cycle, we get several benefits:
first, we are sensitive to the actual clock speed; second, we use
less power by issuing a slow SPR read once every six cycles while
we delay; and third, we properly handle the case of an interrupt by
exiting at the target time rather than after some number of cycles.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2011-03-01 16:20:04 -05:00
..
Makefile arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
atomic_32.c arch/tile: catch up with section naming convention in 2.6.35 2011-03-01 16:18:52 -05:00
atomic_asm_32.S arch/tile: Fix bug in support for atomic64_xx() ops. 2010-07-06 13:41:39 -04:00
cacheflush.c arch/tile: Split the icache flush code off to a generic <arch> header. 2010-07-06 13:41:46 -04:00
checksum.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
cpumask.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
delay.c arch/tile: fix __ndelay etc to work better 2011-03-01 16:20:04 -05:00
exports.c arch/tile: properly export __mb_incoherent for modules 2010-10-14 15:12:55 -04:00
mb_incoherent.S arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
memchr_32.c arch/tile: fix memchr() not to dereference memory for zero length 2010-11-24 13:57:42 -05:00
memcpy_32.S arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
memcpy_tile64.c arch/tile: complete migration to new kmap_atomic scheme 2010-11-01 15:30:36 -04:00
memmove.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
memset_32.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
spinlock_32.c arch/tile: fix rwlock so would-be write lockers don't block new readers 2010-11-15 09:18:49 -05:00
spinlock_common.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
strchr_32.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
strlen_32.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
uaccess.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
usercopy_32.S arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00