diff options
| author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-21 05:33:03 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-21 08:44:55 -0400 |
| commit | 64131a87f2aae2ed9e05d8227c5b009ca6c50d98 (patch) | |
| tree | fdea23fd59216120bf54a48c60ca24489a733f14 /include/linux/interrupt.h | |
| parent | 676ee36be04985062522804c2de04f0764212be6 (diff) | |
| parent | 2c33ce009ca2389dbf0535d0672214d09738e35e (diff) | |
Merge branch 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux into v4l_for_linus
* 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux: (9717 commits)
media-bus: Fixup RGB444_1X12, RGB565_1X16, and YUV8_1X24 media bus format
hexdump: avoid warning in test function
fs: take i_mutex during prepare_binprm for set[ug]id executables
smp: Fix error case handling in smp_call_function_*()
iommu-common: Fix PARISC compile-time warnings
sparc: Make LDC use common iommu poll management functions
sparc: Make sparc64 use scalable lib/iommu-common.c functions
Break up monolithic iommu table/lock into finer graularity pools and lock
sparc: Revert generic IOMMU allocator.
tools/power turbostat: correct dumped pkg-cstate-limit value
tools/power turbostat: calculate TSC frequency from CPUID(0x15) on SKL
tools/power turbostat: correct DRAM RAPL units on recent Xeon processors
tools/power turbostat: Initial Skylake support
tools/power turbostat: Use $(CURDIR) instead of $(PWD) and add support for O= option in Makefile
tools/power turbostat: modprobe msr, if needed
tools/power turbostat: dump MSR_TURBO_RATIO_LIMIT2
tools/power turbostat: use new MSR_TURBO_RATIO_LIMIT names
Bluetooth: hidp: Fix regression with older userspace and flags validation
config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
perf/x86/intel/pt: Fix and clean up error handling in pt_event_add()
...
That solves several merge conflicts:
Documentation/DocBook/media/v4l/subdev-formats.xml
Documentation/devicetree/bindings/vendor-prefixes.txt
drivers/staging/media/mn88473/mn88473.c
include/linux/kconfig.h
include/uapi/linux/media-bus-format.h
The ones at subdev-formats.xml and media-bus-format.h are not trivial.
That's why we opted to merge from DRM.
Diffstat (limited to 'include/linux/interrupt.h')
| -rw-r--r-- | include/linux/interrupt.h | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index d9b05b5bf8c7..950ae4501826 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -39,8 +39,6 @@ | |||
| 39 | * These flags used only by the kernel as part of the | 39 | * These flags used only by the kernel as part of the |
| 40 | * irq handling routines. | 40 | * irq handling routines. |
| 41 | * | 41 | * |
| 42 | * IRQF_DISABLED - keep irqs disabled when calling the action handler. | ||
| 43 | * DEPRECATED. This flag is a NOOP and scheduled to be removed | ||
| 44 | * IRQF_SHARED - allow sharing the irq among several devices | 42 | * IRQF_SHARED - allow sharing the irq among several devices |
| 45 | * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur | 43 | * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur |
| 46 | * IRQF_TIMER - Flag to mark this interrupt as timer interrupt | 44 | * IRQF_TIMER - Flag to mark this interrupt as timer interrupt |
| @@ -52,13 +50,18 @@ | |||
| 52 | * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished. | 50 | * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished. |
| 53 | * Used by threaded interrupts which need to keep the | 51 | * Used by threaded interrupts which need to keep the |
| 54 | * irq line disabled until the threaded handler has been run. | 52 | * irq line disabled until the threaded handler has been run. |
| 55 | * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend | 53 | * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend. Does not guarantee |
| 54 | * that this interrupt will wake the system from a suspended | ||
| 55 | * state. See Documentation/power/suspend-and-interrupts.txt | ||
| 56 | * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set | 56 | * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set |
| 57 | * IRQF_NO_THREAD - Interrupt cannot be threaded | 57 | * IRQF_NO_THREAD - Interrupt cannot be threaded |
| 58 | * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device | 58 | * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device |
| 59 | * resume time. | 59 | * resume time. |
| 60 | * IRQF_COND_SUSPEND - If the IRQ is shared with a NO_SUSPEND user, execute this | ||
| 61 | * interrupt handler after suspending interrupts. For system | ||
| 62 | * wakeup devices users need to implement wakeup detection in | ||
| 63 | * their interrupt handlers. | ||
| 60 | */ | 64 | */ |
| 61 | #define IRQF_DISABLED 0x00000020 | ||
| 62 | #define IRQF_SHARED 0x00000080 | 65 | #define IRQF_SHARED 0x00000080 |
| 63 | #define IRQF_PROBE_SHARED 0x00000100 | 66 | #define IRQF_PROBE_SHARED 0x00000100 |
| 64 | #define __IRQF_TIMER 0x00000200 | 67 | #define __IRQF_TIMER 0x00000200 |
| @@ -70,6 +73,7 @@ | |||
| 70 | #define IRQF_FORCE_RESUME 0x00008000 | 73 | #define IRQF_FORCE_RESUME 0x00008000 |
| 71 | #define IRQF_NO_THREAD 0x00010000 | 74 | #define IRQF_NO_THREAD 0x00010000 |
| 72 | #define IRQF_EARLY_RESUME 0x00020000 | 75 | #define IRQF_EARLY_RESUME 0x00020000 |
| 76 | #define IRQF_COND_SUSPEND 0x00040000 | ||
| 73 | 77 | ||
| 74 | #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD) | 78 | #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD) |
| 75 | 79 | ||
| @@ -184,6 +188,7 @@ extern void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id); | |||
| 184 | #endif | 188 | #endif |
| 185 | 189 | ||
| 186 | extern void disable_irq_nosync(unsigned int irq); | 190 | extern void disable_irq_nosync(unsigned int irq); |
| 191 | extern bool disable_hardirq(unsigned int irq); | ||
| 187 | extern void disable_irq(unsigned int irq); | 192 | extern void disable_irq(unsigned int irq); |
| 188 | extern void disable_percpu_irq(unsigned int irq); | 193 | extern void disable_percpu_irq(unsigned int irq); |
| 189 | extern void enable_irq(unsigned int irq); | 194 | extern void enable_irq(unsigned int irq); |
| @@ -356,6 +361,20 @@ static inline int disable_irq_wake(unsigned int irq) | |||
| 356 | return irq_set_irq_wake(irq, 0); | 361 | return irq_set_irq_wake(irq, 0); |
| 357 | } | 362 | } |
| 358 | 363 | ||
| 364 | /* | ||
| 365 | * irq_get_irqchip_state/irq_set_irqchip_state specific flags | ||
| 366 | */ | ||
| 367 | enum irqchip_irq_state { | ||
| 368 | IRQCHIP_STATE_PENDING, /* Is interrupt pending? */ | ||
| 369 | IRQCHIP_STATE_ACTIVE, /* Is interrupt in progress? */ | ||
| 370 | IRQCHIP_STATE_MASKED, /* Is interrupt masked? */ | ||
| 371 | IRQCHIP_STATE_LINE_LEVEL, /* Is IRQ line high? */ | ||
| 372 | }; | ||
| 373 | |||
| 374 | extern int irq_get_irqchip_state(unsigned int irq, enum irqchip_irq_state which, | ||
| 375 | bool *state); | ||
| 376 | extern int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, | ||
| 377 | bool state); | ||
| 359 | 378 | ||
| 360 | #ifdef CONFIG_IRQ_FORCED_THREADING | 379 | #ifdef CONFIG_IRQ_FORCED_THREADING |
| 361 | extern bool force_irqthreads; | 380 | extern bool force_irqthreads; |
