[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <175699069345.1920.9646733302815230593.tip-bot2@tip-bot2>
Date: Thu, 04 Sep 2025 12:58:13 -0000
From: "tip-bot2 for Chen Wang" <tip-bot2@...utronix.de>
To: linux-tip-commits@...r.kernel.org
Cc: Chen Wang <unicorn_wang@...look.com>, Thomas Gleixner <tglx@...utronix.de>,
Inochi Amaoto <inochiama@...il.com>, x86@...nel.org,
linux-kernel@...r.kernel.org
Subject: [tip: irq/drivers] irqchip/sg2042-msi: Set irq type according to DT
configuration
The following commit has been merged into the irq/drivers branch of tip:
Commit-ID: c2616c5696e85efb2679499d7260f7766b93cff6
Gitweb: https://git.kernel.org/tip/c2616c5696e85efb2679499d7260f7766b93cff6
Author: Chen Wang <unicorn_wang@...look.com>
AuthorDate: Thu, 04 Sep 2025 11:01:19 +08:00
Committer: Thomas Gleixner <tglx@...utronix.de>
CommitterDate: Thu, 04 Sep 2025 14:52:48 +02:00
irqchip/sg2042-msi: Set irq type according to DT configuration
Read the device tree configuration and use it to set the interrupt type.
Signed-off-by: Chen Wang <unicorn_wang@...look.com>
Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
Tested-by: Inochi Amaoto <inochiama@...il.com> # Sophgo SRD3-10
Link: https://lore.kernel.org/all/b22d2b0a00a96161253435d17b3c66538f3ba1c2.1756953919.git.unicorn_wang@outlook.com
---
drivers/irqchip/irq-sg2042-msi.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/irqchip/irq-sg2042-msi.c b/drivers/irqchip/irq-sg2042-msi.c
index 3b13dbb..f7cf0dc 100644
--- a/drivers/irqchip/irq-sg2042-msi.c
+++ b/drivers/irqchip/irq-sg2042-msi.c
@@ -30,6 +30,7 @@ struct sg204x_msi_chip_info {
* @doorbell_addr: see TRM, 10.1.32, GP_INTR0_SET
* @irq_first: First vectors number that MSIs starts
* @num_irqs: Number of vectors for MSIs
+ * @irq_type: IRQ type for MSIs
* @msi_map: mapping for allocated MSI vectors.
* @msi_map_lock: Lock for msi_map
* @chip_info: chip specific infomations
@@ -41,6 +42,7 @@ struct sg204x_msi_chipdata {
u32 irq_first;
u32 num_irqs;
+ unsigned int irq_type;
unsigned long *msi_map;
struct mutex msi_map_lock;
@@ -137,14 +139,14 @@ static int sg204x_msi_parent_domain_alloc(struct irq_domain *domain, unsigned in
fwspec.fwnode = domain->parent->fwnode;
fwspec.param_count = 2;
fwspec.param[0] = data->irq_first + hwirq;
- fwspec.param[1] = IRQ_TYPE_EDGE_RISING;
+ fwspec.param[1] = data->irq_type;
ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec);
if (ret)
return ret;
d = irq_domain_get_irq_data(domain->parent, virq);
- return d->chip->irq_set_type(d, IRQ_TYPE_EDGE_RISING);
+ return d->chip->irq_set_type(d, data->irq_type);
}
static int sg204x_msi_middle_domain_alloc(struct irq_domain *domain, unsigned int virq,
@@ -298,6 +300,7 @@ static int sg2042_msi_probe(struct platform_device *pdev)
}
data->irq_first = (u32)args.args[0];
+ data->irq_type = (unsigned int)args.args[1];
data->num_irqs = (u32)args.args[args.nargs - 1];
mutex_init(&data->msi_map_lock);
Powered by blists - more mailing lists