Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c40dcf6e authored by Jingoo Han's avatar Jingoo Han Committed by Linus Torvalds
Browse files

rtc: rtc-msm6242: 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 a379fd24
Loading
Loading
Loading
Loading
+11 −21
Original line number Diff line number Diff line
@@ -194,30 +194,28 @@ static const struct rtc_class_ops msm6242_rtc_ops = {
	.set_time	= msm6242_set_time,
};

static int __init msm6242_rtc_probe(struct platform_device *dev)
static int __init msm6242_rtc_probe(struct platform_device *pdev)
{
	struct resource *res;
	struct msm6242_priv *priv;
	struct rtc_device *rtc;
	int error;

	res = platform_get_resource(dev, IORESOURCE_MEM, 0);
	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	if (!res)
		return -ENODEV;

	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
	if (!priv)
		return -ENOMEM;

	priv->regs = ioremap(res->start, resource_size(res));
	if (!priv->regs) {
		error = -ENOMEM;
		goto out_free_priv;
	}
	platform_set_drvdata(dev, priv);
	priv->regs = devm_ioremap(&pdev->dev, res->start, resource_size(res));
	if (!priv->regs)
		return -ENOMEM;
	platform_set_drvdata(pdev, priv);

	rtc = rtc_device_register("rtc-msm6242", &dev->dev, &msm6242_rtc_ops,
				  THIS_MODULE);
	rtc = devm_rtc_device_register(&pdev->dev, "rtc-msm6242",
				&msm6242_rtc_ops, THIS_MODULE);
	if (IS_ERR(rtc)) {
		error = PTR_ERR(rtc);
		goto out_unmap;
@@ -227,20 +225,12 @@ static int __init msm6242_rtc_probe(struct platform_device *dev)
	return 0;

out_unmap:
	platform_set_drvdata(dev, NULL);
	iounmap(priv->regs);
out_free_priv:
	kfree(priv);
	platform_set_drvdata(pdev, NULL);
	return error;
}

static int __exit msm6242_rtc_remove(struct platform_device *dev)
static int __exit msm6242_rtc_remove(struct platform_device *pdev)
{
	struct msm6242_priv *priv = platform_get_drvdata(dev);

	rtc_device_unregister(priv->rtc);
	iounmap(priv->regs);
	kfree(priv);
	return 0;
}