diff mbox series

[v7,17/18] can: rcar_canfd: Enhance multi_channel_irqs handling

Message ID 20250326122003.122976-18-biju.das.jz@bp.renesas.com (mailing list archive)
State New
Delegated to: Geert Uytterhoeven
Headers show
Series Add support for RZ/G3E CANFD | expand

Commit Message

Biju Das March 26, 2025, 12:19 p.m. UTC
Currently multi_channel_irqs has only 2 channels. But RZ/G3E has six
channels. Enhance multi_channel_irqs handling to support more than two
channels.

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v6->v7:
 * No change.
v5->v6:
 * No change.
v4->v5:
 * Collected tag.
v3->v4:
 * No change.
v2->v3:
 * No change.
v1->v2:
 * No change.
---
 drivers/net/can/rcar/rcar_canfd.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Vincent Mailhol March 28, 2025, 3:27 p.m. UTC | #1
On 26/03/2025 at 21:19, Biju Das wrote:
> Currently multi_channel_irqs has only 2 channels. But RZ/G3E has six
> channels. Enhance multi_channel_irqs handling to support more than two
> channels.
> 
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>

With below nitpicks addressed:

Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>

> ---
> v6->v7:
>  * No change.
> v5->v6:
>  * No change.
> v4->v5:
>  * Collected tag.
> v3->v4:
>  * No change.
> v2->v3:
>  * No change.
> v1->v2:
>  * No change.
> ---
>  drivers/net/can/rcar/rcar_canfd.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
> index 7ad27087a176..91f5649078c6 100644
> --- a/drivers/net/can/rcar/rcar_canfd.c
> +++ b/drivers/net/can/rcar/rcar_canfd.c
> @@ -1851,16 +1851,19 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
>  
>  	if (info->multi_channel_irqs) {
>  		char *irq_name;
> +		char name[10];
>  		int err_irq;
>  		int tx_irq;
>  
> -		err_irq = platform_get_irq_byname(pdev, ch == 0 ? "ch0_err" : "ch1_err");
> +		scnprintf(name, 10, "ch%u_err", ch);

		scnprintf(name, sizeof(name), "ch%u_err", ch);

> +		err_irq = platform_get_irq_byname(pdev, name);
>  		if (err_irq < 0) {
>  			err = err_irq;
>  			goto fail;
>  		}
>  
> -		tx_irq = platform_get_irq_byname(pdev, ch == 0 ? "ch0_trx" : "ch1_trx");
> +		scnprintf(name, 10, "ch%u_trx", ch);

		scnprintf(name, sizeof(name), "ch%u_trx", ch);

> +		tx_irq = platform_get_irq_byname(pdev, name);
>  		if (tx_irq < 0) {
>  			err = tx_irq;
>  			goto fail;

Yours sincerely,
Vincent Mailhol
diff mbox series

Patch

diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index 7ad27087a176..91f5649078c6 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -1851,16 +1851,19 @@  static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
 
 	if (info->multi_channel_irqs) {
 		char *irq_name;
+		char name[10];
 		int err_irq;
 		int tx_irq;
 
-		err_irq = platform_get_irq_byname(pdev, ch == 0 ? "ch0_err" : "ch1_err");
+		scnprintf(name, 10, "ch%u_err", ch);
+		err_irq = platform_get_irq_byname(pdev, name);
 		if (err_irq < 0) {
 			err = err_irq;
 			goto fail;
 		}
 
-		tx_irq = platform_get_irq_byname(pdev, ch == 0 ? "ch0_trx" : "ch1_trx");
+		scnprintf(name, 10, "ch%u_trx", ch);
+		tx_irq = platform_get_irq_byname(pdev, name);
 		if (tx_irq < 0) {
 			err = tx_irq;
 			goto fail;