![Thomas Gleixner](/assets/img/avatar_default.png)
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
62 lines
1.3 KiB
C
62 lines
1.3 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (C) 2016 Imagination Technologies
|
|
* Author: Paul Burton <paul.burton@mips.com>
|
|
*/
|
|
|
|
#include <linux/clk.h>
|
|
#include <linux/clk-provider.h>
|
|
#include <linux/clocksource.h>
|
|
#include <linux/init.h>
|
|
#include <linux/types.h>
|
|
|
|
#include <asm/irq.h>
|
|
#include <asm/mips-cps.h>
|
|
#include <asm/time.h>
|
|
|
|
int get_c0_fdc_int(void)
|
|
{
|
|
int mips_cpu_fdc_irq;
|
|
|
|
if (mips_gic_present())
|
|
mips_cpu_fdc_irq = gic_get_c0_fdc_int();
|
|
else if (cpu_has_veic)
|
|
panic("Unimplemented!");
|
|
else if (cp0_fdc_irq >= 0)
|
|
mips_cpu_fdc_irq = MIPS_CPU_IRQ_BASE + cp0_fdc_irq;
|
|
else
|
|
mips_cpu_fdc_irq = -1;
|
|
|
|
return mips_cpu_fdc_irq;
|
|
}
|
|
|
|
int get_c0_perfcount_int(void)
|
|
{
|
|
int mips_cpu_perf_irq;
|
|
|
|
if (mips_gic_present())
|
|
mips_cpu_perf_irq = gic_get_c0_perfcount_int();
|
|
else if (cpu_has_veic)
|
|
panic("Unimplemented!");
|
|
else if (cp0_perfcount_irq >= 0)
|
|
mips_cpu_perf_irq = MIPS_CPU_IRQ_BASE + cp0_perfcount_irq;
|
|
else
|
|
mips_cpu_perf_irq = -1;
|
|
|
|
return mips_cpu_perf_irq;
|
|
}
|
|
|
|
unsigned int get_c0_compare_int(void)
|
|
{
|
|
int mips_cpu_timer_irq;
|
|
|
|
if (mips_gic_present())
|
|
mips_cpu_timer_irq = gic_get_c0_compare_int();
|
|
else if (cpu_has_veic)
|
|
panic("Unimplemented!");
|
|
else
|
|
mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq;
|
|
|
|
return mips_cpu_timer_irq;
|
|
}
|