Commit b4cd3d6a authored by Jingoo Han's avatar Jingoo Han Committed by Linus Torvalds

rtc: rtc-s35390a: use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b8a4b4e2
...@@ -338,7 +338,8 @@ static int s35390a_probe(struct i2c_client *client, ...@@ -338,7 +338,8 @@ static int s35390a_probe(struct i2c_client *client,
goto exit; goto exit;
} }
s35390a = kzalloc(sizeof(struct s35390a), GFP_KERNEL); s35390a = devm_kzalloc(&client->dev, sizeof(struct s35390a),
GFP_KERNEL);
if (!s35390a) { if (!s35390a) {
err = -ENOMEM; err = -ENOMEM;
goto exit; goto exit;
...@@ -386,8 +387,9 @@ static int s35390a_probe(struct i2c_client *client, ...@@ -386,8 +387,9 @@ static int s35390a_probe(struct i2c_client *client,
device_set_wakeup_capable(&client->dev, 1); device_set_wakeup_capable(&client->dev, 1);
s35390a->rtc = rtc_device_register(s35390a_driver.driver.name, s35390a->rtc = devm_rtc_device_register(&client->dev,
&client->dev, &s35390a_rtc_ops, THIS_MODULE); s35390a_driver.driver.name,
&s35390a_rtc_ops, THIS_MODULE);
if (IS_ERR(s35390a->rtc)) { if (IS_ERR(s35390a->rtc)) {
err = PTR_ERR(s35390a->rtc); err = PTR_ERR(s35390a->rtc);
...@@ -399,7 +401,6 @@ static int s35390a_probe(struct i2c_client *client, ...@@ -399,7 +401,6 @@ static int s35390a_probe(struct i2c_client *client,
for (i = 1; i < 8; ++i) for (i = 1; i < 8; ++i)
if (s35390a->client[i]) if (s35390a->client[i])
i2c_unregister_device(s35390a->client[i]); i2c_unregister_device(s35390a->client[i]);
kfree(s35390a);
exit: exit:
return err; return err;
...@@ -408,15 +409,12 @@ static int s35390a_probe(struct i2c_client *client, ...@@ -408,15 +409,12 @@ static int s35390a_probe(struct i2c_client *client,
static int s35390a_remove(struct i2c_client *client) static int s35390a_remove(struct i2c_client *client)
{ {
unsigned int i; unsigned int i;
struct s35390a *s35390a = i2c_get_clientdata(client); struct s35390a *s35390a = i2c_get_clientdata(client);
for (i = 1; i < 8; ++i) for (i = 1; i < 8; ++i)
if (s35390a->client[i]) if (s35390a->client[i])
i2c_unregister_device(s35390a->client[i]); i2c_unregister_device(s35390a->client[i]);
rtc_device_unregister(s35390a->rtc);
kfree(s35390a);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment