diff options
Diffstat (limited to 'drivers/mfd/88pm800.c')
-rw-r--r-- | drivers/mfd/88pm800.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c index ce229ea933d1..582bda543520 100644 --- a/drivers/mfd/88pm800.c +++ b/drivers/mfd/88pm800.c @@ -248,7 +248,7 @@ static const struct regmap_irq pm800_irqs[] = { }, }; -static int __devinit device_gpadc_init(struct pm80x_chip *chip, +static int device_gpadc_init(struct pm80x_chip *chip, struct pm80x_platform_data *pdata) { struct pm80x_subchip *subchip = chip->subchip; @@ -315,7 +315,7 @@ out: return ret; } -static int __devinit device_irq_init_800(struct pm80x_chip *chip) +static int device_irq_init_800(struct pm80x_chip *chip) { struct regmap *map = chip->regmap; unsigned long flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT; @@ -415,7 +415,7 @@ static void pm800_pages_exit(struct pm80x_chip *chip) } } -static int __devinit device_800_init(struct pm80x_chip *chip, +static int device_800_init(struct pm80x_chip *chip, struct pm80x_platform_data *pdata) { int ret, pmic_id; @@ -499,7 +499,7 @@ out: return ret; } -static int __devinit pm800_probe(struct i2c_client *client, +static int pm800_probe(struct i2c_client *client, const struct i2c_device_id *id) { int ret = 0; @@ -531,7 +531,7 @@ static int __devinit pm800_probe(struct i2c_client *client, ret = device_800_init(chip, pdata); if (ret) { dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id); - goto err_800_init; + goto err_subchip_alloc; } ret = pm800_pages_init(chip); @@ -546,15 +546,13 @@ static int __devinit pm800_probe(struct i2c_client *client, err_page_init: mfd_remove_devices(chip->dev); device_irq_exit_800(chip); -err_800_init: - devm_kfree(&client->dev, subchip); err_subchip_alloc: - pm80x_deinit(client); + pm80x_deinit(); out_init: return ret; } -static int __devexit pm800_remove(struct i2c_client *client) +static int pm800_remove(struct i2c_client *client) { struct pm80x_chip *chip = i2c_get_clientdata(client); @@ -562,9 +560,7 @@ static int __devexit pm800_remove(struct i2c_client *client) device_irq_exit_800(chip); pm800_pages_exit(chip); - devm_kfree(&client->dev, chip->subchip); - - pm80x_deinit(client); + pm80x_deinit(); return 0; } @@ -576,7 +572,7 @@ static struct i2c_driver pm800_driver = { .pm = &pm80x_pm_ops, }, .probe = pm800_probe, - .remove = __devexit_p(pm800_remove), + .remove = pm800_remove, .id_table = pm80x_id_table, }; |