diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2014-03-06 14:53:54 -0700 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2018-12-24 01:27:25 +0100 |
commit | fdbdde9e3e05f604056f82ec54147d83359d9719 (patch) | |
tree | 897c3edca62754f8d1b93c07ba4d50d4e68a3d4a | |
parent | 39659b5a517a5ced1863ab54057d5709d81def11 (diff) |
ipu_common: ipu_free_irq, do nothing if not owner
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 76560022d967fefa3195181766a1228344f817b8)
(cherry picked from commit f157011ef74dd94d57cc666518ccfca889b87d64)
-rw-r--r-- | drivers/mxc/ipu3/ipu_common.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c index c5b82f78421f..eb9cc785a4a3 100644 --- a/drivers/mxc/ipu3/ipu_common.c +++ b/drivers/mxc/ipu3/ipu_common.c @@ -3102,14 +3102,16 @@ void ipu_free_irq(struct ipu_soc *ipu, uint32_t irq, void *dev_id) _ipu_get(ipu); + if (ipu->irq_list[irq].dev_id != dev_id) + return; + spin_lock_irqsave(&ipu->int_reg_spin_lock, lock_flags); /* disable the interrupt */ reg = ipu_cm_read(ipu, IPUIRQ_2_CTRLREG(irq)); reg &= ~IPUIRQ_2_MASK(irq); ipu_cm_write(ipu, reg, IPUIRQ_2_CTRLREG(irq)); - if (ipu->irq_list[irq].dev_id == dev_id) - memset(&ipu->irq_list[irq], 0, sizeof(ipu->irq_list[irq])); + memset(&ipu->irq_list[irq], 0, sizeof(ipu->irq_list[irq])); spin_unlock_irqrestore(&ipu->int_reg_spin_lock, lock_flags); |