| From 89d9b1c99374997d68910ba49d5b7df80e7f2061 Mon Sep 17 00:00:00 2001 |
| From: Linus Walleij <linus.walleij@linaro.org> |
| Date: Thu, 20 Dec 2012 10:20:15 +0100 |
| Subject: mfd: db8500-prcmu: Fix irqdomain usage |
| |
| From: Linus Walleij <linus.walleij@linaro.org> |
| |
| commit 89d9b1c99374997d68910ba49d5b7df80e7f2061 upstream. |
| |
| This fixes two issues with the DB8500 PRCMU irqdomain: |
| - You have to state the irq base 0 to get a linear domain |
| for the DT case from irq_domain_add_simple() |
| - The irqdomain was not used to translate the initial irq |
| request using irq_create_mapping() making the linear |
| case fail as it was lacking a proper descriptor. |
| |
| I took this opportunity to fix two lines of whitespace |
| errors in related code as I was anyway messing around with |
| it. |
| |
| Acked-by Lee Jones <lee.jones@linaro.org> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> |
| Signed-off-by: CAI Qian <caiqian@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/mfd/db8500-prcmu.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/mfd/db8500-prcmu.c |
| +++ b/drivers/mfd/db8500-prcmu.c |
| @@ -2478,7 +2478,7 @@ static bool read_mailbox_0(void) |
| |
| for (n = 0; n < NUM_PRCMU_WAKEUPS; n++) { |
| if (ev & prcmu_irq_bit[n]) |
| - generic_handle_irq(IRQ_PRCMU_BASE + n); |
| + generic_handle_irq(irq_find_mapping(db8500_irq_domain, n)); |
| } |
| r = true; |
| break; |
| @@ -2706,6 +2706,10 @@ static int db8500_irq_init(struct device |
| return -ENOSYS; |
| } |
| |
| + /* All wakeups will be used, so create mappings for all */ |
| + for (i = 0; i < NUM_PRCMU_WAKEUPS; i++) |
| + irq_create_mapping(db8500_irq_domain, i); |
| + |
| return 0; |
| } |
| |