From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation
Date: Tue, 10 Feb 2015 15:48:38 +0000 [thread overview]
Message-ID: <20150210154838.GG9432@leverpostej> (raw)
In-Reply-To: <1422527620-8308-3-git-send-email-boris.brezillon@free-electrons.com>
[...]
> +static int __init virt_irq_demux_of_init(struct device_node *node,
> + struct device_node *parent)
> +{
> + struct irq_chip_virt_demux *demux;
> + unsigned int irq;
> + u32 valid_irqs;
> + int ret;
> +
> + irq = irq_of_parse_and_map(node, 0);
> + if (!irq) {
> + pr_err("Failed to retrieve virt irq demuxer source\n");
> + return -EINVAL;
> + }
> +
> + ret = of_property_read_u32(node, "irqs", &valid_irqs);
> + if (ret) {
> + pr_err("Invalid of missing 'irqs' property\n");
> + return ret;
> + }
> +
> + demux = irq_alloc_virt_demux_chip(irq, valid_irqs,
> + IRQ_NOREQUEST | IRQ_NOPROBE |
> + IRQ_NOAUTOEN, 0);
> + if (!demux) {
> + pr_err("Failed to allocate virt irq demuxer struct\n");
> + return -ENOMEM;
> + }
> +
> + demux->domain = irq_domain_add_linear(node, BITS_PER_LONG,
> + &irq_virt_demux_domain_ops,
> + demux);
> + if (!demux->domain) {
> + ret = -ENOMEM;
> + goto err_free_demux;
> + }
> +
> + ret = irq_set_handler_data(irq, demux);
> + if (ret) {
> + pr_err("Failed to assign handler data\n");
> + goto err_free_domain;
> + }
> +
> + irq_set_chained_handler_nostartup(irq, irq_virt_demux_handler);
> +
> + return 0;
> +
> +err_free_domain:
> + irq_domain_remove(demux->domain);
> +
> +err_free_demux:
> + kfree(demux);
> +
> + return ret;
> +}
> +IRQCHIP_DECLARE(virt_irq_demux, "virtual,irq-demux", virt_irq_demux_of_init);
As mentioned on the DT binding patch, I really don't think this should
be in the DT. It corresponds only to Linux internal details, not a piece
of hardware. If we need this internally, I don't see why it can't be
instanciated as required.
If we _must_ have this in the DT, I have concerns with the binding
w.r.t. the "irqs" property being a 32-bit bitmask (as opposed to say
being something like "num-irqs" which could be far larger, and is
easuier to read).
Thanks,
Mark.
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
To: Boris Brezillon
<boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
Cc: Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
Nicolas Ferre
<nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>,
Jean-Christophe Plagniol-Villard
<plagnioj-sclMFOaUSTBWk0Htik3J/w@public.gmane.org>,
Alexandre Belloni
<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Pawel Moll <Pawel.Moll-5wv7dgnIgG8@public.gmane.org>,
Ian Campbell
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"Rafael J. Wysocki"
<rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation
Date: Tue, 10 Feb 2015 15:48:38 +0000 [thread overview]
Message-ID: <20150210154838.GG9432@leverpostej> (raw)
In-Reply-To: <1422527620-8308-3-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
[...]
> +static int __init virt_irq_demux_of_init(struct device_node *node,
> + struct device_node *parent)
> +{
> + struct irq_chip_virt_demux *demux;
> + unsigned int irq;
> + u32 valid_irqs;
> + int ret;
> +
> + irq = irq_of_parse_and_map(node, 0);
> + if (!irq) {
> + pr_err("Failed to retrieve virt irq demuxer source\n");
> + return -EINVAL;
> + }
> +
> + ret = of_property_read_u32(node, "irqs", &valid_irqs);
> + if (ret) {
> + pr_err("Invalid of missing 'irqs' property\n");
> + return ret;
> + }
> +
> + demux = irq_alloc_virt_demux_chip(irq, valid_irqs,
> + IRQ_NOREQUEST | IRQ_NOPROBE |
> + IRQ_NOAUTOEN, 0);
> + if (!demux) {
> + pr_err("Failed to allocate virt irq demuxer struct\n");
> + return -ENOMEM;
> + }
> +
> + demux->domain = irq_domain_add_linear(node, BITS_PER_LONG,
> + &irq_virt_demux_domain_ops,
> + demux);
> + if (!demux->domain) {
> + ret = -ENOMEM;
> + goto err_free_demux;
> + }
> +
> + ret = irq_set_handler_data(irq, demux);
> + if (ret) {
> + pr_err("Failed to assign handler data\n");
> + goto err_free_domain;
> + }
> +
> + irq_set_chained_handler_nostartup(irq, irq_virt_demux_handler);
> +
> + return 0;
> +
> +err_free_domain:
> + irq_domain_remove(demux->domain);
> +
> +err_free_demux:
> + kfree(demux);
> +
> + return ret;
> +}
> +IRQCHIP_DECLARE(virt_irq_demux, "virtual,irq-demux", virt_irq_demux_of_init);
As mentioned on the DT binding patch, I really don't think this should
be in the DT. It corresponds only to Linux internal details, not a piece
of hardware. If we need this internally, I don't see why it can't be
instanciated as required.
If we _must_ have this in the DT, I have concerns with the binding
w.r.t. the "irqs" property being a 32-bit bitmask (as opposed to say
being something like "num-irqs" which could be far larger, and is
easuier to read).
Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
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>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation
Date: Tue, 10 Feb 2015 15:48:38 +0000 [thread overview]
Message-ID: <20150210154838.GG9432@leverpostej> (raw)
In-Reply-To: <1422527620-8308-3-git-send-email-boris.brezillon@free-electrons.com>
[...]
> +static int __init virt_irq_demux_of_init(struct device_node *node,
> + struct device_node *parent)
> +{
> + struct irq_chip_virt_demux *demux;
> + unsigned int irq;
> + u32 valid_irqs;
> + int ret;
> +
> + irq = irq_of_parse_and_map(node, 0);
> + if (!irq) {
> + pr_err("Failed to retrieve virt irq demuxer source\n");
> + return -EINVAL;
> + }
> +
> + ret = of_property_read_u32(node, "irqs", &valid_irqs);
> + if (ret) {
> + pr_err("Invalid of missing 'irqs' property\n");
> + return ret;
> + }
> +
> + demux = irq_alloc_virt_demux_chip(irq, valid_irqs,
> + IRQ_NOREQUEST | IRQ_NOPROBE |
> + IRQ_NOAUTOEN, 0);
> + if (!demux) {
> + pr_err("Failed to allocate virt irq demuxer struct\n");
> + return -ENOMEM;
> + }
> +
> + demux->domain = irq_domain_add_linear(node, BITS_PER_LONG,
> + &irq_virt_demux_domain_ops,
> + demux);
> + if (!demux->domain) {
> + ret = -ENOMEM;
> + goto err_free_demux;
> + }
> +
> + ret = irq_set_handler_data(irq, demux);
> + if (ret) {
> + pr_err("Failed to assign handler data\n");
> + goto err_free_domain;
> + }
> +
> + irq_set_chained_handler_nostartup(irq, irq_virt_demux_handler);
> +
> + return 0;
> +
> +err_free_domain:
> + irq_domain_remove(demux->domain);
> +
> +err_free_demux:
> + kfree(demux);
> +
> + return ret;
> +}
> +IRQCHIP_DECLARE(virt_irq_demux, "virtual,irq-demux", virt_irq_demux_of_init);
As mentioned on the DT binding patch, I really don't think this should
be in the DT. It corresponds only to Linux internal details, not a piece
of hardware. If we need this internally, I don't see why it can't be
instanciated as required.
If we _must_ have this in the DT, I have concerns with the binding
w.r.t. the "irqs" property being a 32-bit bitmask (as opposed to say
being something like "num-irqs" which could be far larger, and is
easuier to read).
Thanks,
Mark.
next prev parent reply other threads:[~2015-02-10 15:48 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
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 ` Mark Rutland [this message]
2015-02-10 15:48 ` [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation 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=20150210154838.GG9432@leverpostej \
--to=mark.rutland@arm.com \
--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.