Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 329946
b: refs/heads/master
c: 3080de4
h: refs/heads/master
v: v3
  • Loading branch information
Mark Brown authored and Samuel Ortiz committed Sep 14, 2012
1 parent ab16dcb commit 15e97a6
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 55692af5eb587f7592d6c2713e1e0eeaab0f6c31
refs/heads/master: 3080de4ef62f0cc1910b227d33d3533f3c4a4a5d
18 changes: 15 additions & 3 deletions trunk/drivers/mfd/arizona-irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ static irqreturn_t arizona_ctrlif_err(int irq, void *data)
static irqreturn_t arizona_irq_thread(int irq, void *data)
{
struct arizona *arizona = data;
unsigned int val;
int i, ret;

ret = pm_runtime_get_sync(arizona->dev);
Expand All @@ -102,9 +103,20 @@ static irqreturn_t arizona_irq_thread(int irq, void *data)
return IRQ_NONE;
}

/* Check both domains */
for (i = 0; i < 2; i++)
handle_nested_irq(irq_find_mapping(arizona->virq, i));
/* Always handle the AoD domain */
handle_nested_irq(irq_find_mapping(arizona->virq, 0));

/*
* Check if one of the main interrupts is asserted and only
* check that domain if it is.
*/
ret = regmap_read(arizona->regmap, ARIZONA_IRQ_PIN_STATUS, &val);
if (ret == 0 && val & ARIZONA_IRQ1_STS) {
handle_nested_irq(irq_find_mapping(arizona->virq, 1));
} else if (ret != 0) {
dev_err(arizona->dev, "Failed to read main IRQ status: %d\n",
ret);
}

pm_runtime_mark_last_busy(arizona->dev);
pm_runtime_put_autosuspend(arizona->dev);
Expand Down

0 comments on commit 15e97a6

Please sign in to comment.