From: peterz@infradead.org (Peter Zijlstra)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation
Date: Tue, 10 Feb 2015 16:00:13 +0100 [thread overview]
Message-ID: <20150210150013.GD7119@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1422527620-8308-3-git-send-email-boris.brezillon@free-electrons.com>
On Thu, Jan 29, 2015 at 11:33:37AM +0100, Boris Brezillon wrote:
> +#ifdef CONFIG_VIRT_IRQ_DEMUX_CHIP
> +/**
> + * struct irq_chip_virt_demux - Dumb demultiplexer irq chip data structure
s/Dumb/Virtual/ ?
> + * @domain: irq domain pointer
> + * @available: Bitfield of valid irqs
> + * @unmasked: Bitfield containing irqs status
> + * @flags: irq_virt_demux_flags flags
> + * @src_irq: irq feeding the virt demux chip
> + *
> + * Note, that irq_chip_generic can have multiple irq_chip_type
> + * implementations which can be associated to a particular irq line of
> + * an irq_chip_generic instance. That allows to share and protect
> + * state in an irq_chip_generic instance when we need to implement
> + * different flow mechanisms (level/edge) for it.
This seems like a copy/paste from struct irq_chip_generic; it seems not
relevant, seeing how irq_chip_virt_demux does not even have an
irq_chip_type pointer list.
Also, with a demuxer like this, we're bound to whatever flow type its
host is, no?
> +# Dumb interrupt demuxer chip implementation
s/Dumb/Virtual/ ?
> +#ifdef CONFIG_VIRT_IRQ_DEMUX_CHIP
> +/**
> + * handle_virt_demux_irq - Dumb demuxer irq handle function.
idem
> + * @irq: the interrupt number
> + * @desc: the interrupt description structure for this irq
> + *
> + * Dumb demux interrupts are sent from a demultiplexing interrupt handler
idem
> + * which is not able to decide which child interrupt handler should be
> + * called.
> + *
> + * Note: The caller is expected to handle the ack, clear, mask and
> + * unmask issues if necessary.
> + */
If we're calling multiple handlers, how can they all do this and not
collide?
Over all it looks good -- in as far as my (admittedly stale IRQ
braincells) go.
I'll go queue up these bits, if you could send me a delta patch
addressing these 'minor' comment issues?
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Jason Cooper <jason@lakedaemon.net>,
Nicolas Ferre <nicolas.ferre@atmel.com>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
devicetree@vger.kernel.org,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation
Date: Tue, 10 Feb 2015 16:00:13 +0100 [thread overview]
Message-ID: <20150210150013.GD7119@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1422527620-8308-3-git-send-email-boris.brezillon@free-electrons.com>
On Thu, Jan 29, 2015 at 11:33:37AM +0100, Boris Brezillon wrote:
> +#ifdef CONFIG_VIRT_IRQ_DEMUX_CHIP
> +/**
> + * struct irq_chip_virt_demux - Dumb demultiplexer irq chip data structure
s/Dumb/Virtual/ ?
> + * @domain: irq domain pointer
> + * @available: Bitfield of valid irqs
> + * @unmasked: Bitfield containing irqs status
> + * @flags: irq_virt_demux_flags flags
> + * @src_irq: irq feeding the virt demux chip
> + *
> + * Note, that irq_chip_generic can have multiple irq_chip_type
> + * implementations which can be associated to a particular irq line of
> + * an irq_chip_generic instance. That allows to share and protect
> + * state in an irq_chip_generic instance when we need to implement
> + * different flow mechanisms (level/edge) for it.
This seems like a copy/paste from struct irq_chip_generic; it seems not
relevant, seeing how irq_chip_virt_demux does not even have an
irq_chip_type pointer list.
Also, with a demuxer like this, we're bound to whatever flow type its
host is, no?
> +# Dumb interrupt demuxer chip implementation
s/Dumb/Virtual/ ?
> +#ifdef CONFIG_VIRT_IRQ_DEMUX_CHIP
> +/**
> + * handle_virt_demux_irq - Dumb demuxer irq handle function.
idem
> + * @irq: the interrupt number
> + * @desc: the interrupt description structure for this irq
> + *
> + * Dumb demux interrupts are sent from a demultiplexing interrupt handler
idem
> + * which is not able to decide which child interrupt handler should be
> + * called.
> + *
> + * Note: The caller is expected to handle the ack, clear, mask and
> + * unmask issues if necessary.
> + */
If we're calling multiple handlers, how can they all do this and not
collide?
Over all it looks good -- in as far as my (admittedly stale IRQ
braincells) go.
I'll go queue up these bits, if you could send me a delta patch
addressing these 'minor' comment issues?
next prev parent reply other threads:[~2015-02-10 15:00 UTC|newest]
Thread overview: 165+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-29 10:33 [PATCH v4 0/5] ARM: at91: fix irq_pm_install_action WARNING Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` [PATCH v4 1/5] genirq: Authorize chained handlers to remain disabled when initialized Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-02-10 15:00 ` Peter Zijlstra [this message]
2015-02-10 15:00 ` Peter Zijlstra
2015-02-10 15:20 ` Boris Brezillon
2015-02-10 15:20 ` Boris Brezillon
2015-02-10 15:43 ` [PATCH] genirq: fix virtual irq demuxer related comments Boris Brezillon
2015-02-10 15:43 ` Boris Brezillon
2015-02-10 16:14 ` Peter Zijlstra
2015-02-10 16:14 ` Peter Zijlstra
2015-02-10 16:14 ` Peter Zijlstra
2015-02-20 16:12 ` Mark Rutland
2015-02-20 16:12 ` Mark Rutland
2015-02-20 16:17 ` Peter Zijlstra
2015-02-20 16:17 ` Peter Zijlstra
2015-02-10 15:48 ` [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation Mark Rutland
2015-02-10 15:48 ` Mark Rutland
2015-02-10 15:48 ` Mark Rutland
2015-01-29 10:33 ` [PATCH v4 3/5] irqchip: Add DT binding doc for the virtual irq demuxer chip Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-02-10 15:36 ` Mark Rutland
2015-02-10 15:36 ` Mark Rutland
2015-02-10 15:52 ` Boris Brezillon
2015-02-10 15:52 ` Boris Brezillon
2015-02-10 16:06 ` Boris Brezillon
2015-02-10 16:06 ` Boris Brezillon
2015-02-10 16:16 ` Mark Rutland
2015-02-10 16:16 ` Mark Rutland
2015-02-10 16:20 ` Boris Brezillon
2015-02-10 16:20 ` Boris Brezillon
2015-02-10 20:48 ` Mark Rutland
2015-02-10 20:48 ` Mark Rutland
2015-02-11 8:53 ` Boris Brezillon
2015-02-11 8:53 ` Boris Brezillon
2015-02-11 11:11 ` Mark Rutland
2015-02-11 11:11 ` Mark Rutland
2015-02-11 11:11 ` Mark Rutland
2015-02-11 12:24 ` Boris Brezillon
2015-02-11 12:24 ` Boris Brezillon
2015-02-11 12:24 ` Boris Brezillon
2015-02-11 12:36 ` Mark Rutland
2015-02-11 12:36 ` Mark Rutland
2015-02-11 13:38 ` Alexandre Belloni
2015-02-11 13:38 ` Alexandre Belloni
2015-02-11 13:38 ` Alexandre Belloni
2015-02-11 13:48 ` Mark Rutland
2015-02-11 13:48 ` Mark Rutland
2015-02-11 13:48 ` Mark Rutland
2015-02-11 14:55 ` Rafael J. Wysocki
2015-02-11 14:55 ` Rafael J. Wysocki
2015-02-11 14:55 ` Rafael J. Wysocki
2015-02-11 14:43 ` Mark Rutland
2015-02-11 14:43 ` Mark Rutland
2015-02-11 15:17 ` Rafael J. Wysocki
2015-02-11 15:17 ` Rafael J. Wysocki
2015-02-11 15:03 ` Boris Brezillon
2015-02-11 15:03 ` Boris Brezillon
2015-02-11 15:03 ` Boris Brezillon
2015-02-11 15:39 ` Rafael J. Wysocki
2015-02-11 15:39 ` Rafael J. Wysocki
2015-02-11 15:23 ` Mark Rutland
2015-02-11 15:23 ` Mark Rutland
2015-02-11 15:12 ` Mark Rutland
2015-02-11 15:12 ` Mark Rutland
2015-02-11 15:51 ` Rafael J. Wysocki
2015-02-11 15:51 ` Rafael J. Wysocki
2015-02-11 15:57 ` Mark Rutland
2015-02-11 15:57 ` Mark Rutland
2015-02-11 16:15 ` Boris Brezillon
2015-02-11 16:15 ` Boris Brezillon
2015-02-11 16:32 ` Mark Rutland
2015-02-11 16:32 ` Mark Rutland
2015-02-11 16:32 ` Mark Rutland
2015-02-11 16:38 ` Boris Brezillon
2015-02-11 16:38 ` Boris Brezillon
2015-02-11 17:17 ` Mark Rutland
2015-02-11 17:17 ` Mark Rutland
2015-02-20 14:22 ` Mark Rutland
2015-02-20 14:22 ` Mark Rutland
2015-02-20 14:22 ` Mark Rutland
2015-02-20 14:53 ` Boris Brezillon
2015-02-20 14:53 ` Boris Brezillon
2015-02-20 15:16 ` Mark Rutland
2015-02-20 15:16 ` Mark Rutland
2015-02-20 15:16 ` Mark Rutland
2015-02-23 17:00 ` Boris Brezillon
2015-02-23 17:00 ` Boris Brezillon
2015-02-23 18:14 ` Mark Rutland
2015-02-23 18:14 ` Mark Rutland
2015-02-23 18:14 ` Mark Rutland
2015-02-23 20:16 ` Boris Brezillon
2015-02-23 20:16 ` Boris Brezillon
2015-02-11 16:42 ` Rafael J. Wysocki
2015-02-11 16:42 ` Rafael J. Wysocki
2015-02-11 16:28 ` Boris Brezillon
2015-02-11 16:28 ` Boris Brezillon
2015-02-11 17:13 ` Mark Rutland
2015-02-11 17:13 ` Mark Rutland
2015-02-11 17:13 ` Mark Rutland
2015-02-11 17:29 ` Boris Brezillon
2015-02-11 17:29 ` Boris Brezillon
2015-02-12 10:52 ` Mark Rutland
2015-02-12 10:52 ` Mark Rutland
2015-02-12 11:09 ` Boris Brezillon
2015-02-12 11:09 ` Boris Brezillon
2015-02-12 11:23 ` Mark Rutland
2015-02-12 11:23 ` Mark Rutland
2015-02-16 9:49 ` Peter Zijlstra
2015-02-16 9:49 ` Peter Zijlstra
2015-02-16 9:49 ` Peter Zijlstra
2015-02-16 9:28 ` Peter Zijlstra
2015-02-16 9:28 ` Peter Zijlstra
2015-02-16 12:23 ` Mark Rutland
2015-02-16 12:23 ` Mark Rutland
2015-02-16 12:23 ` Mark Rutland
2015-02-19 1:16 ` Rafael J. Wysocki
2015-02-19 1:16 ` Rafael J. Wysocki
2015-02-19 11:23 ` Mark Rutland
2015-02-19 11:23 ` Mark Rutland
2015-02-19 11:23 ` Mark Rutland
2015-02-19 22:35 ` Rafael J. Wysocki
2015-02-19 22:35 ` Rafael J. Wysocki
2015-02-20 10:31 ` Mark Rutland
2015-02-20 10:31 ` Mark Rutland
2015-02-24 1:02 ` Rafael J. Wysocki
2015-02-24 1:02 ` Rafael J. Wysocki
2015-02-24 1:02 ` Rafael J. Wysocki
2015-02-24 8:42 ` Boris Brezillon
2015-02-24 8:42 ` Boris Brezillon
2015-02-11 14:45 ` Boris Brezillon
2015-02-11 14:45 ` Boris Brezillon
2015-02-11 14:45 ` Boris Brezillon
2015-02-11 14:39 ` Rafael J. Wysocki
2015-02-11 14:39 ` Rafael J. Wysocki
2015-02-11 9:11 ` Peter Zijlstra
2015-02-11 9:11 ` Peter Zijlstra
2015-02-11 9:11 ` Peter Zijlstra
2015-02-11 11:15 ` Mark Rutland
2015-02-11 11:15 ` Mark Rutland
2015-02-11 14:31 ` Rafael J. Wysocki
2015-02-11 14:31 ` Rafael J. Wysocki
2015-02-11 14:14 ` Mark Rutland
2015-02-11 14:14 ` Mark Rutland
2015-02-11 14:14 ` Mark Rutland
2015-02-11 15:07 ` Rafael J. Wysocki
2015-02-11 15:07 ` Rafael J. Wysocki
2015-02-11 15:03 ` Mark Rutland
2015-02-11 15:03 ` Mark Rutland
2015-02-11 15:03 ` Mark Rutland
2015-02-11 14:34 ` Rafael J. Wysocki
2015-02-11 14:34 ` Rafael J. Wysocki
2015-02-11 14:34 ` Rafael J. Wysocki
2015-01-29 10:33 ` [PATCH v4 4/5] ARM: at91/dt: select VIRT_IRQ_DEMUX for all at91 SoCs Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` [PATCH v4 5/5] ARM: at91/dt: define a virtual irq demultiplexer chip connected on irq1 Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-02-09 15:47 ` [PATCH v4 0/5] ARM: at91: fix irq_pm_install_action WARNING Boris Brezillon
2015-02-09 15:47 ` Boris Brezillon
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=20150210150013.GD7119@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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.