diff options
Diffstat (limited to 'drivers/sh/intc/dynamic.c')
| -rw-r--r-- | drivers/sh/intc/dynamic.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/drivers/sh/intc/dynamic.c b/drivers/sh/intc/dynamic.c deleted file mode 100644 index 14eb01ef5d72..000000000000 --- a/drivers/sh/intc/dynamic.c +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Dynamic IRQ management | ||
| 3 | * | ||
| 4 | * Copyright (C) 2010 Paul Mundt | ||
| 5 | * | ||
| 6 | * Modelled after arch/x86/kernel/apic/io_apic.c | ||
| 7 | * | ||
| 8 | * This file is subject to the terms and conditions of the GNU General Public | ||
| 9 | * License. See the file "COPYING" in the main directory of this archive | ||
| 10 | * for more details. | ||
| 11 | */ | ||
| 12 | #define pr_fmt(fmt) "intc: " fmt | ||
| 13 | |||
| 14 | #include <linux/irq.h> | ||
| 15 | #include <linux/bitmap.h> | ||
| 16 | #include <linux/spinlock.h> | ||
| 17 | #include <linux/module.h> | ||
| 18 | #include "internals.h" /* only for activate_irq() damage.. */ | ||
| 19 | |||
| 20 | /* | ||
| 21 | * The IRQ bitmap provides a global map of bound IRQ vectors for a | ||
| 22 | * given platform. Allocation of IRQs are either static through the CPU | ||
| 23 | * vector map, or dynamic in the case of board mux vectors or MSI. | ||
| 24 | * | ||
| 25 | * As this is a central point for all IRQ controllers on the system, | ||
| 26 | * each of the available sources are mapped out here. This combined with | ||
| 27 | * sparseirq makes it quite trivial to keep the vector map tightly packed | ||
| 28 | * when dynamically creating IRQs, as well as tying in to otherwise | ||
| 29 | * unused irq_desc positions in the sparse array. | ||
| 30 | */ | ||
| 31 | |||
| 32 | /* | ||
| 33 | * Dynamic IRQ allocation and deallocation | ||
| 34 | */ | ||
| 35 | unsigned int create_irq_nr(unsigned int irq_want, int node) | ||
| 36 | { | ||
| 37 | int irq = irq_alloc_desc_at(irq_want, node); | ||
| 38 | if (irq < 0) | ||
| 39 | return 0; | ||
| 40 | |||
| 41 | activate_irq(irq); | ||
| 42 | return irq; | ||
| 43 | } | ||
| 44 | |||
| 45 | int create_irq(void) | ||
| 46 | { | ||
| 47 | int irq = irq_alloc_desc(numa_node_id()); | ||
| 48 | if (irq >= 0) | ||
| 49 | activate_irq(irq); | ||
| 50 | |||
| 51 | return irq; | ||
| 52 | } | ||
| 53 | |||
| 54 | void destroy_irq(unsigned int irq) | ||
| 55 | { | ||
| 56 | irq_free_desc(irq); | ||
| 57 | } | ||
