mfd: Use devm_* APIs for mc13xxx
authorAxel Lin <axel.lin@gmail.com>
Fri, 29 Jun 2012 13:14:36 +0000 (15:14 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Sun, 8 Jul 2012 22:16:08 +0000 (00:16 +0200)
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/mc13xxx-core.c
drivers/mfd/mc13xxx-i2c.c
drivers/mfd/mc13xxx-spi.c

index f0ea3b8b3e4ad979d5e1d5fe53bde83a7392dfd2..b801dc72f041a125fcf9a52e25e6d594ee052d92 100644 (file)
@@ -723,10 +723,6 @@ void mc13xxx_common_cleanup(struct mc13xxx *mc13xxx)
        free_irq(mc13xxx->irq, mc13xxx);
 
        mfd_remove_devices(mc13xxx->dev);
-
-       regmap_exit(mc13xxx->regmap);
-
-       kfree(mc13xxx);
 }
 EXPORT_SYMBOL_GPL(mc13xxx_common_cleanup);
 
index d22501dad6a688c11512f27ca2b0477188b57cf9..18d29f3ca67f06ba0dbbb9e2a3b660496f19b1a3 100644 (file)
@@ -63,7 +63,7 @@ static int mc13xxx_i2c_probe(struct i2c_client *client,
        if (of_id)
                idrv->id_table = (const struct i2c_device_id*) of_id->data;
 
-       mc13xxx = kzalloc(sizeof(*mc13xxx), GFP_KERNEL);
+       mc13xxx = devm_kzalloc(&client->dev, sizeof(*mc13xxx), GFP_KERNEL);
        if (!mc13xxx)
                return -ENOMEM;
 
@@ -72,13 +72,13 @@ static int mc13xxx_i2c_probe(struct i2c_client *client,
        mc13xxx->dev = &client->dev;
        mutex_init(&mc13xxx->lock);
 
-       mc13xxx->regmap = regmap_init_i2c(client, &mc13xxx_regmap_i2c_config);
+       mc13xxx->regmap = devm_regmap_init_i2c(client,
+                                              &mc13xxx_regmap_i2c_config);
        if (IS_ERR(mc13xxx->regmap)) {
                ret = PTR_ERR(mc13xxx->regmap);
                dev_err(mc13xxx->dev, "Failed to initialize register map: %d\n",
                                ret);
                dev_set_drvdata(&client->dev, NULL);
-               kfree(mc13xxx);
                return ret;
        }
 
index 03df422feb763ab075ac5fa741ef09b71c066d1d..234207f7a831aec56a368bbc20c6e410c989db13 100644 (file)
@@ -129,7 +129,7 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
        if (of_id)
                sdrv->id_table = &mc13xxx_device_id[(enum mc13xxx_id) of_id->data];
 
-       mc13xxx = kzalloc(sizeof(*mc13xxx), GFP_KERNEL);
+       mc13xxx = devm_kzalloc(&spi->dev, sizeof(*mc13xxx), GFP_KERNEL);
        if (!mc13xxx)
                return -ENOMEM;
 
@@ -139,15 +139,12 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
        mc13xxx->dev = &spi->dev;
        mutex_init(&mc13xxx->lock);
 
-       mc13xxx->regmap = regmap_init(&spi->dev, &regmap_mc13xxx_bus, &spi->dev,
-                                       &mc13xxx_regmap_spi_config);
-
+       mc13xxx->regmap = devm_regmap_init_spi(spi, &mc13xxx_regmap_spi_config);
        if (IS_ERR(mc13xxx->regmap)) {
                ret = PTR_ERR(mc13xxx->regmap);
                dev_err(mc13xxx->dev, "Failed to initialize register map: %d\n",
                                ret);
                dev_set_drvdata(&spi->dev, NULL);
-               kfree(mc13xxx);
                return ret;
        }