diff options
author | Jin Park <jinyoungp@nvidia.com> | 2011-09-27 19:23:05 +0900 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:49:05 -0800 |
commit | 54965aecd654990f1565c6dc8b3457b847009079 (patch) | |
tree | 6a3de38c82d2a6181eb0ea5d6ac6d43f827db6a1 /drivers/mfd | |
parent | 6aac98a92ae0a3ab8bf2d790365e6d0be78ea758 (diff) |
mfd: max77663: Update the driver to the new irq APIs
The irq core is updated to pass struct irq_data to irq operations.
Updating the MAX77663 driver to new irq APIs.
Change-Id: Id845c1de9d4a98a60993201b9b7740a0633f54fe
Signed-off-by: Jin Park <jinyoungp@nvidia.com>
Reviewed-on: http://git-master/r/54674
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: Radd1bec604f982a2342842e9681087dd7bf06259
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/max77663-core.c | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/drivers/mfd/max77663-core.c b/drivers/mfd/max77663-core.c index 4728ca7f0391..349e5f5eb1c0 100644 --- a/drivers/mfd/max77663-core.c +++ b/drivers/mfd/max77663-core.c @@ -646,32 +646,32 @@ static void max77663_gpio_exit(struct max77663_chip *chip) dev_err(chip->dev, "gpio_exit: Failed to remove gpiochip\n"); } -static void max77663_irq_mask(unsigned int irq) +static void max77663_irq_mask(struct irq_data *data) { - struct max77663_chip *chip = get_irq_chip_data(irq); + struct max77663_chip *chip = irq_data_get_irq_chip_data(data); - max77663_irqs[irq - chip->irq_base].is_unmask = 0; + max77663_irqs[data->irq - chip->irq_base].is_unmask = 0; } -static void max77663_irq_unmask(unsigned int irq) +static void max77663_irq_unmask(struct irq_data *data) { - struct max77663_chip *chip = get_irq_chip_data(irq); + struct max77663_chip *chip = irq_data_get_irq_chip_data(data); - max77663_irqs[irq - chip->irq_base].is_unmask = 1; + max77663_irqs[data->irq - chip->irq_base].is_unmask = 1; } -static void max77663_irq_lock(unsigned int irq) +static void max77663_irq_lock(struct irq_data *data) { - struct max77663_chip *chip = get_irq_chip_data(irq); + struct max77663_chip *chip = irq_data_get_irq_chip_data(data); mutex_lock(&chip->irq_lock); } -static void max77663_irq_sync_unlock(unsigned int irq) +static void max77663_irq_sync_unlock(struct irq_data *data) { - struct max77663_chip *chip = get_irq_chip_data(irq); + struct max77663_chip *chip = irq_data_get_irq_chip_data(data); struct max77663_irq_data *irq_data = - &max77663_irqs[irq - chip->irq_base]; + &max77663_irqs[data->irq - chip->irq_base]; int idx = irq_data->cache_idx; u8 irq_top_mask = chip->cache_irq_top_mask; u16 irq_mask = chip->cache_irq_mask[idx]; @@ -714,7 +714,7 @@ static void max77663_irq_sync_unlock(unsigned int irq) chip->cache_irq_mask[idx] = irq_mask; } else if ((idx == -1) && (irq_data->top_mask == IRQ_TOP_GPIO_MASK)) { - unsigned offset = irq - chip->irq_base - IRQ_GPIO_BASE; + unsigned offset = data->irq - chip->irq_base - IRQ_GPIO_BASE; u8 shift = GPIO_CTRL_REFE_IRQ_SHIFT; if (irq_data->is_unmask) { @@ -746,12 +746,12 @@ out: mutex_unlock(&chip->irq_lock); } -static int max77663_irq_gpio_set_type(unsigned int irq, unsigned int type) +static int max77663_irq_gpio_set_type(struct irq_data *data, unsigned int type) { - struct max77663_chip *chip = get_irq_chip_data(irq); + struct max77663_chip *chip = irq_data_get_irq_chip_data(data); struct max77663_irq_data *irq_data = - &max77663_irqs[irq - chip->irq_base]; - unsigned offset = irq - chip->irq_base - IRQ_GPIO_BASE; + &max77663_irqs[data->irq - chip->irq_base]; + unsigned offset = data->irq - chip->irq_base - IRQ_GPIO_BASE; u8 shift = GPIO_CTRL_REFE_IRQ_SHIFT; u8 val; @@ -861,19 +861,19 @@ static irqreturn_t max77663_irq(int irq, void *data) static struct irq_chip max77663_irq_gpio_chip = { .name = "max77663-irq", - .mask = max77663_irq_mask, - .unmask = max77663_irq_unmask, - .set_type = max77663_irq_gpio_set_type, - .bus_lock = max77663_irq_lock, - .bus_sync_unlock = max77663_irq_sync_unlock, + .irq_mask = max77663_irq_mask, + .irq_unmask = max77663_irq_unmask, + .irq_set_type = max77663_irq_gpio_set_type, + .irq_bus_lock = max77663_irq_lock, + .irq_bus_sync_unlock = max77663_irq_sync_unlock, }; static struct irq_chip max77663_irq_chip = { .name = "max77663-irq", - .mask = max77663_irq_mask, - .unmask = max77663_irq_unmask, - .bus_lock = max77663_irq_lock, - .bus_sync_unlock = max77663_irq_sync_unlock, + .irq_mask = max77663_irq_mask, + .irq_unmask = max77663_irq_unmask, + .irq_bus_lock = max77663_irq_lock, + .irq_bus_sync_unlock = max77663_irq_sync_unlock, }; static int max77663_irq_init(struct max77663_chip *chip) @@ -916,21 +916,21 @@ static int max77663_irq_init(struct max77663_chip *chip) continue; } - set_irq_chip_data(i, chip); + irq_set_chip_data(i, chip); if ((IRQ_GPIO_BASE <= i - chip->irq_base) && (i - chip->irq_base <= IRQ_GPIO_END)) - set_irq_chip_and_handler(i, &max77663_irq_gpio_chip, + irq_set_chip_and_handler(i, &max77663_irq_gpio_chip, handle_edge_irq); else - set_irq_chip_and_handler(i, &max77663_irq_chip, + irq_set_chip_and_handler(i, &max77663_irq_chip, handle_edge_irq); #ifdef CONFIG_ARM set_irq_flags(i, IRQF_VALID); #else - set_irq_noprobe(i); + irq_set_noprobe(i); #endif - set_irq_nested_thread(i, 1); + irq_set_nested_thread(i, 1); } ret = request_threaded_irq(chip->i2c_power->irq, NULL, max77663_irq, @@ -1107,7 +1107,7 @@ static int max77663_probe(struct i2c_client *client, { struct max77663_platform_data *pdata = client->dev.platform_data; struct max77663_chip *chip; - int i, ret = 0; + int ret = 0; if (pdata == NULL) { dev_err(&client->dev, "probe: Invalid platform_data\n"); @@ -1134,8 +1134,6 @@ static int max77663_probe(struct i2c_client *client, chip->irq_base = pdata->irq_base; chip->gpio_base = pdata->gpio_base; mutex_init(&chip->io_lock); - for (i = 0; i < pdata->num_subdevs; i++) - pdata->sub_devices[i].driver_data = chip; max77663_gpio_init(chip); max77663_irq_init(chip); |