diff options
Diffstat (limited to 'drivers/rtc/rtc-m41t80.c')
| -rw-r--r-- | drivers/rtc/rtc-m41t80.c | 16 | 
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/rtc/rtc-m41t80.c b/drivers/rtc/rtc-m41t80.c index b885bcd0890..89674b5e6ef 100644 --- a/drivers/rtc/rtc-m41t80.c +++ b/drivers/rtc/rtc-m41t80.c @@ -637,7 +637,8 @@ static int m41t80_probe(struct i2c_client *client,  	dev_info(&client->dev,  		 "chip found, driver version " DRV_VERSION "\n"); -	clientdata = kzalloc(sizeof(*clientdata), GFP_KERNEL); +	clientdata = devm_kzalloc(&client->dev, sizeof(*clientdata), +				GFP_KERNEL);  	if (!clientdata) {  		rc = -ENOMEM;  		goto exit; @@ -646,8 +647,8 @@ static int m41t80_probe(struct i2c_client *client,  	clientdata->features = id->driver_data;  	i2c_set_clientdata(client, clientdata); -	rtc = rtc_device_register(client->name, &client->dev, -				  &m41t80_rtc_ops, THIS_MODULE); +	rtc = devm_rtc_device_register(&client->dev, client->name, +					&m41t80_rtc_ops, THIS_MODULE);  	if (IS_ERR(rtc)) {  		rc = PTR_ERR(rtc);  		rtc = NULL; @@ -718,26 +719,19 @@ ht_err:  	goto exit;  exit: -	if (rtc) -		rtc_device_unregister(rtc); -	kfree(clientdata);  	return rc;  }  static int m41t80_remove(struct i2c_client *client)  { +#ifdef CONFIG_RTC_DRV_M41T80_WDT  	struct m41t80_data *clientdata = i2c_get_clientdata(client); -	struct rtc_device *rtc = clientdata->rtc; -#ifdef CONFIG_RTC_DRV_M41T80_WDT  	if (clientdata->features & M41T80_FEATURE_HT) {  		misc_deregister(&wdt_dev);  		unregister_reboot_notifier(&wdt_notifier);  	}  #endif -	if (rtc) -		rtc_device_unregister(rtc); -	kfree(clientdata);  	return 0;  }  |