Loading drivers/rtc/rtc-ds1286.c +9 −37 Original line number Diff line number Diff line Loading @@ -25,8 +25,6 @@ struct ds1286_priv { struct rtc_device *rtc; u32 __iomem *rtcregs; size_t size; unsigned long baseaddr; spinlock_t lock; }; Loading Loading @@ -333,56 +331,30 @@ static int ds1286_probe(struct platform_device *pdev) struct rtc_device *rtc; struct resource *res; struct ds1286_priv *priv; int ret = 0; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -ENODEV; priv = kzalloc(sizeof(struct ds1286_priv), GFP_KERNEL); priv = devm_kzalloc(&pdev->dev, sizeof(struct ds1286_priv), GFP_KERNEL); if (!priv) return -ENOMEM; priv->size = resource_size(res); if (!request_mem_region(res->start, priv->size, pdev->name)) { ret = -EBUSY; goto out; } priv->baseaddr = res->start; priv->rtcregs = ioremap(priv->baseaddr, priv->size); if (!priv->rtcregs) { ret = -ENOMEM; goto out; } priv->rtcregs = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv->rtcregs)) return PTR_ERR(priv->rtcregs); spin_lock_init(&priv->lock); platform_set_drvdata(pdev, priv); rtc = rtc_device_register("ds1286", &pdev->dev, &ds1286_ops, THIS_MODULE); if (IS_ERR(rtc)) { ret = PTR_ERR(rtc); goto out; } rtc = devm_rtc_device_register(&pdev->dev, "ds1286", &ds1286_ops, THIS_MODULE); if (IS_ERR(rtc)) return PTR_ERR(rtc); priv->rtc = rtc; return 0; out: if (priv->rtc) rtc_device_unregister(priv->rtc); if (priv->rtcregs) iounmap(priv->rtcregs); if (priv->baseaddr) release_mem_region(priv->baseaddr, priv->size); kfree(priv); return ret; } static int ds1286_remove(struct platform_device *pdev) { struct ds1286_priv *priv = platform_get_drvdata(pdev); rtc_device_unregister(priv->rtc); iounmap(priv->rtcregs); release_mem_region(priv->baseaddr, priv->size); kfree(priv); return 0; } Loading Loading
drivers/rtc/rtc-ds1286.c +9 −37 Original line number Diff line number Diff line Loading @@ -25,8 +25,6 @@ struct ds1286_priv { struct rtc_device *rtc; u32 __iomem *rtcregs; size_t size; unsigned long baseaddr; spinlock_t lock; }; Loading Loading @@ -333,56 +331,30 @@ static int ds1286_probe(struct platform_device *pdev) struct rtc_device *rtc; struct resource *res; struct ds1286_priv *priv; int ret = 0; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -ENODEV; priv = kzalloc(sizeof(struct ds1286_priv), GFP_KERNEL); priv = devm_kzalloc(&pdev->dev, sizeof(struct ds1286_priv), GFP_KERNEL); if (!priv) return -ENOMEM; priv->size = resource_size(res); if (!request_mem_region(res->start, priv->size, pdev->name)) { ret = -EBUSY; goto out; } priv->baseaddr = res->start; priv->rtcregs = ioremap(priv->baseaddr, priv->size); if (!priv->rtcregs) { ret = -ENOMEM; goto out; } priv->rtcregs = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv->rtcregs)) return PTR_ERR(priv->rtcregs); spin_lock_init(&priv->lock); platform_set_drvdata(pdev, priv); rtc = rtc_device_register("ds1286", &pdev->dev, &ds1286_ops, THIS_MODULE); if (IS_ERR(rtc)) { ret = PTR_ERR(rtc); goto out; } rtc = devm_rtc_device_register(&pdev->dev, "ds1286", &ds1286_ops, THIS_MODULE); if (IS_ERR(rtc)) return PTR_ERR(rtc); priv->rtc = rtc; return 0; out: if (priv->rtc) rtc_device_unregister(priv->rtc); if (priv->rtcregs) iounmap(priv->rtcregs); if (priv->baseaddr) release_mem_region(priv->baseaddr, priv->size); kfree(priv); return ret; } static int ds1286_remove(struct platform_device *pdev) { struct ds1286_priv *priv = platform_get_drvdata(pdev); rtc_device_unregister(priv->rtc); iounmap(priv->rtcregs); release_mem_region(priv->baseaddr, priv->size); kfree(priv); return 0; } Loading