Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
1
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
0c90547
Documentation
arch
alpha
arm
avr32
blackfin
cris
frv
h8300
hexagon
ia64
m32r
m68k
microblaze
mips
mn10300
openrisc
parisc
powerpc
s390
score
sh
sparc
tile
configs
include
arch
asm
Kbuild
asm-offsets.h
atomic.h
atomic_32.h
atomic_64.h
auxvec.h
backtrace.h
bitops.h
bitops_32.h
bitops_64.h
bitsperlong.h
byteorder.h
cache.h
cacheflush.h
checksum.h
compat.h
current.h
delay.h
dma-mapping.h
dma.h
edac.h
elf.h
fixmap.h
ftrace.h
futex.h
hardirq.h
hardwall.h
highmem.h
homecache.h
hugetlb.h
hv_driver.h
hw_irq.h
ide.h
io.h
irq.h
irqflags.h
kexec.h
kmap_types.h
linkage.h
memprof.h
mman.h
mmu.h
mmu_context.h
mmzone.h
page.h
pci.h
percpu.h
pgalloc.h
pgtable.h
pgtable_32.h
pgtable_64.h
processor.h
ptrace.h
sections.h
setup.h
sigcontext.h
sigframe.h
siginfo.h
signal.h
smp.h
spinlock.h
spinlock_32.h
spinlock_64.h
spinlock_types.h
stack.h
stat.h
string.h
swab.h
syscall.h
syscalls.h
system.h
thread_info.h
tile-desc.h
tile-desc_32.h
tile-desc_64.h
timex.h
tlb.h
tlbflush.h
topology.h
traps.h
uaccess.h
unaligned.h
unistd.h
user.h
vga.h
hv
kernel
kvm
lib
mm
Kbuild
Kconfig
Kconfig.debug
Makefile
um
unicore32
x86
xtensa
.gitignore
Kconfig
block
crypto
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
REPORTING-BUGS
Breadcrumbs
linux
/
arch
/
tile
/
include
/
asm
/
irq.h
Copy path
Blame
Blame
Latest commit
History
History
79 lines (68 loc) · 2.82 KB
Breadcrumbs
linux
/
arch
/
tile
/
include
/
asm
/
irq.h
Top
File metadata and controls
Code
Blame
79 lines (68 loc) · 2.82 KB
Raw
/* * Copyright 2010 Tilera Corporation. All Rights Reserved. * * 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, version 2. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or * NON INFRINGEMENT. See the GNU General Public License for * more details. */ #ifndef _ASM_TILE_IRQ_H #define _ASM_TILE_IRQ_H #include <linux/hardirq.h> /* The hypervisor interface provides 32 IRQs. */ #define NR_IRQS 32 /* IRQ numbers used for linux IPIs. */ #define IRQ_RESCHEDULE 1 #define irq_canonicalize(irq) (irq) void ack_bad_irq(unsigned int irq); /* * Different ways of handling interrupts. Tile interrupts are always * per-cpu; there is no global interrupt controller to implement * enable/disable. Most onboard devices can send their interrupts to * many tiles at the same time, and Tile-specific drivers know how to * deal with this. * * However, generic devices (usually PCIE based, sometimes GPIO) * expect that interrupts will fire on a single core at a time and * that the irq can be enabled or disabled from any core at any time. * We implement this by directing such interrupts to a single core. * * One added wrinkle is that PCI interrupts can be either * hardware-cleared (legacy interrupts) or software cleared (MSI). * Other generic device systems (GPIO) are always software-cleared. * * The enums below are used by drivers for onboard devices, including * the internals of PCI root complex and GPIO. They allow the driver * to tell the generic irq code what kind of interrupt is mapped to a * particular IRQ number. */ enum { /* per-cpu interrupt; use enable/disable_percpu_irq() to mask */ TILE_IRQ_PERCPU, /* global interrupt, hardware responsible for clearing. */ TILE_IRQ_HW_CLEAR, /* global interrupt, software responsible for clearing. */ TILE_IRQ_SW_CLEAR, }; /* * Paravirtualized drivers should call this when they dynamically * allocate a new IRQ or discover an IRQ that was pre-allocated by the * hypervisor for use with their particular device. This gives the * IRQ subsystem an opportunity to do interrupt-type-specific * initialization. * * ISSUE: We should modify this API so that registering anything * except percpu interrupts also requires providing callback methods * for enabling and disabling the interrupt. This would allow the * generic IRQ code to proxy enable/disable_irq() calls back into the * PCI subsystem, which in turn could enable or disable the interrupt * at the PCI shim. */ void tile_irq_activate(unsigned int irq, int tile_irq_type); void setup_irq_regs(void); #endif /* _ASM_TILE_IRQ_H */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
You can’t perform that action at this time.