Re: [RFC PATCH v3] irqchip: Add support for Tango interrupt controller

2 messages, 2 authors, 2016-01-22 · open the first message on its own page

Re: [RFC PATCH v3] irqchip: Add support for Tango interrupt controller

From: Måns Rullgård <hidden>
Date: 2016-01-22 16:35:14

Marc Gonzalez [off-list ref] writes:
On 20/01/2016 19:09, M?ns Rullg?rd wrote:
quoted
Marc Gonzalez [off-list ref] writes:
quoted
On 20/01/2016 17:38, M?ns Rullg?rd wrote:
quoted
Marc Gonzalez [off-list ref] writes:
quoted
On 20/01/2016 17:25, M?ns Rullg?rd wrote:
quoted
Marc Zyngier [off-list ref] writes:
quoted
On 20/01/16 16:10, M?ns Rullg?rd wrote:
quoted
Marc Zyngier [off-list ref] writes:
quoted
quoted
+	if (of_property_read_u32(node, "reg", &ctl))
+		panic("%s: failed to get reg base", node->name);
+
+	chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+	chip->ctl = ctl;
+	chip->base = base;
As I said before, this assumes the outer DT node uses a ranges
property.  Normally reg properties work the same whether they specify an
offset within an outer "ranges" or have a full address directly.  It
would be easy enough to make this work with either, so I don't see any
reason not to.
Yup, that is a good point. I guess Marc can address this in the next
round, since we need a DT binding anyway.
I'd suggest using of_address_to_resource() on both nodes and subtracting
the start addresses returned.
For my own reference, Marc Zyngier suggested:
"you should use of_iomap to map the child nodes, and not mess with
the parent one."
That's going to get very messy since the generic irqchip code needs all
the registers as offsets from a common base address.
The two suggestions are over my head at the moment.

Do you want to submit v4 and have Marc Z take a look?
Done.  If this isn't acceptable either, I'm out of ideas that don't end
up being far uglier than anything suggested so far.
With your latest patch, can I drop the ranges property?
Why would you want to do that?

-- 
M?ns Rullg?rd

Re: [RFC PATCH v3] irqchip: Add support for Tango interrupt controller

From: Marc Gonzalez <hidden>
Date: 2016-01-22 16:37:41

On 22/01/2016 17:35, M?ns Rullg?rd wrote:
Marc Gonzalez [off-list ref] writes:
quoted
On 20/01/2016 19:09, M?ns Rullg?rd wrote:
quoted
Marc Gonzalez [off-list ref] writes:
quoted
On 20/01/2016 17:38, M?ns Rullg?rd wrote:
quoted
Marc Gonzalez [off-list ref] writes:
quoted
On 20/01/2016 17:25, M?ns Rullg?rd wrote:
quoted
Marc Zyngier [off-list ref] writes:
quoted
On 20/01/16 16:10, M?ns Rullg?rd wrote:
quoted
Marc Zyngier [off-list ref] writes:
quoted
quoted
+	if (of_property_read_u32(node, "reg", &ctl))
+		panic("%s: failed to get reg base", node->name);
+
+	chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+	chip->ctl = ctl;
+	chip->base = base;
As I said before, this assumes the outer DT node uses a ranges
property.  Normally reg properties work the same whether they specify an
offset within an outer "ranges" or have a full address directly.  It
would be easy enough to make this work with either, so I don't see any
reason not to.
Yup, that is a good point. I guess Marc can address this in the next
round, since we need a DT binding anyway.
I'd suggest using of_address_to_resource() on both nodes and subtracting
the start addresses returned.
For my own reference, Marc Zyngier suggested:
"you should use of_iomap to map the child nodes, and not mess with
the parent one."
That's going to get very messy since the generic irqchip code needs all
the registers as offsets from a common base address.
The two suggestions are over my head at the moment.

Do you want to submit v4 and have Marc Z take a look?
Done.  If this isn't acceptable either, I'm out of ideas that don't end
up being far uglier than anything suggested so far.
With your latest patch, can I drop the ranges property?
Why would you want to do that?
<confused> I thought that was the whole point of the v4 improvement?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help