[media] s5k6aa: Use devm_regulator_bulk_get API
authorSachin Kamat <sachin.kamat@linaro.org>
Tue, 8 Jan 2013 05:48:24 +0000 (02:48 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 5 Feb 2013 19:31:22 +0000 (17:31 -0200)
devm_regulator_bulk_get is device managed and saves some cleanup
and exit code.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/i2c/s5k6aa.c

index 57cd4fa0193d4e0b554ead5d22be85d415007903..bdf5e3db31d19853b53b9ba5bee14a8eda46f334 100644 (file)
@@ -1598,7 +1598,7 @@ static int s5k6aa_probe(struct i2c_client *client,
        for (i = 0; i < S5K6AA_NUM_SUPPLIES; i++)
                s5k6aa->supplies[i].supply = s5k6aa_supply_names[i];
 
-       ret = regulator_bulk_get(&client->dev, S5K6AA_NUM_SUPPLIES,
+       ret = devm_regulator_bulk_get(&client->dev, S5K6AA_NUM_SUPPLIES,
                                 s5k6aa->supplies);
        if (ret) {
                dev_err(&client->dev, "Failed to get regulators\n");
@@ -1607,7 +1607,7 @@ static int s5k6aa_probe(struct i2c_client *client,
 
        ret = s5k6aa_initialize_ctrls(s5k6aa);
        if (ret)
-               goto out_err4;
+               goto out_err3;
 
        s5k6aa_presets_data_init(s5k6aa);
 
@@ -1618,8 +1618,6 @@ static int s5k6aa_probe(struct i2c_client *client,
 
        return 0;
 
-out_err4:
-       regulator_bulk_free(S5K6AA_NUM_SUPPLIES, s5k6aa->supplies);
 out_err3:
        s5k6aa_free_gpios(s5k6aa);
 out_err2:
@@ -1635,7 +1633,6 @@ static int s5k6aa_remove(struct i2c_client *client)
        v4l2_device_unregister_subdev(sd);
        v4l2_ctrl_handler_free(sd->ctrl_handler);
        media_entity_cleanup(&sd->entity);
-       regulator_bulk_free(S5K6AA_NUM_SUPPLIES, s5k6aa->supplies);
        s5k6aa_free_gpios(s5k6aa);
 
        return 0;