diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-03-07 22:18:39 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2018-03-07 22:18:39 +0100 |
commit | b67aea2bbab780e412b8af3386cc9f78f61a4cac (patch) | |
tree | 93fb3f88d71a431d5a1d2203635546986dacf3f4 /arch/metag/lib/delay.c | |
parent | 661e50bc853209e41a5c14a290ca4decc43cbfd1 (diff) | |
parent | 8d06c3302635f0ab426937f2bb10e9b9c34087e4 (diff) |
Merge tag 'metag_remove_2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jhogan/metag into asm-generic
Remove metag architecture
These patches remove the metag architecture and tightly dependent
drivers from the kernel. With the 4.16 kernel the ancient gcc 4.2.4
based metag toolchain we have been using is hitting compiler bugs, so
now seems a good time to drop it altogether.
* tag 'metag_remove_2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
i2c: img-scb: Drop METAG dependency
media: img-ir: Drop METAG dependency
watchdog: imgpdc: Drop METAG dependency
MAINTAINERS/CREDITS: Drop METAG ARCHITECTURE
tty: Remove metag DA TTY and console driver
clocksource: Remove metag generic timer driver
irqchip: Remove metag irqchip drivers
Drop a bunch of metag references
docs: Remove remaining references to metag
docs: Remove metag docs
metag: Remove arch/metag/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/metag/lib/delay.c')
-rw-r--r-- | arch/metag/lib/delay.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/arch/metag/lib/delay.c b/arch/metag/lib/delay.c deleted file mode 100644 index 6754012a261f..000000000000 --- a/arch/metag/lib/delay.c +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Precise Delay Loops for Meta - * - * Copyright (C) 1993 Linus Torvalds - * Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz> - * Copyright (C) 2007,2009 Imagination Technologies Ltd. - * - */ - -#include <linux/export.h> -#include <linux/sched.h> -#include <linux/delay.h> - -#include <asm/core_reg.h> -#include <asm/processor.h> - -/* - * TXTACTCYC is only 24 bits, so on chips with fast clocks it will wrap - * many times per-second. If it does wrap __delay will return prematurely, - * but this is only likely with large delay values. - * - * We also can't implement read_current_timer() with TXTACTCYC due to - * this wrapping behaviour. - */ -#define rdtimer(t) t = __core_reg_get(TXTACTCYC) - -void __delay(unsigned long loops) -{ - unsigned long bclock, now; - - rdtimer(bclock); - do { - asm("NOP"); - rdtimer(now); - } while ((now-bclock) < loops); -} -EXPORT_SYMBOL(__delay); - -inline void __const_udelay(unsigned long xloops) -{ - u64 loops = (u64)xloops * (u64)loops_per_jiffy * HZ; - __delay(loops >> 32); -} -EXPORT_SYMBOL(__const_udelay); - -void __udelay(unsigned long usecs) -{ - __const_udelay(usecs * 0x000010c7); /* 2**32 / 1000000 (rounded up) */ -} -EXPORT_SYMBOL(__udelay); - -void __ndelay(unsigned long nsecs) -{ - __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */ -} -EXPORT_SYMBOL(__ndelay); |