All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ming Lei <ming.lei@canonical.com>
To: will.deacon@arm.com
Cc: ming.lei@canonical.com, linux@arm.linux.org.uk, tony@atomide.com,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	khilman@deeprootsystems.com, paul@pwsan.com
Subject: Re: [PATCH v5 2/7] arm: pmu: allow platform specific irq enable/disable handling
Date: Tue, 1 Nov 2011 11:26:46 +0800	[thread overview]
Message-ID: <20111101112646.75fba9db@tom-ThinkPad-T410> (raw)
In-Reply-To: <1319467559-5518-3-git-send-email-ming.lei@canonical.com>


Hi,

Attach the patch [PATCH v5 2/7] which is rebased on 3.1 -next.

BTW: The [PATCH v5 3/7] should be dropped as commented before, other patches
are OK against 3.1 -next.

thanks,
--
Ming Lei

--
>From 6125bef1aeee84ef22efdf743077f27f5274b6da Mon Sep 17 00:00:00 2001
From: Ming Lei <ming.lei@canonical.com>
Date: Wed, 2 Mar 2011 15:00:08 +0800
Subject: [PATCH v6 2/6] arm: pmu: allow platform specific irq enable/disable
 handling

This patch introduces .enable_irq and .disable_irq into
struct arm_pmu_platdata, so platform specific irq enablement
can be handled after request_irq, and platform specific irq
disablement can be handled before free_irq.

This patch is for support of  pmu irq routed from CTI on omap4.

Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 arch/arm/include/asm/pmu.h   |   15 ++++++++++++---
 arch/arm/kernel/perf_event.c |   10 ++++++++--
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/arch/arm/include/asm/pmu.h b/arch/arm/include/asm/pmu.h
index 71d99b8..46a96a8 100644
--- a/arch/arm/include/asm/pmu.h
+++ b/arch/arm/include/asm/pmu.h
@@ -27,13 +27,22 @@ enum arm_pmu_type {
 /*
  * struct arm_pmu_platdata - ARM PMU platform data
  *
- * @handle_irq: an optional handler which will be called from the interrupt and
- * passed the address of the low level handler, and can be used to implement
- * any platform specific handling before or after calling it.
+ * @handle_irq: an optional handler which will be called from the
+ *	interrupt and passed the address of the low level handler,
+ *	and can be used to implement any platform specific handling
+ *	before or after calling it.
+ * @enable_irq: an optional handler which will be called after
+ *	request_irq and be used to handle some platform specific
+ *	irq enablement
+ * @disable_irq: an optional handler which will be called before
+ *	free_irq and be used to handle some platform specific
+ *	irq disablement
  */
 struct arm_pmu_platdata {
 	irqreturn_t (*handle_irq)(int irq, void *dev,
 				  irq_handler_t pmu_handler);
+	void (*enable_irq)(int irq);
+	void (*disable_irq)(int irq);
 };
 
 #ifdef CONFIG_CPU_HAS_PMU
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index e6e5d7c..4c4aa83 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -374,6 +374,8 @@ armpmu_release_hardware(struct arm_pmu *armpmu)
 {
 	int i, irq, irqs;
 	struct platform_device *pmu_device = armpmu->plat_device;
+	struct arm_pmu_platdata *plat =
+		dev_get_platdata(&pmu_device->dev);
 
 	irqs = min(pmu_device->num_resources, num_possible_cpus());
 
@@ -381,8 +383,11 @@ armpmu_release_hardware(struct arm_pmu *armpmu)
 		if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs))
 			continue;
 		irq = platform_get_irq(pmu_device, i);
-		if (irq >= 0)
+		if (irq >= 0) {
+			if (plat && plat->disable_irq)
+				plat->disable_irq(irq);
 			free_irq(irq, armpmu);
+		}
 	}
 
 	release_pmu(armpmu->type);
@@ -439,7 +444,8 @@ armpmu_reserve_hardware(struct arm_pmu *armpmu)
 				irq);
 			armpmu_release_hardware(armpmu);
 			return err;
-		}
+		} else if (plat && plat->enable_irq)
+			plat->enable_irq(irq);
 
 		cpumask_set_cpu(i, &armpmu->active_irqs);
 	}
-- 
1.7.5.4





-- 
Ming Lei

WARNING: multiple messages have this Message-ID (diff)
From: ming.lei@canonical.com (Ming Lei)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 2/7] arm: pmu: allow platform specific irq enable/disable handling
Date: Tue, 1 Nov 2011 11:26:46 +0800	[thread overview]
Message-ID: <20111101112646.75fba9db@tom-ThinkPad-T410> (raw)
In-Reply-To: <1319467559-5518-3-git-send-email-ming.lei@canonical.com>


Hi,

Attach the patch [PATCH v5 2/7] which is rebased on 3.1 -next.

BTW: The [PATCH v5 3/7] should be dropped as commented before, other patches
are OK against 3.1 -next.

thanks,
--
Ming Lei

--
>From 6125bef1aeee84ef22efdf743077f27f5274b6da Mon Sep 17 00:00:00 2001
From: Ming Lei <ming.lei@canonical.com>
Date: Wed, 2 Mar 2011 15:00:08 +0800
Subject: [PATCH v6 2/6] arm: pmu: allow platform specific irq enable/disable
 handling

This patch introduces .enable_irq and .disable_irq into
struct arm_pmu_platdata, so platform specific irq enablement
can be handled after request_irq, and platform specific irq
disablement can be handled before free_irq.

This patch is for support of  pmu irq routed from CTI on omap4.

Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 arch/arm/include/asm/pmu.h   |   15 ++++++++++++---
 arch/arm/kernel/perf_event.c |   10 ++++++++--
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/arch/arm/include/asm/pmu.h b/arch/arm/include/asm/pmu.h
index 71d99b8..46a96a8 100644
--- a/arch/arm/include/asm/pmu.h
+++ b/arch/arm/include/asm/pmu.h
@@ -27,13 +27,22 @@ enum arm_pmu_type {
 /*
  * struct arm_pmu_platdata - ARM PMU platform data
  *
- * @handle_irq: an optional handler which will be called from the interrupt and
- * passed the address of the low level handler, and can be used to implement
- * any platform specific handling before or after calling it.
+ * @handle_irq: an optional handler which will be called from the
+ *	interrupt and passed the address of the low level handler,
+ *	and can be used to implement any platform specific handling
+ *	before or after calling it.
+ * @enable_irq: an optional handler which will be called after
+ *	request_irq and be used to handle some platform specific
+ *	irq enablement
+ * @disable_irq: an optional handler which will be called before
+ *	free_irq and be used to handle some platform specific
+ *	irq disablement
  */
 struct arm_pmu_platdata {
 	irqreturn_t (*handle_irq)(int irq, void *dev,
 				  irq_handler_t pmu_handler);
+	void (*enable_irq)(int irq);
+	void (*disable_irq)(int irq);
 };
 
 #ifdef CONFIG_CPU_HAS_PMU
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index e6e5d7c..4c4aa83 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -374,6 +374,8 @@ armpmu_release_hardware(struct arm_pmu *armpmu)
 {
 	int i, irq, irqs;
 	struct platform_device *pmu_device = armpmu->plat_device;
+	struct arm_pmu_platdata *plat =
+		dev_get_platdata(&pmu_device->dev);
 
 	irqs = min(pmu_device->num_resources, num_possible_cpus());
 
@@ -381,8 +383,11 @@ armpmu_release_hardware(struct arm_pmu *armpmu)
 		if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs))
 			continue;
 		irq = platform_get_irq(pmu_device, i);
-		if (irq >= 0)
+		if (irq >= 0) {
+			if (plat && plat->disable_irq)
+				plat->disable_irq(irq);
 			free_irq(irq, armpmu);
+		}
 	}
 
 	release_pmu(armpmu->type);
@@ -439,7 +444,8 @@ armpmu_reserve_hardware(struct arm_pmu *armpmu)
 				irq);
 			armpmu_release_hardware(armpmu);
 			return err;
-		}
+		} else if (plat && plat->enable_irq)
+			plat->enable_irq(irq);
 
 		cpumask_set_cpu(i, &armpmu->active_irqs);
 	}
-- 
1.7.5.4





-- 
Ming Lei

  reply	other threads:[~2011-11-01  3:27 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-24 14:45 [PATCH v5 0/7] arm: pmu: support pmu/perf on OMAP4 ming.lei
2011-10-24 14:45 ` ming.lei at canonical.com
2011-10-24 14:45 ` [PATCH v5 1/7] arm: introduce cross trigger interface helpers ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com
2011-10-24 14:45 ` [PATCH v5 2/7] arm: pmu: allow platform specific irq enable/disable handling ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com
2011-11-01  3:26   ` Ming Lei [this message]
2011-11-01  3:26     ` Ming Lei
2011-11-01 12:52     ` Will Deacon
2011-11-01 12:52       ` Will Deacon
2011-10-24 14:45 ` [PATCH v5 3/7] arm: perf: support device with other non-irq resources ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com
2011-10-24 15:08   ` Will Deacon
2011-10-24 15:08     ` Will Deacon
2011-10-25  1:09     ` Ming Lei
2011-10-25  1:09       ` Ming Lei
2011-10-25  8:34       ` Will Deacon
2011-10-25  8:34         ` Will Deacon
2011-10-25  8:44         ` Paul Walmsley
2011-10-25  8:44           ` Paul Walmsley
2011-10-25 10:23           ` Ming Lei
2011-10-25 10:23             ` Ming Lei
2011-10-25 11:00             ` Paul Walmsley
2011-10-25 11:00               ` Paul Walmsley
2011-11-08  9:25               ` Ming Lei
2011-11-08  9:25                 ` Ming Lei
2011-11-08 12:17                 ` Will Deacon
2011-11-08 12:17                   ` Will Deacon
2011-10-24 14:45 ` [PATCH v5 4/7] arm: omap4: hwmod: introduce emu hwmod ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com
2011-11-08 15:26   ` Paul Walmsley
2011-11-08 15:26     ` Paul Walmsley
2011-11-09  9:56     ` Ming Lei
2011-11-09  9:56       ` Ming Lei
2011-11-10  9:02       ` Paul Walmsley
2011-11-10  9:02         ` Paul Walmsley
2011-11-11 11:41         ` Will Deacon
2011-11-11 11:41           ` Will Deacon
2011-11-11 11:47           ` Jamie Iles
2011-11-11 11:47             ` Jamie Iles
2011-11-11 11:59             ` Will Deacon
2011-11-11 11:59               ` Will Deacon
2011-11-11 14:56             ` Cousson, Benoit
2011-11-11 14:56               ` Cousson, Benoit
2011-11-11 14:58               ` Will Deacon
2011-11-11 14:58                 ` Will Deacon
2011-11-11 15:12                 ` Cousson, Benoit
2011-11-11 15:12                   ` Cousson, Benoit
2011-11-11 15:22                   ` Will Deacon
2011-11-11 15:22                     ` Will Deacon
2011-11-18 12:58         ` Cousson, Benoit
2011-11-18 12:58           ` Cousson, Benoit
2011-11-18 14:56           ` Will Deacon
2011-11-18 14:56             ` Will Deacon
2011-11-19 14:42             ` Ming Lei
2011-11-19 14:42               ` Ming Lei
2011-11-20  3:27               ` Paul Walmsley
2011-11-20  3:27                 ` Paul Walmsley
2011-11-21 13:58                 ` Will Deacon
2011-11-21 13:58                   ` Will Deacon
2011-11-21 14:53                   ` Ming Lei
2011-11-21 14:53                     ` Ming Lei
2011-11-21 15:16                     ` Will Deacon
2011-11-21 15:16                       ` Will Deacon
2011-11-21 15:30                       ` Ming Lei
2011-11-21 15:30                         ` Ming Lei
2011-11-19 14:37           ` Ming Lei
2011-11-19 14:37             ` Ming Lei
2011-11-27  1:58           ` Paul Walmsley
2011-11-27  1:58             ` Paul Walmsley
2011-11-27  2:07             ` Paul Walmsley
2011-11-27  2:07               ` Paul Walmsley
2011-11-29 16:19               ` Cousson, Benoit
2011-11-29 16:19                 ` Cousson, Benoit
2011-11-29 18:11                 ` Paul Walmsley
2011-11-29 18:11                   ` Paul Walmsley
2011-11-30 16:20                   ` Cousson, Benoit
2011-11-30 16:20                     ` Cousson, Benoit
2011-11-08 15:42   ` Paul Walmsley
2011-11-08 15:42     ` Paul Walmsley
2011-11-09 11:33     ` Ming Lei
2011-11-09 11:33       ` Ming Lei
2011-10-24 14:45 ` [PATCH v5 5/7] arm: omap4: create pmu device via hwmod ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com
2011-10-24 14:45 ` [PATCH v5 6/7] arm: omap4: support pmu ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com
2011-11-23 17:47   ` Rabin Vincent
2011-11-23 17:47     ` Rabin Vincent
2011-11-25  0:37     ` Ming Lei
2011-11-25  0:37       ` Ming Lei
2011-10-24 14:45 ` [PATCH v5 7/7] arm: omap4: pmu: support runtime pm ming.lei
2011-10-24 14:45   ` ming.lei at canonical.com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111101112646.75fba9db@tom-ThinkPad-T410 \
    --to=ming.lei@canonical.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=paul@pwsan.com \
    --cc=tony@atomide.com \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.