Re: [PATCH v2 05/25] irqchip/gic-v3: Add FW info retrieval support
From: Marc Zyngier <maz@kernel.org>
Date: 2025-09-16 15:59:58
Also in:
linux-acpi, lkml
On Tue, 16 Sep 2025 16:34:13 +0100, Jonathan Cameron [off-list ref] wrote:
On Mon, 15 Sep 2025 09:56:42 +0100 Marc Zyngier [off-list ref] wrote:quoted
Plug the new .get_info() callback into the GICv3 core driver, using some of the existing PPI affinity handling infrastructure. Signed-off-by: Marc Zyngier <maz@kernel.org>Hi Marc, Yet another trivial comment. It's one of those days it seems :)
No worries, your trivial comments are far more interesting than some of the emails I'm otherwise getting.. ;-)
quoted
--- drivers/irqchip/irq-gic-v3.c | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+)diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index dbeb85677b08c..71c278ddd1e39 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c@@ -69,6 +69,8 @@ struct gic_chip_data { bool has_rss; unsigned int ppi_nr; struct partition_desc **ppi_descs; + struct partition_affinity *parts; + unsigned int nr_parts; }; #define T241_CHIPS_MAX 4@@ -1796,11 +1798,58 @@ static int gic_irq_domain_select(struct irq_domain *d, return d == partition_get_domain(gic_data.ppi_descs[ppi_idx]); } +static int gic_irq_get_fwspec_info(struct irq_fwspec *fwspec, struct irq_fwspec_info *info) +{ + const struct cpumask *mask = NULL; + + info->flags = 0; + info->affinity = NULL; + + /* ACPI is not capable of describing PPI affinity -- yet */ + if (!is_of_node(fwspec->fwnode)) + return 0; + + /* If the specifier provides an affinity, use it */ + if (fwspec->param_count == 4 && fwspec->param[3]) { + struct fwnode_handle *fw; + + switch (fwspec->param[0]) { + case 1: /* PPI */ + case 3: /* EPPI */ + break; + default: + return 0; + } + + fw = of_node_to_fwnode(of_find_node_by_phandle(fwspec->param[3]));of_node_to_fwnode() has a note that says it'll be removed in the merge window. It was enough of an oddity I wondered why it existed.
Cargo culted, obviously. And yet another sign that I've been sitting on these patches for way too long...
Of course it did say it would be removed in the previous merge window and wasn't... Probably want of_fwnode_handle()
Thanks for the hint, I'll add that to v3. M. -- Without deviation from the norm, progress is not possible.