diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-23 22:05:53 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-23 22:05:53 -0400 |
| commit | 47b170af84d18b736bb35932823ec01cfcfe1967 (patch) | |
| tree | d52acd411c4c2e05b9db553e9b6f4a6bf59f5ca4 /drivers/sh/intc/dynamic.c | |
| parent | 83c7f72259ea4bd0561e2f2762d97ee2888126ce (diff) | |
| parent | 9ff561fdf73493d757bbc74aa58627e1381650fb (diff) | |
Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh
Pull SuperH updates from Paul Mundt:
- Migration off of old-style dynamic IRQ API.
- irqdomain and generic irq chip propagation.
- div4/6 clock consolidation, another step towards co-existing with the
common struct clk infrastructure.
- Extensive PFC rework
- Decoupling GPIO from pin state.
- Initial pinctrl support to facilitate incremental migration off of
legacy pinmux.
- gpiolib support made optional, and made pinctrl-backed.
* tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (38 commits)
sh: pfc: pin config get/set support.
sh: pfc: Prefer DRV_NAME over KBUILD_MODNAME.
sh: pfc: pinctrl legacy group support.
sh: pfc: Ignore pinmux GPIOs with invalid enum IDs.
sh: pfc: Export pinctrl binding init symbol.
sh: pfc: Error out on pinctrl init resolution failure.
sh: pfc: Make pr_fmt consistent across pfc drivers.
sh: pfc: pinctrl legacy function support.
sh: pfc: Rudimentary pinctrl-backed GPIO support.
sh: pfc: Dumb GPIO stringification.
sh: pfc: Shuffle PFC support core.
sh: pfc: Verify pin type encoding size at build time.
sh: pfc: Kill off unused pinmux bias flags.
sh: pfc: Make gpio chip support optional where possible.
sh: pfc: Split out gpio chip support.
sh64: Fix up section mismatch warnings.
sh64: Attempt to make reserved insn trap handler resemble C.
sh: Consolidate die definitions for trap handlers.
sh64: Kill off old exception debugging helpers.
sh64: Use generic unaligned access control/counters.
...
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 | } | ||
