Skip to content

Commit

Permalink
GPU: ipu: fix lockup caused by pending chained interrupts
Browse files Browse the repository at this point in the history
Even with the oops fixed by a previous patch, the system still fails to
kexec, due to a stuck chained interrupt locking the system.  We must
disable the child interrupts prior to setting up the irq chip to ensure
we don't get stuck here.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
  • Loading branch information
Russell King authored and Philipp Zabel committed Jul 10, 2015
1 parent 553a59f commit 510e642
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/gpu/ipu-v3/ipu-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -1107,6 +1107,9 @@ static int ipu_irq_init(struct ipu_soc *ipu)
return ret;
}

for (i = 0; i < IPU_NUM_IRQS; i += 32)
ipu_cm_write(ipu, 0, IPU_INT_CTRL(i / 32));

for (i = 0; i < IPU_NUM_IRQS; i += 32) {
gc = irq_get_domain_generic_chip(ipu->domain, i);
gc->reg_base = ipu->cm_reg;
Expand Down

0 comments on commit 510e642

Please sign in to comment.