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.