From e0d62dcb20beac18a412ef9355208d9058c674d3 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 14 Dec 2020 21:44:39 +0100 Subject: [PATCH] s390/delay: remove udelay_simple() udelay_simple() callers can make use of the now simplified udelay() implementation. No need to keep it. Signed-off-by: Heiko Carstens --- arch/s390/include/asm/delay.h | 2 -- arch/s390/kernel/ipl.c | 2 +- arch/s390/kernel/setup.c | 1 - arch/s390/lib/delay.c | 34 ++++++---------------------------- drivers/s390/cio/device.c | 2 +- 5 files changed, 8 insertions(+), 33 deletions(-) diff --git a/arch/s390/include/asm/delay.h b/arch/s390/include/asm/delay.h index b566be6..21a8fe1 100644 --- a/arch/s390/include/asm/delay.h +++ b/arch/s390/include/asm/delay.h @@ -13,10 +13,8 @@ #ifndef _S390_DELAY_H #define _S390_DELAY_H -void udelay_enable(void); void __ndelay(unsigned long nsecs); void __udelay(unsigned long usecs); -void udelay_simple(unsigned long usecs); void __delay(unsigned long loops); #define ndelay(n) __ndelay((unsigned long)(n)) diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 98b3aca..7a21eca 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c @@ -1512,7 +1512,7 @@ static void diag308_dump(void *dump_block) while (1) { if (diag308(DIAG308_LOAD_NORMAL_DUMP, NULL) != 0x302) break; - udelay_simple(USEC_PER_SEC); + udelay(USEC_PER_SEC); } } diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 1f16a03..1fbed91 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -335,7 +335,6 @@ int __init arch_early_irq_init(void) if (!stack) panic("Couldn't allocate async stack"); S390_lowcore.async_stack = stack + STACK_INIT_OFFSET; - udelay_enable(); return 0; } diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c index 928b1dbe..f289afe 100644 --- a/arch/s390/lib/delay.c +++ b/arch/s390/lib/delay.c @@ -19,13 +19,6 @@ #include #include -static DEFINE_STATIC_KEY_FALSE(udelay_ready); - -void __init udelay_enable(void) -{ - static_branch_enable(&udelay_ready); -} - void __delay(unsigned long loops) { /* @@ -39,40 +32,25 @@ void __delay(unsigned long loops) } EXPORT_SYMBOL(__delay); -static void delay_loop(unsigned long delta, bool simple) +static void delay_loop(unsigned long delta) { unsigned long end; - if (static_branch_likely(&udelay_ready) && !simple) { - end = get_tod_clock_monotonic() + delta; - while (!tod_after(get_tod_clock_monotonic(), end)) - cpu_relax(); - } else { - end = get_tod_clock() + delta; - while (!tod_after(get_tod_clock(), end)) - cpu_relax(); - } + end = get_tod_clock_monotonic() + delta; + while (!tod_after(get_tod_clock_monotonic(), end)) + cpu_relax(); } void __udelay(unsigned long usecs) { - delay_loop(usecs << 12, 0); + delay_loop(usecs << 12); } EXPORT_SYMBOL(__udelay); -/* - * Simple udelay variant. To be used on startup and reboot - * when the interrupt handler isn't working. - */ -void udelay_simple(unsigned long usecs) -{ - delay_loop(usecs << 12, 1); -} - void __ndelay(unsigned long nsecs) { nsecs <<= 9; do_div(nsecs, 125); - delay_loop(nsecs, 0); + delay_loop(nsecs); } EXPORT_SYMBOL(__ndelay); diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index e0005a4..9e3c8b4 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -1668,7 +1668,7 @@ void ccw_device_wait_idle(struct ccw_device *cdev) cio_tsch(sch); if (sch->schib.scsw.cmd.actl == 0) break; - udelay_simple(100); + udelay(100); } } #endif -- 2.7.4