linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get()
@ 2013-02-21  8:32 Jingoo Han
  2013-02-21  8:33 ` [PATCH 02/12] rtc: rtc-tps6586x: use devm_request_threaded_irq() Jingoo Han
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:32 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-imxdi.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-imxdi.c b/drivers/rtc/rtc-imxdi.c
index 75d307a..82aad69 100644
--- a/drivers/rtc/rtc-imxdi.c
+++ b/drivers/rtc/rtc-imxdi.c
@@ -406,7 +406,7 @@ static int dryice_rtc_probe(struct platform_device *pdev)
 
 	mutex_init(&imxdi->write_mutex);
 
-	imxdi->clk = clk_get(&pdev->dev, NULL);
+	imxdi->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(imxdi->clk))
 		return PTR_ERR(imxdi->clk);
 	clk_prepare_enable(imxdi->clk);
@@ -475,7 +475,6 @@ static int dryice_rtc_probe(struct platform_device *pdev)
 
 err:
 	clk_disable_unprepare(imxdi->clk);
-	clk_put(imxdi->clk);
 
 	return rc;
 }
@@ -492,7 +491,6 @@ static int dryice_rtc_remove(struct platform_device *pdev)
 	rtc_device_unregister(imxdi->rtc);
 
 	clk_disable_unprepare(imxdi->clk);
-	clk_put(imxdi->clk);
 
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 02/12] rtc: rtc-tps6586x: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
@ 2013-02-21  8:33 ` Jingoo Han
  2013-02-21  8:33 ` [PATCH 03/12] rtc: rtc-vt8500: use devm_*() functions Jingoo Han
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:33 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-tps6586x.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-tps6586x.c b/drivers/rtc/rtc-tps6586x.c
index 70f61b8..aab4e8c 100644
--- a/drivers/rtc/rtc-tps6586x.c
+++ b/drivers/rtc/rtc-tps6586x.c
@@ -282,7 +282,8 @@ static int tps6586x_rtc_probe(struct platform_device *pdev)
 		goto fail_rtc_register;
 	}
 
-	ret = request_threaded_irq(rtc->irq, NULL, tps6586x_rtc_irq,
+	ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
+				tps6586x_rtc_irq,
 				IRQF_ONESHOT | IRQF_EARLY_RESUME,
 				dev_name(&pdev->dev), rtc);
 	if (ret < 0) {
@@ -311,7 +312,6 @@ static int tps6586x_rtc_remove(struct platform_device *pdev)
 	tps6586x_update(tps_dev, RTC_CTRL, 0,
 		RTC_ENABLE | OSC_SRC_SEL | PRE_BYPASS | CL_SEL_MASK);
 	rtc_device_unregister(rtc->rtc);
-	free_irq(rtc->irq, rtc);
 	return 0;
 }
 
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 03/12] rtc: rtc-vt8500: use devm_*() functions
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
  2013-02-21  8:33 ` [PATCH 02/12] rtc: rtc-tps6586x: use devm_request_threaded_irq() Jingoo Han
@ 2013-02-21  8:33 ` Jingoo Han
  2013-02-21  8:34 ` [PATCH 04/12] rtc: rtc-coh901331: use devm_clk_get() Jingoo Han
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:33 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_*() functions to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-vt8500.c |   28 ++++++++++------------------
 1 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/rtc/rtc-vt8500.c b/drivers/rtc/rtc-vt8500.c
index 2730533..a000bc0 100644
--- a/drivers/rtc/rtc-vt8500.c
+++ b/drivers/rtc/rtc-vt8500.c
@@ -231,20 +231,21 @@ static int vt8500_rtc_probe(struct platform_device *pdev)
 		return -ENXIO;
 	}
 
-	vt8500_rtc->res = request_mem_region(vt8500_rtc->res->start,
-					     resource_size(vt8500_rtc->res),
-					     "vt8500-rtc");
+	vt8500_rtc->res = devm_request_mem_region(&pdev->dev,
+					vt8500_rtc->res->start,
+					resource_size(vt8500_rtc->res),
+					"vt8500-rtc");
 	if (vt8500_rtc->res == NULL) {
 		dev_err(&pdev->dev, "failed to request I/O memory\n");
 		return -EBUSY;
 	}
 
-	vt8500_rtc->regbase = ioremap(vt8500_rtc->res->start,
+	vt8500_rtc->regbase = devm_ioremap(&pdev->dev, vt8500_rtc->res->start,
 				      resource_size(vt8500_rtc->res));
 	if (!vt8500_rtc->regbase) {
 		dev_err(&pdev->dev, "Unable to map RTC I/O memory\n");
 		ret = -EBUSY;
-		goto err_release;
+		goto err_return;
 	}
 
 	/* Enable RTC and set it to 24-hour mode */
@@ -257,11 +258,11 @@ static int vt8500_rtc_probe(struct platform_device *pdev)
 		ret = PTR_ERR(vt8500_rtc->rtc);
 		dev_err(&pdev->dev,
 			"Failed to register RTC device -> %d\n", ret);
-		goto err_unmap;
+		goto err_return;
 	}
 
-	ret = request_irq(vt8500_rtc->irq_alarm, vt8500_rtc_irq, 0,
-			  "rtc alarm", vt8500_rtc);
+	ret = devm_request_irq(&pdev->dev, vt8500_rtc->irq_alarm,
+				vt8500_rtc_irq, 0, "rtc alarm", vt8500_rtc);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "can't get irq %i, err %d\n",
 			vt8500_rtc->irq_alarm, ret);
@@ -272,11 +273,7 @@ static int vt8500_rtc_probe(struct platform_device *pdev)
 
 err_unreg:
 	rtc_device_unregister(vt8500_rtc->rtc);
-err_unmap:
-	iounmap(vt8500_rtc->regbase);
-err_release:
-	release_mem_region(vt8500_rtc->res->start,
-			   resource_size(vt8500_rtc->res));
+err_return:
 	return ret;
 }
 
@@ -284,15 +281,10 @@ static int vt8500_rtc_remove(struct platform_device *pdev)
 {
 	struct vt8500_rtc *vt8500_rtc = platform_get_drvdata(pdev);
 
-	free_irq(vt8500_rtc->irq_alarm, vt8500_rtc);
-
 	rtc_device_unregister(vt8500_rtc->rtc);
 
 	/* Disable alarm matching */
 	writel(0, vt8500_rtc->regbase + VT8500_RTC_IS);
-	iounmap(vt8500_rtc->regbase);
-	release_mem_region(vt8500_rtc->res->start,
-			   resource_size(vt8500_rtc->res));
 
 	platform_set_drvdata(pdev, NULL);
 
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 04/12] rtc: rtc-coh901331: use devm_clk_get()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
  2013-02-21  8:33 ` [PATCH 02/12] rtc: rtc-tps6586x: use devm_request_threaded_irq() Jingoo Han
  2013-02-21  8:33 ` [PATCH 03/12] rtc: rtc-vt8500: use devm_*() functions Jingoo Han
@ 2013-02-21  8:34 ` Jingoo Han
  2013-02-21  8:34 ` [PATCH 05/12] rtc: rtc-lp8788: use devm_request_threaded_irq() Jingoo Han
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:34 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-coh901331.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/rtc/rtc-coh901331.c b/drivers/rtc/rtc-coh901331.c
index c8115b8..2d28ec1a 100644
--- a/drivers/rtc/rtc-coh901331.c
+++ b/drivers/rtc/rtc-coh901331.c
@@ -157,7 +157,6 @@ static int __exit coh901331_remove(struct platform_device *pdev)
 	if (rtap) {
 		rtc_device_unregister(rtap->rtc);
 		clk_unprepare(rtap->clk);
-		clk_put(rtap->clk);
 		platform_set_drvdata(pdev, NULL);
 	}
 
@@ -196,7 +195,7 @@ static int __init coh901331_probe(struct platform_device *pdev)
 			     "RTC COH 901 331 Alarm", rtap))
 		return -EIO;
 
-	rtap->clk = clk_get(&pdev->dev, NULL);
+	rtap->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(rtap->clk)) {
 		ret = PTR_ERR(rtap->clk);
 		dev_err(&pdev->dev, "could not get clock\n");
@@ -207,7 +206,7 @@ static int __init coh901331_probe(struct platform_device *pdev)
 	ret = clk_prepare_enable(rtap->clk);
 	if (ret) {
 		dev_err(&pdev->dev, "could not enable clock\n");
-		goto out_no_clk_prepenable;
+		return ret;
 	}
 	clk_disable(rtap->clk);
 
@@ -224,8 +223,6 @@ static int __init coh901331_probe(struct platform_device *pdev)
  out_no_rtc:
 	platform_set_drvdata(pdev, NULL);
 	clk_unprepare(rtap->clk);
- out_no_clk_prepenable:
-	clk_put(rtap->clk);
 	return ret;
 }
 
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 05/12] rtc: rtc-lp8788: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (2 preceding siblings ...)
  2013-02-21  8:34 ` [PATCH 04/12] rtc: rtc-coh901331: use devm_clk_get() Jingoo Han
@ 2013-02-21  8:34 ` Jingoo Han
  2013-02-21  8:35 ` [PATCH 06/12] rtc: rtc-tps80031: " Jingoo Han
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:34 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-lp8788.c |   10 ++--------
 1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/rtc/rtc-lp8788.c b/drivers/rtc/rtc-lp8788.c
index 4a4e78e..9a46312 100644
--- a/drivers/rtc/rtc-lp8788.c
+++ b/drivers/rtc/rtc-lp8788.c
@@ -278,16 +278,11 @@ static int lp8788_alarm_irq_register(struct platform_device *pdev,
 
 	rtc->irq = irq_create_mapping(irqdm, irq);
 
-	return request_threaded_irq(rtc->irq, NULL, lp8788_alarm_irq_handler,
+	return devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
+				lp8788_alarm_irq_handler,
 				0, LP8788_ALM_IRQ, rtc);
 }
 
-static void lp8788_alarm_irq_unregister(struct lp8788_rtc *rtc)
-{
-	if (rtc->irq)
-		free_irq(rtc->irq, rtc);
-}
-
 static int lp8788_rtc_probe(struct platform_device *pdev)
 {
 	struct lp8788 *lp = dev_get_drvdata(pdev->dev.parent);
@@ -321,7 +316,6 @@ static int lp8788_rtc_remove(struct platform_device *pdev)
 {
 	struct lp8788_rtc *rtc = platform_get_drvdata(pdev);
 
-	lp8788_alarm_irq_unregister(rtc);
 	rtc_device_unregister(rtc->rdev);
 	platform_set_drvdata(pdev, NULL);
 
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 06/12] rtc: rtc-tps80031: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (3 preceding siblings ...)
  2013-02-21  8:34 ` [PATCH 05/12] rtc: rtc-lp8788: use devm_request_threaded_irq() Jingoo Han
@ 2013-02-21  8:35 ` Jingoo Han
  2013-02-21  8:35 ` [PATCH 07/12] rtc: rtc-wm831x: " Jingoo Han
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:35 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-tps80031.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-tps80031.c b/drivers/rtc/rtc-tps80031.c
index 9740641..9aaf8aa 100644
--- a/drivers/rtc/rtc-tps80031.c
+++ b/drivers/rtc/rtc-tps80031.c
@@ -285,7 +285,8 @@ static int tps80031_rtc_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	ret = request_threaded_irq(rtc->irq, NULL, tps80031_rtc_irq,
+	ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
+			tps80031_rtc_irq,
 			IRQF_ONESHOT | IRQF_EARLY_RESUME,
 			dev_name(&pdev->dev), rtc);
 	if (ret < 0) {
@@ -302,7 +303,6 @@ static int tps80031_rtc_remove(struct platform_device *pdev)
 {
 	struct tps80031_rtc *rtc = platform_get_drvdata(pdev);
 
-	free_irq(rtc->irq, rtc);
 	rtc_device_unregister(rtc->rtc);
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 07/12] rtc: rtc-wm831x: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (4 preceding siblings ...)
  2013-02-21  8:35 ` [PATCH 06/12] rtc: rtc-tps80031: " Jingoo Han
@ 2013-02-21  8:35 ` Jingoo Han
  2013-02-21  8:36 ` [PATCH 08/12] rtc: rtc-da9052: " Jingoo Han
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:35 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-wm831x.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/rtc/rtc-wm831x.c b/drivers/rtc/rtc-wm831x.c
index 1b0affb..2f0ac7b 100644
--- a/drivers/rtc/rtc-wm831x.c
+++ b/drivers/rtc/rtc-wm831x.c
@@ -443,9 +443,10 @@ static int wm831x_rtc_probe(struct platform_device *pdev)
 		goto err;
 	}
 
-	ret = request_threaded_irq(alm_irq, NULL, wm831x_alm_irq,
-				   IRQF_TRIGGER_RISING, "RTC alarm",
-				   wm831x_rtc);
+	ret = devm_request_threaded_irq(&pdev->dev, alm_irq, NULL,
+				wm831x_alm_irq,
+				IRQF_TRIGGER_RISING, "RTC alarm",
+				wm831x_rtc);
 	if (ret != 0) {
 		dev_err(&pdev->dev, "Failed to request alarm IRQ %d: %d\n",
 			alm_irq, ret);
@@ -462,9 +463,7 @@ err:
 static int wm831x_rtc_remove(struct platform_device *pdev)
 {
 	struct wm831x_rtc *wm831x_rtc = platform_get_drvdata(pdev);
-	int alm_irq = platform_get_irq_byname(pdev, "ALM");
 
-	free_irq(alm_irq, wm831x_rtc);
 	rtc_device_unregister(wm831x_rtc->rtc);
 
 	return 0;
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 08/12] rtc: rtc-da9052: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (5 preceding siblings ...)
  2013-02-21  8:35 ` [PATCH 07/12] rtc: rtc-wm831x: " Jingoo Han
@ 2013-02-21  8:36 ` Jingoo Han
  2013-02-21  8:36 ` [PATCH 09/12] rtc: rtc-palmas: " Jingoo Han
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:36 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-da9052.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/rtc/rtc-da9052.c b/drivers/rtc/rtc-da9052.c
index 60b826e..0dde688 100644
--- a/drivers/rtc/rtc-da9052.c
+++ b/drivers/rtc/rtc-da9052.c
@@ -240,9 +240,10 @@ static int da9052_rtc_probe(struct platform_device *pdev)
 	rtc->da9052 = dev_get_drvdata(pdev->dev.parent);
 	platform_set_drvdata(pdev, rtc);
 	rtc->irq = platform_get_irq_byname(pdev, "ALM");
-	ret = request_threaded_irq(rtc->irq, NULL, da9052_rtc_irq,
-				   IRQF_TRIGGER_LOW | IRQF_ONESHOT,
-				   "ALM", rtc);
+	ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
+				da9052_rtc_irq,
+				IRQF_TRIGGER_LOW | IRQF_ONESHOT,
+				"ALM", rtc);
 	if (ret != 0) {
 		rtc_err(rtc->da9052, "irq registration failed: %d\n", ret);
 		return ret;
@@ -250,16 +251,10 @@ static int da9052_rtc_probe(struct platform_device *pdev)
 
 	rtc->rtc = rtc_device_register(pdev->name, &pdev->dev,
 				       &da9052_rtc_ops, THIS_MODULE);
-	if (IS_ERR(rtc->rtc)) {
-		ret = PTR_ERR(rtc->rtc);
-		goto err_free_irq;
-	}
+	if (IS_ERR(rtc->rtc))
+		return PTR_ERR(rtc->rtc);
 
 	return 0;
-
-err_free_irq:
-	free_irq(rtc->irq, rtc);
-	return ret;
 }
 
 static int da9052_rtc_remove(struct platform_device *pdev)
@@ -267,7 +262,6 @@ static int da9052_rtc_remove(struct platform_device *pdev)
 	struct da9052_rtc *rtc = pdev->dev.platform_data;
 
 	rtc_device_unregister(rtc->rtc);
-	free_irq(rtc->irq, rtc);
 	platform_set_drvdata(pdev, NULL);
 
 	return 0;
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 09/12] rtc: rtc-palmas: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (6 preceding siblings ...)
  2013-02-21  8:36 ` [PATCH 08/12] rtc: rtc-da9052: " Jingoo Han
@ 2013-02-21  8:36 ` Jingoo Han
  2013-02-21  8:37 ` [PATCH 10/12] rtc: rtc-max8907: " Jingoo Han
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:36 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-palmas.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-palmas.c b/drivers/rtc/rtc-palmas.c
index 59c4298..df9359c 100644
--- a/drivers/rtc/rtc-palmas.c
+++ b/drivers/rtc/rtc-palmas.c
@@ -272,7 +272,7 @@ static int palmas_rtc_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	ret = request_threaded_irq(palmas_rtc->irq, NULL,
+	ret = devm_request_threaded_irq(&pdev->dev, palmas_rtc->irq, NULL,
 			palmas_rtc_interrupt,
 			IRQF_TRIGGER_LOW | IRQF_ONESHOT |
 			IRQF_EARLY_RESUME,
@@ -292,7 +292,6 @@ static int palmas_rtc_remove(struct platform_device *pdev)
 	struct palmas_rtc *palmas_rtc = platform_get_drvdata(pdev);
 
 	palmas_rtc_alarm_irq_enable(&pdev->dev, 0);
-	free_irq(palmas_rtc->irq, palmas_rtc);
 	rtc_device_unregister(palmas_rtc->rtc);
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 10/12] rtc: rtc-max8907: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (7 preceding siblings ...)
  2013-02-21  8:36 ` [PATCH 09/12] rtc: rtc-palmas: " Jingoo Han
@ 2013-02-21  8:37 ` Jingoo Han
  2013-02-21  8:37 ` [PATCH 11/12] rtc: rtc-max8997: " Jingoo Han
  2013-02-21  8:38 ` [PATCH 12/12] rtc: rtc-davinci: use devm_*() functions Jingoo Han
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:37 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-max8907.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-max8907.c b/drivers/rtc/rtc-max8907.c
index 1d049da..31ca8fa 100644
--- a/drivers/rtc/rtc-max8907.c
+++ b/drivers/rtc/rtc-max8907.c
@@ -205,8 +205,9 @@ static int max8907_rtc_probe(struct platform_device *pdev)
 		goto err_unregister;
 	}
 
-	ret = request_threaded_irq(rtc->irq, NULL, max8907_irq_handler,
-				   IRQF_ONESHOT, "max8907-alarm0", rtc);
+	ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
+				max8907_irq_handler,
+				IRQF_ONESHOT, "max8907-alarm0", rtc);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to request IRQ%d: %d\n",
 			rtc->irq, ret);
@@ -224,7 +225,6 @@ static int max8907_rtc_remove(struct platform_device *pdev)
 {
 	struct max8907_rtc *rtc = platform_get_drvdata(pdev);
 
-	free_irq(rtc->irq, rtc);
 	rtc_device_unregister(rtc->rtc_dev);
 
 	return 0;
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 11/12] rtc: rtc-max8997: use devm_request_threaded_irq()
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (8 preceding siblings ...)
  2013-02-21  8:37 ` [PATCH 10/12] rtc: rtc-max8907: " Jingoo Han
@ 2013-02-21  8:37 ` Jingoo Han
  2013-02-21  8:38 ` [PATCH 12/12] rtc: rtc-davinci: use devm_*() functions Jingoo Han
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:37 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_request_threaded_irq() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-max8997.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/rtc/rtc-max8997.c b/drivers/rtc/rtc-max8997.c
index a4e7079..00e505b 100644
--- a/drivers/rtc/rtc-max8997.c
+++ b/drivers/rtc/rtc-max8997.c
@@ -495,7 +495,8 @@ static int max8997_rtc_probe(struct platform_device *pdev)
 	}
 	info->virq = virq;
 
-	ret = request_threaded_irq(virq, NULL, max8997_rtc_alarm_irq, 0,
+	ret = devm_request_threaded_irq(&pdev->dev, virq, NULL,
+				max8997_rtc_alarm_irq, 0,
 				"rtc-alarm0", info);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to request alarm IRQ: %d: %d\n",
@@ -514,10 +515,8 @@ static int max8997_rtc_remove(struct platform_device *pdev)
 {
 	struct max8997_rtc_info *info = platform_get_drvdata(pdev);
 
-	if (info) {
-		free_irq(info->virq, info);
+	if (info)
 		rtc_device_unregister(info->rtc_dev);
-	}
 
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 12/12] rtc: rtc-davinci: use devm_*() functions
  2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
                   ` (9 preceding siblings ...)
  2013-02-21  8:37 ` [PATCH 11/12] rtc: rtc-max8997: " Jingoo Han
@ 2013-02-21  8:38 ` Jingoo Han
  10 siblings, 0 replies; 12+ messages in thread
From: Jingoo Han @ 2013-02-21  8:38 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: linux-kernel, 'Alessandro Zummo',
	rtc-linux, 'Jingoo Han'

Use devm_*() functions to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/rtc/rtc-davinci.c |   28 ++++++++++------------------
 1 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c
index 5f7982f..56b7308 100644
--- a/drivers/rtc/rtc-davinci.c
+++ b/drivers/rtc/rtc-davinci.c
@@ -506,19 +506,19 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
 	davinci_rtc->pbase = res->start;
 	davinci_rtc->base_size = resource_size(res);
 
-	mem = request_mem_region(davinci_rtc->pbase, davinci_rtc->base_size,
-				 pdev->name);
+	mem = devm_request_mem_region(dev, davinci_rtc->pbase,
+				davinci_rtc->base_size, pdev->name);
 	if (!mem) {
 		dev_err(dev, "RTC registers at %08x are not free\n",
 			davinci_rtc->pbase);
 		return -EBUSY;
 	}
 
-	davinci_rtc->base = ioremap(davinci_rtc->pbase, davinci_rtc->base_size);
+	davinci_rtc->base = devm_ioremap(dev, davinci_rtc->pbase,
+					davinci_rtc->base_size);
 	if (!davinci_rtc->base) {
 		dev_err(dev, "unable to ioremap MEM resource\n");
-		ret = -ENOMEM;
-		goto fail2;
+		return -ENOMEM;
 	}
 
 	platform_set_drvdata(pdev, davinci_rtc);
@@ -529,7 +529,7 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
 		ret = PTR_ERR(davinci_rtc->rtc);
 		dev_err(dev, "unable to register RTC device, err %d\n",
 				ret);
-		goto fail3;
+		goto fail1;
 	}
 
 	rtcif_write(davinci_rtc, PRTCIF_INTFLG_RTCSS, PRTCIF_INTFLG);
@@ -539,11 +539,11 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
 	rtcss_write(davinci_rtc, 0, PRTCSS_RTC_CTRL);
 	rtcss_write(davinci_rtc, 0, PRTCSS_RTC_CCTRL);
 
-	ret = request_irq(davinci_rtc->irq, davinci_rtc_interrupt,
+	ret = devm_request_irq(dev, davinci_rtc->irq, davinci_rtc_interrupt,
 			  0, "davinci_rtc", davinci_rtc);
 	if (ret < 0) {
 		dev_err(dev, "unable to register davinci RTC interrupt\n");
-		goto fail4;
+		goto fail2;
 	}
 
 	/* Enable interrupts */
@@ -557,13 +557,10 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
 
 	return 0;
 
-fail4:
+fail2:
 	rtc_device_unregister(davinci_rtc->rtc);
-fail3:
+fail1:
 	platform_set_drvdata(pdev, NULL);
-	iounmap(davinci_rtc->base);
-fail2:
-	release_mem_region(davinci_rtc->pbase, davinci_rtc->base_size);
 	return ret;
 }
 
@@ -575,13 +572,8 @@ static int davinci_rtc_remove(struct platform_device *pdev)
 
 	rtcif_write(davinci_rtc, 0, PRTCIF_INTEN);
 
-	free_irq(davinci_rtc->irq, davinci_rtc);
-
 	rtc_device_unregister(davinci_rtc->rtc);
 
-	iounmap(davinci_rtc->base);
-	release_mem_region(davinci_rtc->pbase, davinci_rtc->base_size);
-
 	platform_set_drvdata(pdev, NULL);
 
 	return 0;
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-02-21  8:38 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-21  8:32 [PATCH 01/12] rtc: rtc-imxdi: use devm_clk_get() Jingoo Han
2013-02-21  8:33 ` [PATCH 02/12] rtc: rtc-tps6586x: use devm_request_threaded_irq() Jingoo Han
2013-02-21  8:33 ` [PATCH 03/12] rtc: rtc-vt8500: use devm_*() functions Jingoo Han
2013-02-21  8:34 ` [PATCH 04/12] rtc: rtc-coh901331: use devm_clk_get() Jingoo Han
2013-02-21  8:34 ` [PATCH 05/12] rtc: rtc-lp8788: use devm_request_threaded_irq() Jingoo Han
2013-02-21  8:35 ` [PATCH 06/12] rtc: rtc-tps80031: " Jingoo Han
2013-02-21  8:35 ` [PATCH 07/12] rtc: rtc-wm831x: " Jingoo Han
2013-02-21  8:36 ` [PATCH 08/12] rtc: rtc-da9052: " Jingoo Han
2013-02-21  8:36 ` [PATCH 09/12] rtc: rtc-palmas: " Jingoo Han
2013-02-21  8:37 ` [PATCH 10/12] rtc: rtc-max8907: " Jingoo Han
2013-02-21  8:37 ` [PATCH 11/12] rtc: rtc-max8997: " Jingoo Han
2013-02-21  8:38 ` [PATCH 12/12] rtc: rtc-davinci: use devm_*() functions Jingoo Han

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).