MIPS: Make __{,n,u}delay declarations match definitions and generic delay.h
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>
This commit is contained in:
parent
ddffeb8c4d
commit
5210edcd52
|
@ -13,9 +13,9 @@
|
||||||
|
|
||||||
#include <linux/param.h>
|
#include <linux/param.h>
|
||||||
|
|
||||||
extern void __delay(unsigned int loops);
|
extern void __delay(unsigned long loops);
|
||||||
extern void __ndelay(unsigned int ns);
|
extern void __ndelay(unsigned long ns);
|
||||||
extern void __udelay(unsigned int us);
|
extern void __udelay(unsigned long us);
|
||||||
|
|
||||||
#define ndelay(ns) __ndelay(ns)
|
#define ndelay(ns) __ndelay(ns)
|
||||||
#define udelay(us) __udelay(us)
|
#define udelay(us) __udelay(us)
|
||||||
|
|
|
@ -15,13 +15,17 @@
|
||||||
#include <asm/compiler.h>
|
#include <asm/compiler.h>
|
||||||
#include <asm/war.h>
|
#include <asm/war.h>
|
||||||
|
|
||||||
inline void __delay(unsigned int loops)
|
void __delay(unsigned long loops)
|
||||||
{
|
{
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
" .set noreorder \n"
|
" .set noreorder \n"
|
||||||
" .align 3 \n"
|
" .align 3 \n"
|
||||||
"1: bnez %0, 1b \n"
|
"1: bnez %0, 1b \n"
|
||||||
|
#if __SIZEOF_LONG__ == 4
|
||||||
" subu %0, 1 \n"
|
" subu %0, 1 \n"
|
||||||
|
#else
|
||||||
|
" dsubu %0, 1 \n"
|
||||||
|
#endif
|
||||||
" .set reorder \n"
|
" .set reorder \n"
|
||||||
: "=r" (loops)
|
: "=r" (loops)
|
||||||
: "0" (loops));
|
: "0" (loops));
|
||||||
|
|
Loading…
Reference in New Issue