* [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration
@ 2025-08-26 1:09 Chen Wang
2025-08-26 1:09 ` [PATCH v2 1/3] " Chen Wang
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Chen Wang @ 2025-08-26 1:09 UTC (permalink / raw)
To: u.kleine-koenig, aou, unicorn_wang, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, tglx, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
From: Chen Wang <unicorn_wang@outlook.com>
The original MSI interrupt type was hard-coded, which was not a good idea.
Now it is changed to read the device tree configuration and then set the
interrupt type.
This patchset is based on irq/drivers branch of tip.
---
Changes in v2:
The patch series is based on irq/drivers branch of tip.
Reverted the change to obtain params of "msi-ranges"; it's better not to
assume the value of "#interrupt-cells" is 2, even though it's known to be
the case. Thanks to Inochi for the comments.
Changes in v1:
The patch series is based on irq/drivers branch of tip. You can simply review
or test the patches at the link [1].
Link: https://lore.kernel.org/linux-riscv/cover.1756103516.git.unicorn_wang@outlook.com/ [1]
---
Chen Wang (3):
irqchip/sg2042-msi: Set irq type according to DT configuration
riscv: sophgo: dts: sg2042: change msi irq type to
IRQ_TYPE_EDGE_RISING
riscv: sophgo: dts: sg2044: change msi irq type to
IRQ_TYPE_EDGE_RISING
arch/riscv/boot/dts/sophgo/sg2042.dtsi | 2 +-
arch/riscv/boot/dts/sophgo/sg2044.dtsi | 2 +-
drivers/irqchip/irq-sg2042-msi.c | 7 +++++--
3 files changed, 7 insertions(+), 4 deletions(-)
base-commit: 8ff1c16c753e293c3ba20583cb64f81ea7b9a451
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/3] irqchip/sg2042-msi: Set irq type according to DT configuration
2025-08-26 1:09 [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Chen Wang
@ 2025-08-26 1:09 ` Chen Wang
2025-09-02 13:11 ` Thomas Gleixner
2025-08-26 1:09 ` [PATCH v2 2/3] riscv: sophgo: dts: sg2042: change msi irq type to IRQ_TYPE_EDGE_RISING Chen Wang
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Chen Wang @ 2025-08-26 1:09 UTC (permalink / raw)
To: u.kleine-koenig, aou, unicorn_wang, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, tglx, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
From: Chen Wang <unicorn_wang@outlook.com>
The original MSI interrupt type was hard-coded, which was not a good idea.
Now it is changed to read the device tree configuration and then set the
interrupt type.
Signed-off-by: Chen Wang <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 3b13dbbfdb51..f7cf0dc72eab 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);
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/3] riscv: sophgo: dts: sg2042: change msi irq type to IRQ_TYPE_EDGE_RISING
2025-08-26 1:09 [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Chen Wang
2025-08-26 1:09 ` [PATCH v2 1/3] " Chen Wang
@ 2025-08-26 1:09 ` Chen Wang
2025-08-26 1:10 ` [PATCH v2 3/3] riscv: sophgo: dts: sg2044: " Chen Wang
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Chen Wang @ 2025-08-26 1:09 UTC (permalink / raw)
To: u.kleine-koenig, aou, unicorn_wang, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, tglx, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
From: Chen Wang <unicorn_wang@outlook.com>
The latest MSI driver will read the DTS configuration to set the IRQ type,
so correct the IRQ type in the DTS to the correct value.
This field in the DTS was not used before.
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
---
arch/riscv/boot/dts/sophgo/sg2042.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/riscv/boot/dts/sophgo/sg2042.dtsi b/arch/riscv/boot/dts/sophgo/sg2042.dtsi
index b3e4d3c18fdc..6430c6e25c00 100644
--- a/arch/riscv/boot/dts/sophgo/sg2042.dtsi
+++ b/arch/riscv/boot/dts/sophgo/sg2042.dtsi
@@ -190,7 +190,7 @@ msi: msi-controller@7030010304 {
reg-names = "clr", "doorbell";
msi-controller;
#msi-cells = <0>;
- msi-ranges = <&intc 64 IRQ_TYPE_LEVEL_HIGH 32>;
+ msi-ranges = <&intc 64 IRQ_TYPE_EDGE_RISING 32>;
};
rpgate: clock-controller@7030010368 {
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 3/3] riscv: sophgo: dts: sg2044: change msi irq type to IRQ_TYPE_EDGE_RISING
2025-08-26 1:09 [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Chen Wang
2025-08-26 1:09 ` [PATCH v2 1/3] " Chen Wang
2025-08-26 1:09 ` [PATCH v2 2/3] riscv: sophgo: dts: sg2042: change msi irq type to IRQ_TYPE_EDGE_RISING Chen Wang
@ 2025-08-26 1:10 ` Chen Wang
2025-09-01 22:16 ` [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Inochi Amaoto
2025-09-01 23:59 ` Chen Wang
4 siblings, 0 replies; 9+ messages in thread
From: Chen Wang @ 2025-08-26 1:10 UTC (permalink / raw)
To: u.kleine-koenig, aou, unicorn_wang, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, tglx, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
From: Chen Wang <unicorn_wang@outlook.com>
The latest MSI driver will read the DTS configuration to set the IRQ type,
so correct the IRQ type in the DTS to the correct value.
This field in the DTS was not used before.
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
---
arch/riscv/boot/dts/sophgo/sg2044.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/riscv/boot/dts/sophgo/sg2044.dtsi b/arch/riscv/boot/dts/sophgo/sg2044.dtsi
index 6ec955744b0c..320c4d1d08e6 100644
--- a/arch/riscv/boot/dts/sophgo/sg2044.dtsi
+++ b/arch/riscv/boot/dts/sophgo/sg2044.dtsi
@@ -214,7 +214,7 @@ msi: msi-controller@6d50000000 {
reg-names = "clr", "doorbell";
#msi-cells = <0>;
msi-controller;
- msi-ranges = <&intc 352 IRQ_TYPE_LEVEL_HIGH 512>;
+ msi-ranges = <&intc 352 IRQ_TYPE_EDGE_RISING 512>;
status = "disabled";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration
2025-08-26 1:09 [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Chen Wang
` (2 preceding siblings ...)
2025-08-26 1:10 ` [PATCH v2 3/3] riscv: sophgo: dts: sg2044: " Chen Wang
@ 2025-09-01 22:16 ` Inochi Amaoto
2025-09-01 23:59 ` Chen Wang
4 siblings, 0 replies; 9+ messages in thread
From: Inochi Amaoto @ 2025-09-01 22:16 UTC (permalink / raw)
To: Chen Wang, u.kleine-koenig, aou, unicorn_wang, conor+dt,
inochiama, krzk+dt, looong.bin, palmer, paul.walmsley, robh, tglx,
sycamoremoon376, devicetree, linux-kernel, linux-riscv, sophgo
On Tue, Aug 26, 2025 at 09:09:13AM +0800, Chen Wang wrote:
> From: Chen Wang <unicorn_wang@outlook.com>
>
> The original MSI interrupt type was hard-coded, which was not a good idea.
> Now it is changed to read the device tree configuration and then set the
> interrupt type.
>
> This patchset is based on irq/drivers branch of tip.
>
> ---
>
> Changes in v2:
> The patch series is based on irq/drivers branch of tip.
>
> Reverted the change to obtain params of "msi-ranges"; it's better not to
> assume the value of "#interrupt-cells" is 2, even though it's known to be
> the case. Thanks to Inochi for the comments.
>
> Changes in v1:
> The patch series is based on irq/drivers branch of tip. You can simply review
> or test the patches at the link [1].
>
> Link: https://lore.kernel.org/linux-riscv/cover.1756103516.git.unicorn_wang@outlook.com/ [1]
> ---
>
> Chen Wang (3):
> irqchip/sg2042-msi: Set irq type according to DT configuration
> riscv: sophgo: dts: sg2042: change msi irq type to
> IRQ_TYPE_EDGE_RISING
> riscv: sophgo: dts: sg2044: change msi irq type to
> IRQ_TYPE_EDGE_RISING
>
> arch/riscv/boot/dts/sophgo/sg2042.dtsi | 2 +-
> arch/riscv/boot/dts/sophgo/sg2044.dtsi | 2 +-
> drivers/irqchip/irq-sg2042-msi.c | 7 +++++--
> 3 files changed, 7 insertions(+), 4 deletions(-)
>
>
> base-commit: 8ff1c16c753e293c3ba20583cb64f81ea7b9a451
> --
> 2.34.1
>
Tested-by: Inochi Amaoto <inochiama@gmail.com> # Sophgo SRD3-10
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration
2025-08-26 1:09 [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Chen Wang
` (3 preceding siblings ...)
2025-09-01 22:16 ` [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Inochi Amaoto
@ 2025-09-01 23:59 ` Chen Wang
2025-09-02 13:12 ` Thomas Gleixner
4 siblings, 1 reply; 9+ messages in thread
From: Chen Wang @ 2025-09-01 23:59 UTC (permalink / raw)
To: tglx
Cc: Chen Wang, u.kleine-koenig, aou, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
Hi, Thomas,
Would you please pick this patchset?
P.S. Since the modification of the DTS part is closely dependent on the
modification of the driver part, I am not sure whether you are willing
to pick these three patches together, or just pick the driver part and
leave the DTS part to me?
Thanks,
Chen
On 8/26/2025 9:09 AM, Chen Wang wrote:
> From: Chen Wang <unicorn_wang@outlook.com>
>
> The original MSI interrupt type was hard-coded, which was not a good idea.
> Now it is changed to read the device tree configuration and then set the
> interrupt type.
>
> This patchset is based on irq/drivers branch of tip.
>
> ---
>
> Changes in v2:
> The patch series is based on irq/drivers branch of tip.
>
> Reverted the change to obtain params of "msi-ranges"; it's better not to
> assume the value of "#interrupt-cells" is 2, even though it's known to be
> the case. Thanks to Inochi for the comments.
>
> Changes in v1:
> The patch series is based on irq/drivers branch of tip. You can simply review
> or test the patches at the link [1].
>
> Link: https://lore.kernel.org/linux-riscv/cover.1756103516.git.unicorn_wang@outlook.com/ [1]
> ---
>
> Chen Wang (3):
> irqchip/sg2042-msi: Set irq type according to DT configuration
> riscv: sophgo: dts: sg2042: change msi irq type to
> IRQ_TYPE_EDGE_RISING
> riscv: sophgo: dts: sg2044: change msi irq type to
> IRQ_TYPE_EDGE_RISING
>
> arch/riscv/boot/dts/sophgo/sg2042.dtsi | 2 +-
> arch/riscv/boot/dts/sophgo/sg2044.dtsi | 2 +-
> drivers/irqchip/irq-sg2042-msi.c | 7 +++++--
> 3 files changed, 7 insertions(+), 4 deletions(-)
>
>
> base-commit: 8ff1c16c753e293c3ba20583cb64f81ea7b9a451
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] irqchip/sg2042-msi: Set irq type according to DT configuration
2025-08-26 1:09 ` [PATCH v2 1/3] " Chen Wang
@ 2025-09-02 13:11 ` Thomas Gleixner
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Gleixner @ 2025-09-02 13:11 UTC (permalink / raw)
To: Chen Wang, u.kleine-koenig, aou, unicorn_wang, conor+dt,
inochiama, krzk+dt, looong.bin, palmer, paul.walmsley, robh,
sycamoremoon376, devicetree, linux-kernel, linux-riscv, sophgo
On Tue, Aug 26 2025 at 09:09, Chen Wang wrote:
> From: Chen Wang <unicorn_wang@outlook.com>
>
> The original MSI interrupt type was hard-coded, which was not a good idea.
That's not really helpful, unless you explain WHY it's not a good
idea...
Also for correctness sake, you want to change the DTs first and not
after you changed the driver to read it from the stale device tree with
the wrong type.
Thanks,
tglx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration
2025-09-01 23:59 ` Chen Wang
@ 2025-09-02 13:12 ` Thomas Gleixner
2025-09-03 0:37 ` Chen Wang
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Gleixner @ 2025-09-02 13:12 UTC (permalink / raw)
To: Chen Wang
Cc: Chen Wang, u.kleine-koenig, aou, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
On Tue, Sep 02 2025 at 07:59, Chen Wang wrote:
Please don't top-post and trim your replies.
> P.S. Since the modification of the DTS part is closely dependent on the
> modification of the driver part, I am not sure whether you are willing
> to pick these three patches together, or just pick the driver part and
> leave the DTS part to me?
They need to go together in the right order obviously.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration
2025-09-02 13:12 ` Thomas Gleixner
@ 2025-09-03 0:37 ` Chen Wang
0 siblings, 0 replies; 9+ messages in thread
From: Chen Wang @ 2025-09-03 0:37 UTC (permalink / raw)
To: Thomas Gleixner
Cc: Chen Wang, u.kleine-koenig, aou, conor+dt, inochiama, krzk+dt,
looong.bin, palmer, paul.walmsley, robh, sycamoremoon376,
devicetree, linux-kernel, linux-riscv, sophgo
On 9/2/2025 9:12 PM, Thomas Gleixner wrote:
> On Tue, Sep 02 2025 at 07:59, Chen Wang wrote:
>
> Please don't top-post and trim your replies.
>
>> P.S. Since the modification of the DTS part is closely dependent on the
>> modification of the driver part, I am not sure whether you are willing
>> to pick these three patches together, or just pick the driver part and
>> leave the DTS part to me?
> They need to go together in the right order obviously.
OK, I'll adjust the order of the patches and repost a new version.
Thanks,
Chen
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-09-03 0:37 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-26 1:09 [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Chen Wang
2025-08-26 1:09 ` [PATCH v2 1/3] " Chen Wang
2025-09-02 13:11 ` Thomas Gleixner
2025-08-26 1:09 ` [PATCH v2 2/3] riscv: sophgo: dts: sg2042: change msi irq type to IRQ_TYPE_EDGE_RISING Chen Wang
2025-08-26 1:10 ` [PATCH v2 3/3] riscv: sophgo: dts: sg2044: " Chen Wang
2025-09-01 22:16 ` [PATCH v2 0/3] irqchip/sg2042-msi: Set irq type according to DT configuration Inochi Amaoto
2025-09-01 23:59 ` Chen Wang
2025-09-02 13:12 ` Thomas Gleixner
2025-09-03 0:37 ` Chen Wang
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).