diff options
Diffstat (limited to 'drivers/rtc/rtc-v3020.c')
| -rw-r--r-- | drivers/rtc/rtc-v3020.c | 13 | 
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/rtc/rtc-v3020.c b/drivers/rtc/rtc-v3020.c index bca5d677bc8..6e0cba8f47d 100644 --- a/drivers/rtc/rtc-v3020.c +++ b/drivers/rtc/rtc-v3020.c @@ -309,7 +309,7 @@ static int rtc_probe(struct platform_device *pdev)  	int i;  	int temp; -	chip = kzalloc(sizeof *chip, GFP_KERNEL); +	chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL);  	if (!chip)  		return -ENOMEM; @@ -353,8 +353,8 @@ static int rtc_probe(struct platform_device *pdev)  	platform_set_drvdata(pdev, chip); -	chip->rtc = rtc_device_register("v3020", -				&pdev->dev, &v3020_rtc_ops, THIS_MODULE); +	chip->rtc = devm_rtc_device_register(&pdev->dev, "v3020", +					&v3020_rtc_ops, THIS_MODULE);  	if (IS_ERR(chip->rtc)) {  		retval = PTR_ERR(chip->rtc);  		goto err_io; @@ -365,21 +365,14 @@ static int rtc_probe(struct platform_device *pdev)  err_io:  	chip->ops->unmap_io(chip);  err_chip: -	kfree(chip); -  	return retval;  }  static int rtc_remove(struct platform_device *dev)  {  	struct v3020 *chip = platform_get_drvdata(dev); -	struct rtc_device *rtc = chip->rtc; - -	if (rtc) -		rtc_device_unregister(rtc);  	chip->ops->unmap_io(chip); -	kfree(chip);  	return 0;  }  |