linux/include/asm-generic
Andrew Morton a87e553fab asm-generic: delay.h fix udelay and ndelay for 8 bit args
With a non-constant 8-bit argument, a call to udelay() generates a warning:

drivers/gpu/drm/radeon/atom.c: In function 'atom_op_delay':
drivers/gpu/drm/radeon/atom.c:654: warning: comparison is always false due to limited range of data type

The code looks like it works OK with an 8-bit arg, and the calling code is
doing nothing wrong, so udelay() needs fixing.

Fixing it was rather tricky.  Simply typecasting `n' in the comparison with
20000 didn't change anything.  Hence the divide-by-20000 trick.

Using a do{}while loop didn't work because udelay() is used in ?: statements,
hence the ({...}) construct.

While I was there I replaced the brain-bending ?:?:?: mess with nice if/else
code.

Probably other architectures are generating the same warning and can use a
similar change.

[Taken from the x86 tree and moved to asm-generic by Jonas Bonn]

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jonas Bonn <jonas@southpole.se>
2011-07-22 18:45:33 +02:00
..
bitops bitops: add #ifndef for each of find bitops 2011-05-26 17:12:38 -07:00
4level-fixup.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
atomic64.h lib: Provide generic atomic64_t implementation 2009-06-15 13:27:38 +10:00
atomic-long.h asm-generic: merge branch 'master' of torvalds/linux-2.6 2009-06-12 11:32:58 +02:00
atomic.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic 2010-10-22 11:17:06 -07:00
audit_change_attr.h audit: support the "standard" <asm-generic/unistd.h> 2011-05-04 14:41:28 -04:00
audit_dir_write.h audit: support the "standard" <asm-generic/unistd.h> 2011-05-04 14:41:28 -04:00
audit_read.h audit: support the "standard" <asm-generic/unistd.h> 2011-05-04 14:41:28 -04:00
audit_signal.h [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
audit_write.h audit: support the "standard" <asm-generic/unistd.h> 2011-05-04 14:41:28 -04:00
auxvec.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
bitops.h bitops: remove minix bitops from asm/bitops.h 2011-03-23 19:46:22 -07:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h bug.h: Move ratelimit warn interfaces to ratelimit.h 2011-05-26 15:00:31 -04:00
bugs.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
cache.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
cacheflush.h asm-generic/cacheflush.h: flush icache when copying to user pages 2011-05-25 08:39:37 -07:00
checksum.h add generic lib/checksum.c 2009-06-11 21:02:51 +02:00
cmpxchg-local.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
cmpxchg.h Add cmpxchg_local to asm-generic for per cpu atomic operations 2008-02-07 08:42:30 -08:00
cputime.h time: Add nsecs_to_cputime64 interface for asm-generic 2011-01-26 12:33:20 +01:00
current.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
delay.h asm-generic: delay.h fix udelay and ndelay for 8 bit args 2011-07-22 18:45:33 +02:00
device.h Driver Core: Add platform device arch data V3 2009-07-22 00:28:38 +02:00
div64.h rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
dma-coherent.h generic: per-device coherent dma allocator 2008-06-30 12:51:05 +02:00
dma-mapping-broken.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma-mapping-common.h dma-mapping: remove unnecessary sync_single_range_* in dma_map_ops 2010-05-27 09:12:52 -07:00
dma.h asm-generic: add legacy I/O header files 2009-06-11 21:02:42 +02:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno-base.h
errno.h mm: make __get_user_pages return -EHWPOISON for HWPOISON page optionally 2011-03-17 13:08:27 -03:00
fb.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
fcntl.h New kind of open files - "location only". 2011-03-15 02:21:45 -04:00
ftrace.h asm-generic headers: add ftrace.h 2011-03-17 09:19:04 +08:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
getorder.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
gpio.h gpio: add GPIOF_ values regardless on kconfig settings 2011-06-16 08:40:52 -06:00
hardirq.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
hw_irq.h asm-generic: add legacy I/O header files 2009-06-11 21:02:42 +02:00
ide_iops.h
int-l64.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
int-ll64.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
io.h asm-generic: fix inX/outX functions for architectures that have PCI 2011-03-17 09:19:03 +08:00
ioctl.h Make ioctl.h compatible with userland 2008-08-12 16:07:31 -07:00
ioctls.h tty: add TIOCVHANGUP to allow clean tty shutdown of all ttys 2011-02-17 14:16:30 -08:00
iomap.h generic: add ioremap_wc() interface wrapper 2008-04-24 23:40:47 +02:00
ipcbuf.h asm-generic: add generic sysv ipc headers 2009-06-11 21:02:15 +02:00
irq_regs.h core: Replace __get_cpu_var with __this_cpu_read if not used for an address. 2010-12-17 15:07:19 +01:00
irq.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
Kbuild include: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
Kbuild.asm include: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h asm-generic: kdebug.h: Checkpatch cleanup 2010-10-09 21:51:44 +02:00
kmap_types.h include/asm-generic/kmap_types.h: add helpful reminder 2010-05-25 08:07:03 -07:00
libata-portmap.h libata-portmap: Remove unused definitions 2007-10-12 14:55:37 -04:00
linkage.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h local_t: Remove cpu_local_xx macros 2010-01-05 15:34:49 +09:00
memory_model.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
mm_hooks.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mman-common.h thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
mman.h mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:41 -07:00
mmu_context.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
mmu.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
module.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
msgbuf.h asm-generic: add generic sysv ipc headers 2009-06-11 21:02:15 +02:00
mutex-dec.h mutex: speed up generic mutex implementations 2008-10-23 09:18:20 -07:00
mutex-null.h fix file specification in comments 2006-10-03 23:01:26 +02:00
mutex-xchg.h mutex: speed up generic mutex implementations 2008-10-23 09:18:20 -07:00
mutex.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
page.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
param.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
parport.h asm-generic: add legacy I/O header files 2009-06-11 21:02:42 +02:00
pci-dma-compat.h dma-mapping: pci: move pci_set_dma_mask and pci_set_consistent_dma_mask to pci-dma-compat.h 2010-03-12 15:52:42 -08:00
pci.h PCI: remove pcibios_scan_all_fns() 2009-09-09 13:29:18 -07:00
percpu.h percpu: Optimize __get_cpu_var() 2010-09-10 10:56:51 +02:00
pgalloc.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
pgtable-nopmd.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable-nopud.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable.h include/asm-generic/pgtable.h: fix unbalanced parenthesis 2011-06-15 20:04:00 -07:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
ptrace.h asm-generic/ptrace.h: start a common low level ptrace helper 2011-05-26 17:12:36 -07:00
resource.h ulimit: raise default hard ulimit on number of files to 4096 2011-05-25 08:39:43 -07:00
rtc.h asm-generic: make get_rtc_time overridable 2009-06-11 21:02:18 +02:00
scatterlist.h asm-generic: remove ARCH_HAS_SG_CHAIN in scatterlist.h 2010-05-27 09:12:54 -07:00
sections.h x86: Separate out entry text section 2011-03-08 17:22:11 +01:00
segment.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
sembuf.h asm-generic: add generic sysv ipc headers 2009-06-11 21:02:15 +02:00
serial.h asm-generic: add legacy I/O header files 2009-06-11 21:02:42 +02:00
setup.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
shmbuf.h asm-generic: add generic sysv ipc headers 2009-06-11 21:02:15 +02:00
shmparam.h asm-generic: add generic sysv ipc headers 2009-06-11 21:02:15 +02:00
siginfo.h Fix common misspellings 2011-03-31 11:26:23 -03:00
signal-defs.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
signal.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
sizes.h asm-generic headers: add sizes.h 2011-03-17 09:19:04 +08:00
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
spinlock.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
stat.h asm-generic/stat.h: support 64-bit file time_t for stat() 2010-11-01 15:31:29 -04:00
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
swab.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
syscall.h asm-generic: syscall_get_nr returns int 2009-09-22 19:56:50 -07:00
syscalls.h Fix the declaration of sys_execve() in asm-generic/syscalls.h 2010-08-18 12:12:38 -07:00
system.h asm-generic: cmpxchg does not handle non-long arguments 2010-10-09 21:51:27 +02:00
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios-base.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
termios.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
timex.h asm-generic: add legacy I/O header files 2009-06-11 21:02:42 +02:00
tlb.h mm: uninline large generic tlb.h functions 2011-05-25 08:39:20 -07:00
tlbflush.h asm-generic: add generic NOMMU versions of some headers 2009-06-11 21:02:50 +02:00
topology.h topology: alternate fix for ia64 tiger_defconfig build breakage 2010-08-09 20:44:57 -07:00
types.h add the common dma_addr_t typedef to include/linux/types.h 2011-03-22 17:44:09 -07:00
uaccess-unaligned.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
uaccess.h asm-generic headers: add arch-specific __strnlen_user calling in uaccess.h 2011-03-17 09:19:05 +08:00
ucontext.h asm-generic: add generic ABI headers 2009-06-11 21:02:15 +02:00
unaligned.h asm-generic: add generic versions of common headers 2009-06-11 21:02:37 +02:00
unistd.h asm-generic/unistd.h: support sendmmsg syscall 2011-06-02 14:31:38 -04:00
user.h asm-generic/user.h: Fix spelling in comment 2011-03-01 15:49:39 +01:00
vga.h asm-generic: add legacy I/O header files 2009-06-11 21:02:42 +02:00
vmlinux.lds.h Merge branch 'for-2.6.40' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2011-05-24 11:53:42 -07:00
xor.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00