s390/delay: remove udelay_simple()
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 14 Dec 2020 20:44:39 +0000 (21:44 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 16 Dec 2020 13:55:49 +0000 (14:55 +0100)
udelay_simple() callers can make use of the now simplified udelay()
implementation. No need to keep it.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/delay.h
arch/s390/kernel/ipl.c
arch/s390/kernel/setup.c
arch/s390/lib/delay.c
drivers/s390/cio/device.c

index b566be6..21a8fe1 100644 (file)
 #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))
index 98b3aca..7a21eca 100644 (file)
@@ -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);
        }
 }
 
index 1f16a03..1fbed91 100644 (file)
@@ -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;
 }
 
index 928b1db..f289afe 100644 (file)
 #include <asm/div64.h>
 #include <asm/idle.h>
 
-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);
index e0005a4..9e3c8b4 100644 (file)
@@ -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