aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500')
-rwxr-xr-xarch/arm/mach-ux500/prcmu-fw.c17
-rwxr-xr-xarch/arm/mach-ux500/prcmu-fw_v1.h3
2 files changed, 12 insertions, 8 deletions
diff --git a/arch/arm/mach-ux500/prcmu-fw.c b/arch/arm/mach-ux500/prcmu-fw.c
index 7117bd29f4e..728782c8600 100755
--- a/arch/arm/mach-ux500/prcmu-fw.c
+++ b/arch/arm/mach-ux500/prcmu-fw.c
@@ -1498,7 +1498,15 @@ irqreturn_t prcmu_ack_mbox_irq_handler(int irq, void *ctrlr)
dbg_printk(" prcm_arm_it1_val = %x ", prcm_arm_it1_val);
- if (prcm_arm_it1_val & (1 << 0)) {
+ if (prcm_arm_it1_val & (PRCM_IRQ_ACK_MBOX7)) {
+ /* No header reading required */
+ dbg_printk("\n IRQ handler for Ack mb7\n");
+ tasklet_schedule(&prcmu_ack_mb7_tasklet);
+
+ /* clear the bit 7 */
+ writeb(PRCM_IRQ_ACK_MBOX7, PRCM_ARM_IT1_CLEAR);
+
+ } else if (prcm_arm_it1_val & (PRCM_IRQ_ACK_MBOX0)) {
dbg_printk("\n Inside IRQ handler for Ack mb0 ");
wake_up_interruptible(&ack_mb0_queue);
@@ -1557,13 +1565,6 @@ irqreturn_t prcmu_ack_mbox_irq_handler(int irq, void *ctrlr)
/* clear the bit 6 */
writeb(0x40, PRCM_ARM_IT1_CLEAR);
- } else if (prcm_arm_it1_val & (1<<7)) {
- /* No header reading required */
- dbg_printk("\n IRQ handler for Ack mb7\n");
- tasklet_schedule(&prcmu_ack_mb7_tasklet);
-
- /* clear the bit 7 */
- writeb(0x80, PRCM_ARM_IT1_CLEAR);
}
return IRQ_HANDLED;
}
diff --git a/arch/arm/mach-ux500/prcmu-fw_v1.h b/arch/arm/mach-ux500/prcmu-fw_v1.h
index 6a88295fa42..3bdea06aace 100755
--- a/arch/arm/mach-ux500/prcmu-fw_v1.h
+++ b/arch/arm/mach-ux500/prcmu-fw_v1.h
@@ -148,6 +148,9 @@
#define PRCM_ACK_MB5_SLAVE (PRCM_ACK_MB5 + 0x2)
#define PRCM_ACK_MB5_VAL (PRCM_ACK_MB5 + 0x3)
+#define PRCM_IRQ_ACK_MBOX0 (1 << 0)
+#define PRCM_IRQ_ACK_MBOX7 (1 << 7)
+
#define LOW_POWER_WAKEUP 1
#define EXE_WAKEUP 0