mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-27 00:30:57 +07:00
923df96b9f
This patch implements read_current_timer using the architected timers when they are selected via CONFIG_ARM_ARCH_TIMER. If they are detected not to be usable at runtime, we return -ENXIO to the caller. Furthermore, if read_current_timer is exported then we can implement get_cycles in terms of it for use as both an entropy source and for implementing __udelay and friends. Tested-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
27 lines
610 B
C
27 lines
610 B
C
/*
|
|
* arch/arm/include/asm/timex.h
|
|
*
|
|
* Copyright (C) 1997,1998 Russell King
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* Architecture Specific TIME specifications
|
|
*/
|
|
#ifndef _ASMARM_TIMEX_H
|
|
#define _ASMARM_TIMEX_H
|
|
|
|
#include <asm/arch_timer.h>
|
|
#include <mach/timex.h>
|
|
|
|
typedef unsigned long cycles_t;
|
|
|
|
#ifdef ARCH_HAS_READ_CURRENT_TIMER
|
|
#define get_cycles() ({ cycles_t c; read_current_timer(&c) ? 0 : c; })
|
|
#else
|
|
#define get_cycles() (0)
|
|
#endif
|
|
|
|
#endif
|