From 9611b42887c8098caf81776813be233663e5ff23 Mon Sep 17 00:00:00 2001 From: Jingoo Han Date: Mon, 29 Apr 2013 16:20:36 -0700 Subject: [PATCH] --- yaml --- r: 365823 b: refs/heads/master c: 26c5f7d93adbe440bc7db95c1e4f1b1820e403a1 h: refs/heads/master i: 365821: 5f661ee8be83c4f4857cfc03ac3701a02ef526f2 365819: e24bfe896d1738e011aea2217510b57affe4565f 365815: 687add6cd4a163b0b5429d535f2e10a10e7cdc7b 365807: 4362cf4f273a065354fffeae7db546024a0d093e 365791: c7bef1e26ecdc6a8cfa12044ed5e3a3306774f86 365759: a9cb8d019deb8dedacb65bbd9556523e87b175fd 365695: 626697dd25f514176bfb31811d5efa880df638cd 365567: 55e7eb53ea9e706291ead5ae443d6e1e1dbeb99c v: v3 --- [refs] | 2 +- trunk/drivers/rtc/rtc-bq4802.c | 29 ++++++++--------------------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/[refs] b/[refs] index 9bd77d204808..448517772d34 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 87e7d520edba936fe6d1102e9fcc7530a478c07c +refs/heads/master: 26c5f7d93adbe440bc7db95c1e4f1b1820e403a1 diff --git a/trunk/drivers/rtc/rtc-bq4802.c b/trunk/drivers/rtc/rtc-bq4802.c index 693be71b5b18..af2886784a7b 100644 --- a/trunk/drivers/rtc/rtc-bq4802.c +++ b/trunk/drivers/rtc/rtc-bq4802.c @@ -142,7 +142,7 @@ static const struct rtc_class_ops bq4802_ops = { static int bq4802_probe(struct platform_device *pdev) { - struct bq4802 *p = kzalloc(sizeof(*p), GFP_KERNEL); + struct bq4802 *p = devm_kzalloc(&pdev->dev, sizeof(*p), GFP_KERNEL); int err = -ENOMEM; if (!p) @@ -155,54 +155,41 @@ static int bq4802_probe(struct platform_device *pdev) p->r = platform_get_resource(pdev, IORESOURCE_IO, 0); err = -EINVAL; if (!p->r) - goto out_free; + goto out; } if (p->r->flags & IORESOURCE_IO) { p->ioport = p->r->start; p->read = bq4802_read_io; p->write = bq4802_write_io; } else if (p->r->flags & IORESOURCE_MEM) { - p->regs = ioremap(p->r->start, resource_size(p->r)); + p->regs = devm_ioremap(&pdev->dev, p->r->start, + resource_size(p->r)); p->read = bq4802_read_mem; p->write = bq4802_write_mem; } else { err = -EINVAL; - goto out_free; + goto out; } platform_set_drvdata(pdev, p); - p->rtc = rtc_device_register("bq4802", &pdev->dev, - &bq4802_ops, THIS_MODULE); + p->rtc = devm_rtc_device_register(&pdev->dev, "bq4802", + &bq4802_ops, THIS_MODULE); if (IS_ERR(p->rtc)) { err = PTR_ERR(p->rtc); - goto out_iounmap; + goto out; } err = 0; out: return err; -out_iounmap: - if (p->r->flags & IORESOURCE_MEM) - iounmap(p->regs); -out_free: - kfree(p); - goto out; } static int bq4802_remove(struct platform_device *pdev) { - struct bq4802 *p = platform_get_drvdata(pdev); - - rtc_device_unregister(p->rtc); - if (p->r->flags & IORESOURCE_MEM) - iounmap(p->regs); - platform_set_drvdata(pdev, NULL); - kfree(p); - return 0; }