diff options
author | Jonas Aaberg <jonas.aberg@stericsson.com> | 2011-12-14 10:19:59 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 10:59:31 +0200 |
commit | 34ce3c349c77e721d1ac0de047eaa4d61682cce0 (patch) | |
tree | 3827a2fb1d5e39f7eae90ae020ee20e0c47eb69e /drivers/mfd | |
parent | de732c95ae819baa0d1bb90c659e70150b7c1d56 (diff) |
ARM: ux500: prcmu-debug: display interrupt types
Adds a debugfs entry named prcmu/interrupts that displays
the different kinds of prcmu interrupts. It shows a summary
of how many calls to the different mailboxes and for mailbox0
the different events.
ST-Ericsson Linux next: -
ST-Ericsson ID: 370799
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: I049e85c23a8344bf317043f3a532ce764d5e3b39
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/42475
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/db5500-prcmu.c | 5 | ||||
-rw-r--r-- | drivers/mfd/db8500-prcmu.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/mfd/db5500-prcmu.c b/drivers/mfd/db5500-prcmu.c index feb1ad1a328..b106632d03c 100644 --- a/drivers/mfd/db5500-prcmu.c +++ b/drivers/mfd/db5500-prcmu.c @@ -1929,6 +1929,10 @@ static bool read_mailbox_0(void) else ev = readl(PRCM_ACK_MB0_WAKEUP_0_DBB); + prcmu_debug_register_mbox0_event(ev, + (mb0_transfer.req.dbb_irqs | + mb0_transfer.req.dbb_wakeups)); + ev &= mb0_transfer.req.dbb_irqs; for (n = 0; n < NUM_DB5500_PRCMU_WAKEUPS; n++) { @@ -2124,6 +2128,7 @@ static irqreturn_t prcmu_irq_handler(int irq, void *data) bits -= MBOX_BIT(n); if (read_mailbox[n]()) r = IRQ_WAKE_THREAD; + prcmu_debug_register_interrupt(n); } } return r; diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index 3435126de97..48eaa0763a0 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c @@ -2436,6 +2436,13 @@ static bool read_mailbox_0(void) if (ev & WAKEUP_BIT_SYSCLK_OK) complete(&mb3_transfer.sysclk_work); + prcmu_debug_register_mbox0_event(ev, + (mb0_transfer.req.dbb_irqs | + mb0_transfer.req.dbb_wakeups | + WAKEUP_BIT_AC_WAKE_ACK | + WAKEUP_BIT_AC_SLEEP_ACK | + WAKEUP_BIT_SYSCLK_OK)); + ev &= mb0_transfer.req.dbb_irqs; for (n = 0; n < NUM_PRCMU_WAKEUPS; n++) { @@ -2560,6 +2567,7 @@ static irqreturn_t prcmu_irq_handler(int irq, void *data) bits -= MBOX_BIT(n); if (read_mailbox[n]()) r = IRQ_WAKE_THREAD; + prcmu_debug_register_interrupt(n); } } return r; |