2022-12-16 23:34:21

by Florian Fainelli

[permalink] [raw]
Subject: [PATCH 0/2] Couple of Broadcom L2 driver fixes

This small patch series ensures that IRQ_LEVEL is set for level
triggered interupts in both the irq-bcm7120-l2 and the irq-brcmstb-l2
driver.

Thanks

Florian Fainelli (2):
irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts

drivers/irqchip/irq-bcm7120-l2.c | 3 ++-
drivers/irqchip/irq-brcmstb-l2.c | 6 +++++-
2 files changed, 7 insertions(+), 2 deletions(-)

--
2.34.1


2022-12-17 00:01:31

by Florian Fainelli

[permalink] [raw]
Subject: [PATCH 1/2] irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts

When support for the level triggered interrupt controller flavor was
added with c0ca7262088e, we forgot to update the flags to be set to
contain IRQ_LEVEL. While the flow handler is correct, the output from
/proc/interrupts does not show such interrupts as being level triggered
when they are, correct that.

Fixes: c0ca7262088e ("irqchip/brcmstb-l2: Add support for the BCM7271 L2 controller")
Signed-off-by: Florian Fainelli <[email protected]>
---
drivers/irqchip/irq-brcmstb-l2.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-brcmstb-l2.c b/drivers/irqchip/irq-brcmstb-l2.c
index e4efc08ac594..091b0fe7e324 100644
--- a/drivers/irqchip/irq-brcmstb-l2.c
+++ b/drivers/irqchip/irq-brcmstb-l2.c
@@ -161,6 +161,7 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
*init_params)
{
unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
+ unsigned int set = 0;
struct brcmstb_l2_intc_data *data;
struct irq_chip_type *ct;
int ret;
@@ -208,9 +209,12 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))
flags |= IRQ_GC_BE_IO;

+ if (init_params->handler == handle_level_irq)
+ set |= IRQ_LEVEL;
+
/* Allocate a single Generic IRQ chip for this node */
ret = irq_alloc_domain_generic_chips(data->domain, 32, 1,
- np->full_name, init_params->handler, clr, 0, flags);
+ np->full_name, init_params->handler, clr, set, flags);
if (ret) {
pr_err("failed to allocate generic irq chip\n");
goto out_free_domain;
--
2.34.1

2022-12-17 00:03:28

by Florian Fainelli

[permalink] [raw]
Subject: [PATCH 2/2] irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts

When support for the interrupt controller was added with a5042de2688d,
we forgot to update the flags to be set to contain IRQ_LEVEL. While the
flow handler is correct, the output from /proc/interrupts does not show
such interrupts as being level triggered when they are, correct that.

Fixes: a5042de2688d ("irqchip: bcm7120-l2: Add Broadcom BCM7120-style Level 2 interrupt controller")
Signed-off-by: Florian Fainelli <[email protected]>
---
drivers/irqchip/irq-bcm7120-l2.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm7120-l2.c b/drivers/irqchip/irq-bcm7120-l2.c
index bb6609cebdbc..1e9dab6e0d86 100644
--- a/drivers/irqchip/irq-bcm7120-l2.c
+++ b/drivers/irqchip/irq-bcm7120-l2.c
@@ -279,7 +279,8 @@ static int __init bcm7120_l2_intc_probe(struct device_node *dn,
flags |= IRQ_GC_BE_IO;

ret = irq_alloc_domain_generic_chips(data->domain, IRQS_PER_WORD, 1,
- dn->full_name, handle_level_irq, clr, 0, flags);
+ dn->full_name, handle_level_irq, clr,
+ IRQ_LEVEL, flags);
if (ret) {
pr_err("failed to allocate generic irq chip\n");
goto out_free_domain;
--
2.34.1

2022-12-17 18:56:58

by Philippe Mathieu-Daudé

[permalink] [raw]
Subject: Re: [PATCH 0/2] Couple of Broadcom L2 driver fixes

On 17/12/22 00:09, Florian Fainelli wrote:
> This small patch series ensures that IRQ_LEVEL is set for level
> triggered interupts in both the irq-bcm7120-l2 and the irq-brcmstb-l2
> driver.
>
> Thanks
>
> Florian Fainelli (2):
> irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
> irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts

Series:
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>

2023-01-26 00:10:14

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH 0/2] Couple of Broadcom L2 driver fixes



On 12/16/2022 3:09 PM, Florian Fainelli wrote:
> This small patch series ensures that IRQ_LEVEL is set for level
> triggered interupts in both the irq-bcm7120-l2 and the irq-brcmstb-l2
> driver.
>
> Thanks

Ping?

>
> Florian Fainelli (2):
> irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
> irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
>
> drivers/irqchip/irq-bcm7120-l2.c | 3 ++-
> drivers/irqchip/irq-brcmstb-l2.c | 6 +++++-
> 2 files changed, 7 insertions(+), 2 deletions(-)
>

--
Florian

2023-02-14 23:24:02

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH 0/2] Couple of Broadcom L2 driver fixes

On 1/25/23 16:10, Florian Fainelli wrote:
>
>
> On 12/16/2022 3:09 PM, Florian Fainelli wrote:
>> This small patch series ensures that IRQ_LEVEL is set for level
>> triggered interupts in both the irq-bcm7120-l2 and the irq-brcmstb-l2
>> driver.
>>
>> Thanks
>
> Ping?

Marc, any chance to apply these two patches? Thanks
--
Florian


2023-02-18 14:28:40

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [irqchip: irq/irqchip-next] irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts

The following commit has been merged into the irq/irqchip-next branch of irqchip:

Commit-ID: 94debe03e8afa1267f95a9001786a6aa506b9ff3
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/94debe03e8afa1267f95a9001786a6aa506b9ff3
Author: Florian Fainelli <[email protected]>
AuthorDate: Fri, 16 Dec 2022 15:09:33 -08:00
Committer: Marc Zyngier <[email protected]>
CommitterDate: Sat, 18 Feb 2023 14:23:41

irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts

When support for the level triggered interrupt controller flavor was
added with c0ca7262088e, we forgot to update the flags to be set to
contain IRQ_LEVEL. While the flow handler is correct, the output from
/proc/interrupts does not show such interrupts as being level triggered
when they are, correct that.

Fixes: c0ca7262088e ("irqchip/brcmstb-l2: Add support for the BCM7271 L2 controller")
Signed-off-by: Florian Fainelli <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
drivers/irqchip/irq-brcmstb-l2.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-brcmstb-l2.c b/drivers/irqchip/irq-brcmstb-l2.c
index e4efc08..091b0fe 100644
--- a/drivers/irqchip/irq-brcmstb-l2.c
+++ b/drivers/irqchip/irq-brcmstb-l2.c
@@ -161,6 +161,7 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
*init_params)
{
unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
+ unsigned int set = 0;
struct brcmstb_l2_intc_data *data;
struct irq_chip_type *ct;
int ret;
@@ -208,9 +209,12 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))
flags |= IRQ_GC_BE_IO;

+ if (init_params->handler == handle_level_irq)
+ set |= IRQ_LEVEL;
+
/* Allocate a single Generic IRQ chip for this node */
ret = irq_alloc_domain_generic_chips(data->domain, 32, 1,
- np->full_name, init_params->handler, clr, 0, flags);
+ np->full_name, init_params->handler, clr, set, flags);
if (ret) {
pr_err("failed to allocate generic irq chip\n");
goto out_free_domain;

2023-02-18 14:28:50

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [irqchip: irq/irqchip-next] irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts

The following commit has been merged into the irq/irqchip-next branch of irqchip:

Commit-ID: 13a157b38ca5b4f9eed81442b8821db293755961
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/13a157b38ca5b4f9eed81442b8821db293755961
Author: Florian Fainelli <[email protected]>
AuthorDate: Fri, 16 Dec 2022 15:09:34 -08:00
Committer: Marc Zyngier <[email protected]>
CommitterDate: Sat, 18 Feb 2023 14:23:41

irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts

When support for the interrupt controller was added with a5042de2688d,
we forgot to update the flags to be set to contain IRQ_LEVEL. While the
flow handler is correct, the output from /proc/interrupts does not show
such interrupts as being level triggered when they are, correct that.

Fixes: a5042de2688d ("irqchip: bcm7120-l2: Add Broadcom BCM7120-style Level 2 interrupt controller")
Signed-off-by: Florian Fainelli <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
drivers/irqchip/irq-bcm7120-l2.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm7120-l2.c b/drivers/irqchip/irq-bcm7120-l2.c
index bb6609c..1e9dab6 100644
--- a/drivers/irqchip/irq-bcm7120-l2.c
+++ b/drivers/irqchip/irq-bcm7120-l2.c
@@ -279,7 +279,8 @@ static int __init bcm7120_l2_intc_probe(struct device_node *dn,
flags |= IRQ_GC_BE_IO;

ret = irq_alloc_domain_generic_chips(data->domain, IRQS_PER_WORD, 1,
- dn->full_name, handle_level_irq, clr, 0, flags);
+ dn->full_name, handle_level_irq, clr,
+ IRQ_LEVEL, flags);
if (ret) {
pr_err("failed to allocate generic irq chip\n");
goto out_free_domain;