Loading arch/s390/include/asm/delay.h +5 −3 Original line number Diff line number Diff line Loading @@ -14,10 +14,12 @@ #ifndef _S390_DELAY_H #define _S390_DELAY_H extern void __udelay(unsigned long long usecs); extern void udelay_simple(unsigned long long usecs); extern void __delay(unsigned long loops); void __ndelay(unsigned long long nsecs); void __udelay(unsigned long long usecs); void udelay_simple(unsigned long long usecs); void __delay(unsigned long loops); #define ndelay(n) __ndelay((unsigned long long) (n)) #define udelay(n) __udelay((unsigned long long) (n)) #define mdelay(n) __udelay((unsigned long long) (n) * 1000) Loading arch/s390/lib/delay.c +15 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ #include <linux/module.h> #include <linux/irqflags.h> #include <linux/interrupt.h> #include <asm/div64.h> void __delay(unsigned long loops) { Loading Loading @@ -116,3 +117,17 @@ void udelay_simple(unsigned long long usecs) while (get_clock() < end) cpu_relax(); } void __ndelay(unsigned long long nsecs) { u64 end; nsecs <<= 9; do_div(nsecs, 125); end = get_clock() + nsecs; if (nsecs & ~0xfffUL) __udelay(nsecs >> 12); while (get_clock() < end) barrier(); } EXPORT_SYMBOL(__ndelay); Loading
arch/s390/include/asm/delay.h +5 −3 Original line number Diff line number Diff line Loading @@ -14,10 +14,12 @@ #ifndef _S390_DELAY_H #define _S390_DELAY_H extern void __udelay(unsigned long long usecs); extern void udelay_simple(unsigned long long usecs); extern void __delay(unsigned long loops); void __ndelay(unsigned long long nsecs); void __udelay(unsigned long long usecs); void udelay_simple(unsigned long long usecs); void __delay(unsigned long loops); #define ndelay(n) __ndelay((unsigned long long) (n)) #define udelay(n) __udelay((unsigned long long) (n)) #define mdelay(n) __udelay((unsigned long long) (n) * 1000) Loading
arch/s390/lib/delay.c +15 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ #include <linux/module.h> #include <linux/irqflags.h> #include <linux/interrupt.h> #include <asm/div64.h> void __delay(unsigned long loops) { Loading Loading @@ -116,3 +117,17 @@ void udelay_simple(unsigned long long usecs) while (get_clock() < end) cpu_relax(); } void __ndelay(unsigned long long nsecs) { u64 end; nsecs <<= 9; do_div(nsecs, 125); end = get_clock() + nsecs; if (nsecs & ~0xfffUL) __udelay(nsecs >> 12); while (get_clock() < end) barrier(); } EXPORT_SYMBOL(__ndelay);