aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2012-01-11 10:29:05 -0700
committerAndrey Konovalov <andrey.konovalov@linaro.org>2012-02-16 18:01:24 +0400
commitc1ad45e011d71f6b613e299843ab91f0ad9f27a9 (patch)
tree9d27c91ef6905530586a1a5eb9f52cd6ba94d089 /drivers
parent590529be8baba0fedc6b3a1b22d7c29f4b64609d (diff)
irq_domain: Remove 'new' irq_domain in favour of the ppc one
This patch removes the simplistic implementation of irq_domains and enables the powerpc infrastructure for all irq_domain users. The powerpc infrastructure includes support for complex mappings between Linux and hardware irq numbers, and can manage allocation of irq_descs. This patch also converts the few users of irq_domain_add()/irq_domain_del() to call irq_domain_add_legacy() instead. v3: Fix bug that set up too many irqs in translation range. v2: Fix removal of irq_alloc_descs() call in gic driver Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Cc: Rob Herring <rob.herring@calxeda.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Milton Miller <miltonm@bga.com> Tested-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/twl-core.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index e5850c8dfad..66f9bffc50f 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -263,8 +263,6 @@ struct twl_client {
static struct twl_client twl_modules[TWL_NUM_SLAVES];
-static struct irq_domain domain;
-
/* mapping the module id to slave id and base address */
struct twl_mapping {
unsigned char sid; /* Slave ID */
@@ -1225,14 +1223,8 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
pdata->irq_base = status;
pdata->irq_end = pdata->irq_base + nr_irqs;
-
- domain.irq_base = pdata->irq_base;
- domain.nr_irq = nr_irqs;
-#ifdef CONFIG_OF_IRQ
- domain.of_node = of_node_get(node);
- domain.ops = &irq_domain_simple_ops;
-#endif
- irq_domain_add(&domain);
+ irq_domain_add_legacy(node, nr_irqs, pdata->irq_base, 0,
+ &irq_domain_simple_ops, NULL);
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C) == 0) {
dev_dbg(&client->dev, "can't talk I2C?\n");