mtd: rawnand: lpc32xx_mlc: fix irq handler prototype
authorArnd Bergmann <arnd@arndb.de>
Tue, 13 Feb 2024 10:00:09 +0000 (11:00 +0100)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 26 Feb 2024 10:36:19 +0000 (11:36 +0100)
clang-16 warns about mismatched function prototypes:

drivers/mtd/nand/raw/lpc32xx_mlc.c:783:29: error: cast from 'irqreturn_t (*)(int, struct lpc32xx_nand_host *)' (aka 'enum irqreturn (*)(int, struct lpc32xx_nand_host *)') to 'irq_handler_t' (aka 'enum irqreturn (*)(int, void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]

Change the interrupt handler to the normal way of just passing
a void* pointer and converting it inside the function..

Fixes: 70f7cb78ec53 ("mtd: add LPC32xx MLC NAND driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20240213100146.455811-1-arnd@kernel.org
drivers/mtd/nand/raw/lpc32xx_mlc.c

index 488fd452611a66ea70afa3023d1d95cacfdad478..677fcb03f9bef14a9717543c221d188ea7dfedc3 100644 (file)
@@ -303,8 +303,9 @@ static int lpc32xx_nand_device_ready(struct nand_chip *nand_chip)
        return 0;
 }
 
-static irqreturn_t lpc3xxx_nand_irq(int irq, struct lpc32xx_nand_host *host)
+static irqreturn_t lpc3xxx_nand_irq(int irq, void *data)
 {
+       struct lpc32xx_nand_host *host = data;
        uint8_t sr;
 
        /* Clear interrupt flag by reading status */
@@ -780,7 +781,7 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
                goto release_dma_chan;
        }
 
-       if (request_irq(host->irq, (irq_handler_t)&lpc3xxx_nand_irq,
+       if (request_irq(host->irq, &lpc3xxx_nand_irq,
                        IRQF_TRIGGER_HIGH, DRV_NAME, host)) {
                dev_err(&pdev->dev, "Error requesting NAND IRQ\n");
                res = -ENXIO;