Commit d3e5b363 authored by Federico Vaga's avatar Federico Vaga

kernel: disable irq before register handler

In order to avoid spurious interrupts from previous running, disable all
interrupts before registering the IRQ handler.
Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 82f0fdcc
...@@ -322,6 +322,9 @@ int fd_irq_init(struct fd_dev *fd) ...@@ -322,6 +322,9 @@ int fd_irq_init(struct fd_dev *fd)
} else { } else {
dev_info(fd->fmc->hwdev, "Using interrupts for input\n"); dev_info(fd->fmc->hwdev, "Using interrupts for input\n");
/* Disable interrupts */
fd_writel(fd, ~0, FD_REG_EIC_IDR);
tasklet_init(&fd->tlet, fd_tlet, (unsigned long)fd); tasklet_init(&fd->tlet, fd_tlet, (unsigned long)fd);
fmc->irq = fd->fd_regs_base; fmc->irq = fd->fd_regs_base;
rv = fmc->op->irq_request(fmc, fd_irq_handler, "fine-delay", 0); rv = fmc->op->irq_request(fmc, fd_irq_handler, "fine-delay", 0);
...@@ -341,7 +344,6 @@ int fd_irq_init(struct fd_dev *fd) ...@@ -341,7 +344,6 @@ int fd_irq_init(struct fd_dev *fd)
|FD_TSBIR_THRESHOLD_W(15), /* samples */ |FD_TSBIR_THRESHOLD_W(15), /* samples */
FD_REG_TSBIR); FD_REG_TSBIR);
fd_writel(fd, ~0, FD_REG_EIC_IDR);
fd_writel(fd, FD_EIC_IER_TS_BUF_NOTEMPTY, FD_REG_EIC_IER); fd_writel(fd, FD_EIC_IER_TS_BUF_NOTEMPTY, FD_REG_EIC_IER);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment