Skip to content

Commit

Permalink
mfd: tc3589x: Use simple irqdomain
Browse files Browse the repository at this point in the history
This fixes a regression in the TC3589x driver introduced in
commit 15e27b1
"mfd: Provide the tc3589x with its own IRQ domain"

If a system with a TC3589x expander is booted and a base
IRQ is passed from platform data, a legacy domain will
be used. However, since the Ux500 is now switched to use
SPARSE_IRQ, no descriptors get allocated on-the-fly,
and we get a crash.

Fix this by switching to using the simple irqdomain that
will handle this uniformly and also allocates descriptors
explicitly.

Also fix two small whitespace errors in the vicinity while
we're at it.

Cc: stable@kernel.org
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
  • Loading branch information
Linus Walleij authored and Samuel Ortiz committed Jan 22, 2013
1 parent b30dd8f commit 1f0529b
Showing 1 changed file with 5 additions and 12 deletions.
17 changes: 5 additions & 12 deletions drivers/mfd/tc3589x.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,25 +219,18 @@ static void tc3589x_irq_unmap(struct irq_domain *d, unsigned int virq)
}

static struct irq_domain_ops tc3589x_irq_ops = {
.map = tc3589x_irq_map,
.map = tc3589x_irq_map,
.unmap = tc3589x_irq_unmap,
.xlate = irq_domain_xlate_twocell,
.xlate = irq_domain_xlate_twocell,
};

static int tc3589x_irq_init(struct tc3589x *tc3589x, struct device_node *np)
{
int base = tc3589x->irq_base;

if (base) {
tc3589x->domain = irq_domain_add_legacy(
NULL, TC3589x_NR_INTERNAL_IRQS, base,
0, &tc3589x_irq_ops, tc3589x);
}
else {
tc3589x->domain = irq_domain_add_linear(
np, TC3589x_NR_INTERNAL_IRQS,
&tc3589x_irq_ops, tc3589x);
}
tc3589x->domain = irq_domain_add_simple(
np, TC3589x_NR_INTERNAL_IRQS, base,
&tc3589x_irq_ops, tc3589x);

if (!tc3589x->domain) {
dev_err(tc3589x->dev, "Failed to create irqdomain\n");
Expand Down

0 comments on commit 1f0529b

Please sign in to comment.