![David Daney](/assets/img/avatar_default.png)
At some recent point arch/mips/include/asm/delay.h has started being included into csrc-octeon.c where the __?delay() functions are defined. This causes a compile failure due to conflicting declarations and definitions of the functions. It turns out that the generic definitions in arch/mips/lib/delay.c also conflict. Proposed fix: Declare the functions to take unsigned long parameters just like asm-generic (and x86) does. Update __delay to agree (__ndelay and __udelay need no change). Bonus: Get rid of 'inline' from __delay() definition, as it is globally visible, and the compiler should be making this decision itself (it does in fact inline the function without being told to). Signed-off-by: David Daney <david.daney@cavium.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/4354/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
33 lines
841 B
C
33 lines
841 B
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright (C) 1994 by Waldorf Electronics
|
|
* Copyright (C) 1995 - 2000, 01, 03 by Ralf Baechle
|
|
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
|
|
* Copyright (C) 2007 Maciej W. Rozycki
|
|
*/
|
|
#ifndef _ASM_DELAY_H
|
|
#define _ASM_DELAY_H
|
|
|
|
#include <linux/param.h>
|
|
|
|
extern void __delay(unsigned long loops);
|
|
extern void __ndelay(unsigned long ns);
|
|
extern void __udelay(unsigned long us);
|
|
|
|
#define ndelay(ns) __ndelay(ns)
|
|
#define udelay(us) __udelay(us)
|
|
|
|
/* make sure "usecs *= ..." in udelay do not overflow. */
|
|
#if HZ >= 1000
|
|
#define MAX_UDELAY_MS 1
|
|
#elif HZ <= 200
|
|
#define MAX_UDELAY_MS 5
|
|
#else
|
|
#define MAX_UDELAY_MS (1000 / HZ)
|
|
#endif
|
|
|
|
#endif /* _ASM_DELAY_H */
|