summaryrefslogtreecommitdiff
path: root/drivers/rtc/rtc-fm3130.c
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2013-04-29 16:20:41 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-29 18:28:37 -0700
commitc54a52e3a842c63adf724f1d457933a1ce1dc007 (patch)
tree0d76b0c5500c5c075e608080fba727e201f9c642 /drivers/rtc/rtc-fm3130.c
parent2a444cf77cb584485aea4f1ee5538a5dee705e99 (diff)
downloadlwn-c54a52e3a842c63adf724f1d457933a1ce1dc007.tar.gz
lwn-c54a52e3a842c63adf724f1d457933a1ce1dc007.zip
rtc: rtc-fm3130: use devm_*() functions
Use devm_*() functions to make cleanup paths simpler. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rtc/rtc-fm3130.c')
-rw-r--r--drivers/rtc/rtc-fm3130.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/rtc/rtc-fm3130.c b/drivers/rtc/rtc-fm3130.c
index 4d4ad3fcb5e9..2835fb6c1965 100644
--- a/drivers/rtc/rtc-fm3130.c
+++ b/drivers/rtc/rtc-fm3130.c
@@ -358,7 +358,7 @@ static int fm3130_probe(struct i2c_client *client,
I2C_FUNC_I2C | I2C_FUNC_SMBUS_WRITE_BYTE_DATA))
return -EIO;
- fm3130 = kzalloc(sizeof(struct fm3130), GFP_KERNEL);
+ fm3130 = devm_kzalloc(&client->dev, sizeof(struct fm3130), GFP_KERNEL);
if (!fm3130)
return -ENOMEM;
@@ -507,7 +507,7 @@ bad_clock:
/* We won't bail out here because we just got invalid data.
Time setting from u-boot doesn't work anyway */
- fm3130->rtc = rtc_device_register(client->name, &client->dev,
+ fm3130->rtc = devm_rtc_device_register(&client->dev, client->name,
&fm3130_rtc_ops, THIS_MODULE);
if (IS_ERR(fm3130->rtc)) {
err = PTR_ERR(fm3130->rtc);
@@ -517,16 +517,11 @@ bad_clock:
}
return 0;
exit_free:
- kfree(fm3130);
return err;
}
static int fm3130_remove(struct i2c_client *client)
{
- struct fm3130 *fm3130 = i2c_get_clientdata(client);
-
- rtc_device_unregister(fm3130->rtc);
- kfree(fm3130);
return 0;
}