All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Stefan Agner <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, hpa@zytor.com,
	tglx@linutronix.de, stefan@agner.ch
Subject: [tip:irq/core] genirq: Add irq_chip_(enable/disable)_parent
Date: Mon, 18 May 2015 08:36:51 -0700	[thread overview]
Message-ID: <tip-3cfeffc265791bc953527458e0a44ea77c459340@git.kernel.org> (raw)
In-Reply-To: <1431769465-26867-3-git-send-email-stefan@agner.ch>

Commit-ID:  3cfeffc265791bc953527458e0a44ea77c459340
Gitweb:     http://git.kernel.org/tip/3cfeffc265791bc953527458e0a44ea77c459340
Author:     Stefan Agner <stefan@agner.ch>
AuthorDate: Sat, 16 May 2015 11:44:14 +0200
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Mon, 18 May 2015 17:32:44 +0200

genirq: Add irq_chip_(enable/disable)_parent

Add helper irq_chip_enable_parent and irq_chip_disable_parent. The
helper implement the default behavior in case irq_enable or irq_disable
is not implemented for the parent interrupt chip, which is calling the
irq_mask or irq_unmask respectively.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Cc: marc.zyngier@arm.com
Cc: linux@arm.linux.org.uk
Cc: u.kleine-koenig@pengutronix.de
Cc: olof@lixom.net
Cc: arnd@arndb.de
Cc: daniel.lezcano@linaro.org
Cc: mark.rutland@arm.com
Cc: pawel.moll@arm.com
Cc: robh+dt@kernel.org
Cc: ijc+devicetree@hellion.org.uk
Cc: galak@codeaurora.org
Cc: mcoquelin.stm32@gmail.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: shawn.guo@linaro.org
Cc: kernel@pengutronix.de
Cc: jason@lakedaemon.net
Link: http://lkml.kernel.org/r/1431769465-26867-3-git-send-email-stefan@agner.ch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/irq.h |  2 ++
 kernel/irq/chip.c   | 28 ++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index 62c6901..2633061 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -458,6 +458,8 @@ extern void handle_nested_irq(unsigned int irq);
 
 extern int irq_chip_compose_msi_msg(struct irq_data *data, struct msi_msg *msg);
 #ifdef	CONFIG_IRQ_DOMAIN_HIERARCHY
+extern void irq_chip_enable_parent(struct irq_data *data);
+extern void irq_chip_disable_parent(struct irq_data *data);
 extern void irq_chip_ack_parent(struct irq_data *data);
 extern int irq_chip_retrigger_hierarchy(struct irq_data *data);
 extern void irq_chip_mask_parent(struct irq_data *data);
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index eb9a4ea..2456fe8 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -876,6 +876,34 @@ void irq_cpu_offline(void)
 
 #ifdef	CONFIG_IRQ_DOMAIN_HIERARCHY
 /**
+ * irq_chip_enable_parent - Enable the parent interrupt (defaults to unmask if
+ * NULL)
+ * @data:	Pointer to interrupt specific data
+ */
+void irq_chip_enable_parent(struct irq_data *data)
+{
+	data = data->parent_data;
+	if (data->chip->irq_enable)
+		data->chip->irq_enable(data);
+	else
+		data->chip->irq_unmask(data);
+}
+
+/**
+ * irq_chip_disable_parent - Disable the parent interrupt (defaults to mask if
+ * NULL)
+ * @data:	Pointer to interrupt specific data
+ */
+void irq_chip_disable_parent(struct irq_data *data)
+{
+	data = data->parent_data;
+	if (data->chip->irq_disable)
+		data->chip->irq_disable(data);
+	else
+		data->chip->irq_mask(data);
+}
+
+/**
  * irq_chip_ack_parent - Acknowledge the parent interrupt
  * @data:	Pointer to interrupt specific data
  */

  reply	other threads:[~2015-05-18 15:37 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-16  9:44 [PATCH v7 00/13] ARM: vf610m4: Add Vybrid Cortex-M4 support Stefan Agner
2015-05-16  9:44 ` Stefan Agner
2015-05-16  9:44 ` Stefan Agner
2015-05-16  9:44 ` [PATCH v7 01/13] irqdomain: Add non-hierarchy helper irq_domain_set_info Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-18 15:36   ` [tip:irq/core] " tip-bot for Stefan Agner
2015-05-16  9:44 ` [PATCH v7 02/13] genirq: Add irq_chip_(enable|disable)_parent Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-18 15:36   ` tip-bot for Stefan Agner [this message]
2015-05-16  9:44 ` [PATCH v7 03/13] genirq: generic chip: support hierarchy domain Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-18 15:37   ` [tip:irq/core] genirq: generic chip: Support " tip-bot for Stefan Agner
2015-05-16  9:44 ` [PATCH v7 04/13] irqchip: nvic: support hierarchy irq domain Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-18 15:37   ` [tip:irq/core] irqchip: nvic: Support " tip-bot for Stefan Agner
2015-05-16  9:44 ` [PATCH v7 05/13] irqchip: vf610-mscm: support NVIC parent Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-18 15:37   ` [tip:irq/core] irqchip: vf610-mscm: Support NVIC parent chip tip-bot for Stefan Agner
2015-05-18 22:03   ` tip-bot for Stefan Agner
2015-05-16  9:44 ` [PATCH v7 06/13] ARM: ARMv7M: define size of vector table for Vybrid Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44 ` [PATCH v7 07/13] clocksource: add dependencies for Vybrid pit clocksource Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44 ` [PATCH v7 08/13] ARM: unify MMU/!MMU addruart calls Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16 20:51   ` Russell King - ARM Linux
2015-05-16 20:51     ` Russell King - ARM Linux
2015-05-17  7:53     ` Thomas Gleixner
2015-05-17  7:53       ` Thomas Gleixner
2015-05-18 15:36       ` Thomas Gleixner
2015-05-18 15:36         ` Thomas Gleixner
2015-05-18 15:36         ` Thomas Gleixner
2015-05-19  5:35         ` Shawn Guo
2015-05-19  5:35           ` Shawn Guo
2015-05-19  8:11           ` Thomas Gleixner
2015-05-19  8:11             ` Thomas Gleixner
2015-05-19  8:56             ` Shawn Guo
2015-05-19  8:56               ` Shawn Guo
2015-05-19 10:16           ` Russell King - ARM Linux
2015-05-19 10:16             ` Russell King - ARM Linux
2015-05-19 10:16             ` Russell King - ARM Linux
2015-05-19 11:23             ` Stefan Agner
2015-05-19 11:23               ` Stefan Agner
2015-05-19 11:23               ` Stefan Agner
2015-05-19 11:50               ` Arnd Bergmann
2015-05-19 11:50                 ` Arnd Bergmann
2015-05-19 16:06                 ` Stefan Agner
2015-05-19 16:06                   ` Stefan Agner
2015-05-19 18:24                   ` Arnd Bergmann
2015-05-19 18:24                     ` Arnd Bergmann
2015-05-19 18:24                     ` Arnd Bergmann
2015-05-19 21:26                     ` Stefan Agner
2015-05-19 21:26                       ` Stefan Agner
2015-05-19 21:26                       ` Stefan Agner
2015-05-19 21:32                       ` Thomas Gleixner
2015-05-19 21:32                         ` Thomas Gleixner
2015-05-19 21:32                         ` Thomas Gleixner
2015-05-19 21:32                         ` Stefan Agner
2015-05-19 21:32                           ` Stefan Agner
2015-05-19 21:37                       ` Arnd Bergmann
2015-05-19 21:37                         ` Arnd Bergmann
2015-05-19 21:37                       ` Joachim Eastwood
2015-05-19 21:37                         ` Joachim Eastwood
2015-05-16  9:44 ` [PATCH v7 09/13] ARM: introduce ARM_SINGLE_ARMV7M for ARMv7-M platforms Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44 ` [PATCH v7 10/13] ARM: efm32: use ARM_SINGLE_ARMV7M Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-19 12:14   ` Uwe Kleine-König
2015-05-19 12:14     ` Uwe Kleine-König
2015-05-16  9:44 ` [PATCH v7 11/13] ARM: vf610: enable Cortex-M4 configuration on Vybrid SoC Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44 ` [PATCH v7 12/13] ARM: dts: add support for Vybrid running on Cortex-M4 Stefan Agner
2015-05-16  9:44   ` Stefan Agner
2015-05-16  9:44 ` [PATCH v7 13/13] ARM: vf610m4: add defconfig for Linux on Vybrids Cortex-M4 Stefan Agner
2015-05-16  9:44   ` Stefan Agner

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=tip-3cfeffc265791bc953527458e0a44ea77c459340@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=stefan@agner.ch \
    --cc=tglx@linutronix.de \
    /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.