Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/openrisc/kernel/irq.c
26439 views
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
/*
3
* OpenRISC irq.c
4
*
5
* Linux architectural port borrowing liberally from similar works of
6
* others. All original copyrights apply as per the original source
7
* declaration.
8
*
9
* Modifications for the OpenRISC architecture:
10
* Copyright (C) 2010-2011 Jonas Bonn <[email protected]>
11
*/
12
13
#include <linux/interrupt.h>
14
#include <linux/init.h>
15
#include <linux/ftrace.h>
16
#include <linux/irq.h>
17
#include <linux/irqchip.h>
18
#include <linux/export.h>
19
#include <linux/irqflags.h>
20
21
/* read interrupt enabled status */
22
unsigned long arch_local_save_flags(void)
23
{
24
return mfspr(SPR_SR) & (SPR_SR_IEE|SPR_SR_TEE);
25
}
26
EXPORT_SYMBOL(arch_local_save_flags);
27
28
/* set interrupt enabled status */
29
void arch_local_irq_restore(unsigned long flags)
30
{
31
mtspr(SPR_SR, ((mfspr(SPR_SR) & ~(SPR_SR_IEE|SPR_SR_TEE)) | flags));
32
}
33
EXPORT_SYMBOL(arch_local_irq_restore);
34
35
void __init init_IRQ(void)
36
{
37
irqchip_init();
38
}
39
40