]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
can: rcar_canfd: Enhance multi_channel_irqs handling
authorBiju Das <biju.das.jz@bp.renesas.com>
Thu, 17 Apr 2025 05:43:19 +0000 (06:43 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 21 May 2025 12:31:26 +0000 (14:31 +0200)
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>
Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://patch.msgid.link/20250417054320.14100-19-biju.das.jz@bp.renesas.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/rcar/rcar_canfd.c

index 0bf0e88dfe257714607071c27a4d8e99eda546bf..6a9c970364cb09b9201e636f35d906ab3ac70f45 100644 (file)
@@ -1857,16 +1857,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, 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, sizeof(name), "ch%u_trx", ch);
+               tx_irq = platform_get_irq_byname(pdev, name);
                if (tx_irq < 0) {
                        err = tx_irq;
                        goto fail;