From: Thomas Gleixner <tglx@linutronix.de>
To: Marc Zyngier <maz@kernel.org>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>,
Will Deacon <will@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Rob Herring <robh@kernel.org>,
Saravana Kannan <saravanak@google.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sven Peter <sven@kernel.org>, Janne Grunau <j@jannau.net>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
James Clark <james.clark@linaro.org>
Subject: Re: [PATCH 01/25] irqdomain: Add firmware info reporting interface
Date: Tue, 09 Sep 2025 11:18:01 +0200 [thread overview]
Message-ID: <87ikhsvvau.ffs@tglx> (raw)
In-Reply-To: <20250908163127.2462948-2-maz@kernel.org>
On Mon, Sep 08 2025 at 17:31, Marc Zyngier wrote:
> +/**
> + * struct irq_fwspec_info - firmware provided IRQ information structure
> + *
> + * @fwspec: IRQ specifier
s/IRQ/interrupt/g
> + * @cpumask: Affinity mask for this interrupt
> + * @flags: Information validity flags
> + *
> + * This structure reports firmware-specific information about an
> + * interrupt. The only significant information is the affinity of a
> + * per-CPU interrupt, but this is designed to be extended as required.
> + */
> +struct irq_fwspec_info {
> + struct irq_fwspec fwspec;
> + const struct cpumask *affinity;
> +
> +#define IRQ_FWSPEC_INFO_FWSPEC_VALID BIT(0)
> +#define IRQ_FWSPEC_INFO_AFFINITY_VALID BIT(1)
> +
> + unsigned long flags;
Can you please not stick the defines into the struct. That makes my eyes
bleed.
Also the ordering looks strange as flags should be before the fields it
validates for readability sake, no?
> +};
> +
> /* Conversion function from of_phandle_args fields to fwspec */
> void of_phandle_args_to_fwspec(struct device_node *np, const u32 *args,
> unsigned int count, struct irq_fwspec *fwspec);
> @@ -69,6 +90,8 @@ void of_phandle_args_to_fwspec(struct device_node *np, const u32 *args,
> * @translate: Given @fwspec, decode the hardware irq number (@out_hwirq) and
> * linux irq type value (@out_type). This is a generalised @xlate
> * (over struct irq_fwspec) and is preferred if provided.
> + * @get_info: Given @info, report additional firmware-provided information.
> + * Optional.
get_info() is pretty generic. Can we have some more descriptive name for
that? Also please keep the tabular formatting of the doc intact.
> * @debug_show: For domains to show specific data for an interrupt in debugfs.
> *
> * Functions below are provided by the driver and called whenever a new mapping
> @@ -96,6 +119,7 @@ struct irq_domain_ops {
> void (*deactivate)(struct irq_domain *d, struct irq_data *irq_data);
> int (*translate)(struct irq_domain *d, struct irq_fwspec *fwspec,
> unsigned long *out_hwirq, unsigned int *out_type);
> + int (*get_info)(struct irq_fwspec_info *info);
TAB between int and '(*'
> #endif
> #ifdef CONFIG_GENERIC_IRQ_DEBUGFS
> void (*debug_show)(struct seq_file *m, struct irq_domain *d,
> @@ -602,6 +626,8 @@ void irq_domain_free_irqs_parent(struct irq_domain *domain, unsigned int irq_bas
>
> int irq_domain_disconnect_hierarchy(struct irq_domain *domain, unsigned int virq);
>
> +int irq_populate_fwspec_info(struct irq_fwspec_info *info);
> +
> +
> +#ifdef CONFIG_IRQ_DOMAIN_HIERARCHY
Stray TAB
> +int irq_populate_fwspec_info(struct irq_fwspec_info *info)
> +{
> + struct irq_domain *domain;
> +
> + domain = fwspec_to_domain(&info->fwspec);
Just move that to the declaration line
> + if (!domain || !domain->ops->get_info) {
> + info->flags = 0;
> + return 0;
> + }
> +
> + return domain->ops->get_info(info);
> +}
> +#endif
> +
> +unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
> +{
> + struct irq_domain *domain;
> + struct irq_data *irq_data;
> + irq_hw_number_t hwirq;
> + unsigned int type = IRQ_TYPE_NONE;
I know you moved it from the original function, but can you please
reorder it in reverse fir tree order?
> + int virq;
> +
> + domain = fwspec_to_domain(fwspec);
> if (!domain) {
> pr_warn("no irq domain found for %s !\n",
> of_node_full_name(to_of_node(fwspec->fwnode)));
Thanks,
tglx
next prev parent reply other threads:[~2025-09-09 15:39 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-08 16:31 [PATCH 00/25] genirq: Add support for percpu_devid IRQ affinity Marc Zyngier
2025-09-08 16:31 ` [PATCH 01/25] irqdomain: Add firmware info reporting interface Marc Zyngier
2025-09-09 9:18 ` Thomas Gleixner [this message]
2025-09-09 9:24 ` Thomas Gleixner
2025-09-11 14:13 ` Marc Zyngier
2025-09-11 15:49 ` Thomas Gleixner
2025-09-08 16:31 ` [PATCH 02/25] ACPI: irq: Add IRQ affinity " Marc Zyngier
2025-09-08 17:20 ` Rafael J. Wysocki
2025-09-08 16:31 ` [PATCH 03/25] of/irq: " Marc Zyngier
2025-09-08 16:31 ` [PATCH 04/25] platform: Add firmware-agnostic irq and affinity retrieval interface Marc Zyngier
2025-09-08 16:31 ` [PATCH 05/25] irqchip/gic-v3: Add FW info retrieval support Marc Zyngier
2025-09-09 9:37 ` Thomas Gleixner
2025-09-08 16:31 ` [PATCH 06/25] irqchip/apple-aic: " Marc Zyngier
2025-09-08 16:31 ` [PATCH 07/25] coresight: trbe: Convert to new IRQ affinity retrieval API Marc Zyngier
2025-09-08 16:31 ` [PATCH 08/25] perf: arm_pmu: " Marc Zyngier
2025-09-08 16:31 ` [PATCH 09/25] perf: arm_spe_pmu: " Marc Zyngier
2025-09-08 16:31 ` [PATCH 10/25] perf: arm_pmu: Add PMU/CPU affinity tracking Marc Zyngier
2025-09-08 16:31 ` [PATCH 11/25] genirq: Merge irqaction::{dev_id,percpu_dev_id} Marc Zyngier
2025-09-08 16:31 ` [PATCH 12/25] genirq: Factor-in percpu irqaction creation Marc Zyngier
2025-09-09 9:41 ` Thomas Gleixner
2025-09-08 16:31 ` [PATCH 13/25] genirq: Add affinity to percpu_devid interrupt requests Marc Zyngier
2025-09-08 16:31 ` [PATCH 14/25] genirq: Update request_percpu_nmi() to take an affinity Marc Zyngier
2025-09-09 9:45 ` Thomas Gleixner
2025-09-09 11:21 ` Marc Zyngier
2025-09-08 16:31 ` [PATCH 15/25] genirq: Allow per-cpu interrupt sharing for non-overlapping affinities Marc Zyngier
2025-09-10 8:28 ` Marc Zyngier
2025-09-10 14:47 ` Thomas Gleixner
2025-09-10 15:44 ` Marc Zyngier
2025-09-08 16:31 ` [PATCH 16/25] genirq: Add request_percpu_irq_affinity() helper Marc Zyngier
2025-09-08 16:31 ` [PATCH 17/25] perf: arm_pmu: Use a backend-specific pointer for percpu interrupt request Marc Zyngier
2025-09-08 16:31 ` [PATCH 18/25] perf: arm_pmu: Request specific affinities for percpu NMI/IRQ Marc Zyngier
2025-09-08 16:31 ` [PATCH 19/25] perf: arm_spe_pmu: Request specific affinities for percpu IRQ Marc Zyngier
2025-09-08 16:31 ` [PATCH 20/25] coresight: trbe: " Marc Zyngier
2025-09-08 16:31 ` [PATCH 21/25] irqchip/gic-v3: Drop support for custom PPI partitions Marc Zyngier
2025-09-08 16:31 ` [PATCH 22/25] irqchip/apple-aic: Drop support for custom PMU irq partitions Marc Zyngier
2025-09-08 16:31 ` [PATCH 23/25] irqchip: Kill irq-partition-percpu Marc Zyngier
2025-09-08 16:31 ` [PATCH 24/25] genirq: Kill irq_{g,s}et_percpu_devid_partition() Marc Zyngier
2025-09-08 16:31 ` [PATCH 25/25] perf: arm_pmu: Kill last use of per-CPU cpu_armpmu pointer Marc Zyngier
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=87ikhsvvau.ffs@tglx \
--to=tglx@linutronix.de \
--cc=gregkh@linuxfoundation.org \
--cc=j@jannau.net \
--cc=james.clark@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=suzuki.poulose@arm.com \
--cc=sven@kernel.org \
--cc=will@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).