Commit 0305794c authored by Paul Mundt's avatar Paul Mundt

rtc: rtc-sh: Fixup for 64-bit resources.

ioremap() and friends get the size information right, so force everything
to go through there.
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent ae8a5348
...@@ -616,7 +616,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev) ...@@ -616,7 +616,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
goto err_badres; goto err_badres;
} }
rtc->regbase = (void __iomem *)rtc->res->start; rtc->regbase = ioremap_nocache(rtc->res->start, rtc->regsize);
if (unlikely(!rtc->regbase)) { if (unlikely(!rtc->regbase)) {
ret = -EINVAL; ret = -EINVAL;
goto err_badmap; goto err_badmap;
...@@ -626,7 +626,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev) ...@@ -626,7 +626,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
&sh_rtc_ops, THIS_MODULE); &sh_rtc_ops, THIS_MODULE);
if (IS_ERR(rtc->rtc_dev)) { if (IS_ERR(rtc->rtc_dev)) {
ret = PTR_ERR(rtc->rtc_dev); ret = PTR_ERR(rtc->rtc_dev);
goto err_badmap; goto err_unmap;
} }
rtc->capabilities = RTC_DEF_CAPABILITIES; rtc->capabilities = RTC_DEF_CAPABILITIES;
...@@ -653,7 +653,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev) ...@@ -653,7 +653,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
dev_err(&pdev->dev, dev_err(&pdev->dev,
"request period IRQ failed with %d, IRQ %d\n", ret, "request period IRQ failed with %d, IRQ %d\n", ret,
rtc->periodic_irq); rtc->periodic_irq);
goto err_badmap; goto err_unmap;
} }
ret = request_irq(rtc->carry_irq, sh_rtc_interrupt, IRQF_DISABLED, ret = request_irq(rtc->carry_irq, sh_rtc_interrupt, IRQF_DISABLED,
...@@ -663,7 +663,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev) ...@@ -663,7 +663,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
"request carry IRQ failed with %d, IRQ %d\n", ret, "request carry IRQ failed with %d, IRQ %d\n", ret,
rtc->carry_irq); rtc->carry_irq);
free_irq(rtc->periodic_irq, rtc); free_irq(rtc->periodic_irq, rtc);
goto err_badmap; goto err_unmap;
} }
ret = request_irq(rtc->alarm_irq, sh_rtc_alarm, IRQF_DISABLED, ret = request_irq(rtc->alarm_irq, sh_rtc_alarm, IRQF_DISABLED,
...@@ -674,7 +674,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev) ...@@ -674,7 +674,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
rtc->alarm_irq); rtc->alarm_irq);
free_irq(rtc->carry_irq, rtc); free_irq(rtc->carry_irq, rtc);
free_irq(rtc->periodic_irq, rtc); free_irq(rtc->periodic_irq, rtc);
goto err_badmap; goto err_unmap;
} }
tmp = readb(rtc->regbase + RCR1); tmp = readb(rtc->regbase + RCR1);
...@@ -684,6 +684,8 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev) ...@@ -684,6 +684,8 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
return 0; return 0;
err_unmap:
iounmap(rtc->regbase);
err_badmap: err_badmap:
release_resource(rtc->res); release_resource(rtc->res);
err_badres: err_badres:
...@@ -708,6 +710,8 @@ static int __devexit sh_rtc_remove(struct platform_device *pdev) ...@@ -708,6 +710,8 @@ static int __devexit sh_rtc_remove(struct platform_device *pdev)
release_resource(rtc->res); release_resource(rtc->res);
iounmap(rtc->regbase);
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
kfree(rtc); kfree(rtc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment