diff options
| author | Sachin Kamat <sachin.kamat@linaro.org> | 2013-04-29 16:20:32 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 18:28:36 -0700 | 
| commit | 4f58cd9b4663ac52c8b019e78b0f4eae37da297e (patch) | |
| tree | 26458cf90c6d75989d2d6e4fa7a71422d219b3f8 /drivers/rtc | |
| parent | 66714612783525bf3fd389f886822d89d1be2cbf (diff) | |
| download | olio-linux-3.10-4f58cd9b4663ac52c8b019e78b0f4eae37da297e.tar.xz olio-linux-3.10-4f58cd9b4663ac52c8b019e78b0f4eae37da297e.zip  | |
drivers/rtc/rtc-m48t35.c: use devm_* APIs
devm_* functions are device managed and make cleanup code simpler.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: 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')
| -rw-r--r-- | drivers/rtc/rtc-m48t35.c | 42 | 
1 files changed, 10 insertions, 32 deletions
diff --git a/drivers/rtc/rtc-m48t35.c b/drivers/rtc/rtc-m48t35.c index 31c9190a1fc..37444246e5e 100644 --- a/drivers/rtc/rtc-m48t35.c +++ b/drivers/rtc/rtc-m48t35.c @@ -145,12 +145,11 @@ static int m48t35_probe(struct platform_device *pdev)  {  	struct resource *res;  	struct m48t35_priv *priv; -	int ret = 0;  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);  	if (!res)  		return -ENODEV; -	priv = kzalloc(sizeof(struct m48t35_priv), GFP_KERNEL); +	priv = devm_kzalloc(&pdev->dev, sizeof(struct m48t35_priv), GFP_KERNEL);  	if (!priv)  		return -ENOMEM; @@ -160,50 +159,29 @@ static int m48t35_probe(struct platform_device *pdev)  	 * conflicts are resolved  	 */  #ifndef CONFIG_SGI_IP27 -	if (!request_mem_region(res->start, priv->size, pdev->name)) { -		ret = -EBUSY; -		goto out; -	} +	if (!devm_request_mem_region(&pdev->dev, res->start, priv->size, +				     pdev->name)) +		return -EBUSY;  #endif  	priv->baseaddr = res->start; -	priv->reg = ioremap(priv->baseaddr, priv->size); -	if (!priv->reg) { -		ret = -ENOMEM; -		goto out; -	} +	priv->reg = devm_ioremap(&pdev->dev, priv->baseaddr, priv->size); +	if (!priv->reg) +		return -ENOMEM;  	spin_lock_init(&priv->lock);  	platform_set_drvdata(pdev, priv); -	priv->rtc = rtc_device_register("m48t35", &pdev->dev, +	priv->rtc = devm_rtc_device_register(&pdev->dev, "m48t35",  				  &m48t35_ops, THIS_MODULE); -	if (IS_ERR(priv->rtc)) { -		ret = PTR_ERR(priv->rtc); -		goto out; -	} +	if (IS_ERR(priv->rtc)) +		return PTR_ERR(priv->rtc);  	return 0; - -out: -	if (priv->reg) -		iounmap(priv->reg); -	if (priv->baseaddr) -		release_mem_region(priv->baseaddr, priv->size); -	kfree(priv); -	return ret;  }  static int m48t35_remove(struct platform_device *pdev)  { -	struct m48t35_priv *priv = platform_get_drvdata(pdev); - -	rtc_device_unregister(priv->rtc); -	iounmap(priv->reg); -#ifndef CONFIG_SGI_IP27 -	release_mem_region(priv->baseaddr, priv->size); -#endif -	kfree(priv);  	return 0;  }  |