All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <4E85A311.5030805@arm.com>

diff --git a/N1/2.hdr b/N1/2.hdr
new file mode 100644
index 0000000..e4fd23a
--- /dev/null
+++ b/N1/2.hdr
@@ -0,0 +1,6 @@
+Content-Type: text/x-patch; 
+	name=0001-genirq-percpu-allow-interrupt-type-to-be-set-at-enab.patch
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: inline;
+ filename*0="0001-genirq-percpu-allow-interrupt-type-to-be-set-at-enab.pa";
+ filename*1="tch"
diff --git a/N1/2.txt b/N1/2.txt
new file mode 100644
index 0000000..3a1163d
--- /dev/null
+++ b/N1/2.txt
@@ -0,0 +1,68 @@
+>From 9b1df95320aea19dce7232e8b7d66104c380aed2 Mon Sep 17 00:00:00 2001
+From: Marc Zyngier <marc.zyngier@arm.com>
+Date: Fri, 30 Sep 2011 10:48:47 +0100
+Subject: [PATCH] genirq: percpu: allow interrupt type to be set at enable time
+
+As request_percpu_irq() doesn't allow for a percpu interrupt
+to have its type configured (it is generally impossible to
+configure it on all CPUs at once), add a 'type' argument to
+enable_percpu_irq().
+
+This allows some low-level, board specific init code to
+be switched to a generic API.
+
+Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
+---
+ include/linux/interrupt.h |    2 +-
+ kernel/irq/manage.c       |   15 ++++++++++++++-
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index 1cdfd09..664544f 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -223,7 +223,7 @@ extern void disable_irq_nosync(unsigned int irq);
+ extern void disable_irq(unsigned int irq);
+ extern void disable_percpu_irq(unsigned int irq);
+ extern void enable_irq(unsigned int irq);
+-extern void enable_percpu_irq(unsigned int irq);
++extern void enable_percpu_irq(unsigned int irq, unsigned int type);
+ 
+ /* The following three functions are for the core kernel use only. */
+ #ifdef CONFIG_GENERIC_HARDIRQS
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index 7b4b156..e647ce1 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -1419,7 +1419,7 @@ int request_any_context_irq(unsigned int irq, irq_handler_t handler,
+ }
+ EXPORT_SYMBOL_GPL(request_any_context_irq);
+ 
+-void enable_percpu_irq(unsigned int irq)
++void enable_percpu_irq(unsigned int irq, unsigned int type)
+ {
+ 	unsigned int cpu = smp_processor_id();
+ 	unsigned long flags;
+@@ -1428,7 +1428,20 @@ void enable_percpu_irq(unsigned int irq)
+ 	if (!desc)
+ 		return;
+ 
++	type &= IRQ_TYPE_SENSE_MASK;
++	if (type != IRQ_TYPE_NONE) {
++		int ret;
++
++		ret = __irq_set_trigger(desc, irq, type);
++
++		if (ret) {
++			WARN(1, "failed to set type for IRQ%d\n");
++			goto out;
++		}
++	}
++
+ 	irq_percpu_enable(desc, cpu);
++out:
+ 	irq_put_desc_unlock(desc, flags);
+ }
+ 
+-- 
+1.7.0.4
diff --git a/a/content_digest b/N1/content_digest
index 62f7a7f..4da0229 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,11 +1,14 @@
  "ref\01316793788-14500-1-git-send-email-marc.zyngier@arm.com\0"
  "ref\01316793788-14500-2-git-send-email-marc.zyngier@arm.com\0"
  "ref\04E84088C.8050101@codeaurora.org\0"
- "From\0marc.zyngier@arm.com (Marc Zyngier)\0"
- "Subject\0[PATCH v3 1/3] genirq: add support for per-cpu dev_id interrupts\0"
+ "From\0Marc Zyngier <marc.zyngier@arm.com>\0"
+ "Subject\0Re: [PATCH v3 1/3] genirq: add support for per-cpu dev_id interrupts\0"
  "Date\0Fri, 30 Sep 2011 12:08:01 +0100\0"
- "To\0linux-arm-kernel@lists.infradead.org\0"
- "\00:1\0"
+ "To\0Abhijeet Dharmapurikar <adharmap@codeaurora.org>\0"
+ "Cc\0linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>"
+  linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>
+ " Thomas Gleixner <tglx@linutronix.de>\0"
+ "\01:1\0"
  "b\0"
  "On 29/09/11 06:56, Abhijeet Dharmapurikar wrote:\n"
  "> On 09/23/2011 09:03 AM, Marc Zyngier wrote:\n"
@@ -52,5 +55,76 @@
  "\tM.\n"
  "-- \n"
  Jazz is not dead. It just smells funny...
+ "\01:2\0"
+ "fn\00001-genirq-percpu-allow-interrupt-type-to-be-set-at-enab.patch\0"
+ "b\0"
+ ">From 9b1df95320aea19dce7232e8b7d66104c380aed2 Mon Sep 17 00:00:00 2001\n"
+ "From: Marc Zyngier <marc.zyngier@arm.com>\n"
+ "Date: Fri, 30 Sep 2011 10:48:47 +0100\n"
+ "Subject: [PATCH] genirq: percpu: allow interrupt type to be set at enable time\n"
+ "\n"
+ "As request_percpu_irq() doesn't allow for a percpu interrupt\n"
+ "to have its type configured (it is generally impossible to\n"
+ "configure it on all CPUs at once), add a 'type' argument to\n"
+ "enable_percpu_irq().\n"
+ "\n"
+ "This allows some low-level, board specific init code to\n"
+ "be switched to a generic API.\n"
+ "\n"
+ "Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>\n"
+ "---\n"
+ " include/linux/interrupt.h |    2 +-\n"
+ " kernel/irq/manage.c       |   15 ++++++++++++++-\n"
+ " 2 files changed, 15 insertions(+), 2 deletions(-)\n"
+ "\n"
+ "diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h\n"
+ "index 1cdfd09..664544f 100644\n"
+ "--- a/include/linux/interrupt.h\n"
+ "+++ b/include/linux/interrupt.h\n"
+ "@@ -223,7 +223,7 @@ extern void disable_irq_nosync(unsigned int irq);\n"
+ " extern void disable_irq(unsigned int irq);\n"
+ " extern void disable_percpu_irq(unsigned int irq);\n"
+ " extern void enable_irq(unsigned int irq);\n"
+ "-extern void enable_percpu_irq(unsigned int irq);\n"
+ "+extern void enable_percpu_irq(unsigned int irq, unsigned int type);\n"
+ " \n"
+ " /* The following three functions are for the core kernel use only. */\n"
+ " #ifdef CONFIG_GENERIC_HARDIRQS\n"
+ "diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c\n"
+ "index 7b4b156..e647ce1 100644\n"
+ "--- a/kernel/irq/manage.c\n"
+ "+++ b/kernel/irq/manage.c\n"
+ "@@ -1419,7 +1419,7 @@ int request_any_context_irq(unsigned int irq, irq_handler_t handler,\n"
+ " }\n"
+ " EXPORT_SYMBOL_GPL(request_any_context_irq);\n"
+ " \n"
+ "-void enable_percpu_irq(unsigned int irq)\n"
+ "+void enable_percpu_irq(unsigned int irq, unsigned int type)\n"
+ " {\n"
+ " \tunsigned int cpu = smp_processor_id();\n"
+ " \tunsigned long flags;\n"
+ "@@ -1428,7 +1428,20 @@ void enable_percpu_irq(unsigned int irq)\n"
+ " \tif (!desc)\n"
+ " \t\treturn;\n"
+ " \n"
+ "+\ttype &= IRQ_TYPE_SENSE_MASK;\n"
+ "+\tif (type != IRQ_TYPE_NONE) {\n"
+ "+\t\tint ret;\n"
+ "+\n"
+ "+\t\tret = __irq_set_trigger(desc, irq, type);\n"
+ "+\n"
+ "+\t\tif (ret) {\n"
+ "+\t\t\tWARN(1, \"failed to set type for IRQ%d\\n\");\n"
+ "+\t\t\tgoto out;\n"
+ "+\t\t}\n"
+ "+\t}\n"
+ "+\n"
+ " \tirq_percpu_enable(desc, cpu);\n"
+ "+out:\n"
+ " \tirq_put_desc_unlock(desc, flags);\n"
+ " }\n"
+ " \n"
+ "-- \n"
+ 1.7.0.4
 
-bc82939c3ff0dff5b3257a866d1087003bb9ef79d8ca17671053f7b90123622a
+83c0d0722363c7d71fe1aa932d8915c97a50504714eab4dea5e37e2d11e1f095

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.