aboutsummaryrefslogtreecommitdiff
path: root/sys/arm
diff options
context:
space:
mode:
authorMichal Meloun <mmel@FreeBSD.org>2016-05-29 07:39:56 +0000
committerMichal Meloun <mmel@FreeBSD.org>2016-05-29 07:39:56 +0000
commit74bf497550b35c5705de30b2406740860624a415 (patch)
tree0227e7f18ef3965b5372f9c104484fa1d359952f /sys/arm
parent9a81299340d116e73d6ed45bb9a5976beaa4b16d (diff)
downloadsrc-74bf497550b35c5705de30b2406740860624a415.tar.gz
src-74bf497550b35c5705de30b2406740860624a415.zip
ARM GIC: Allow to setup interrupt without configuration data.
In some cases, like for PCI devices, only interrupt numbers are enumerated from HW. In this case, use INTR_foo_CONFORM as level and trigger values.
Notes
Notes: svn path=/head/; revision=300951
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/gic.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/arm/arm/gic.c b/sys/arm/arm/gic.c
index cd5e6d70c9e1..d6b2fdfbd72b 100644
--- a/sys/arm/arm/gic.c
+++ b/sys/arm/arm/gic.c
@@ -1128,8 +1128,11 @@ arm_gic_setup_intr(device_t dev, struct intr_irqsrc *isrc,
if (gi->gi_irq != irq)
return (EINVAL);
- } else
- return (ENOTSUP);
+ } else {
+ irq = gi->gi_irq;
+ pol = INTR_POLARITY_CONFORM;
+ trig = INTR_TRIGGER_CONFORM;
+ }
/* Compare config if this is not first setup. */
if (isrc->isrc_handlers != 0) {