This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: sta2x11: fix irq handler cast
Author:  Arnd Bergmann <a...@arndb.de>
Date:    Tue Feb 13 10:54:47 2024 +0100

clang-16 warns about casting incompatible function pointers:

drivers/media/pci/sta2x11/sta2x11_vip.c:1057:6: error: cast from 'irqreturn_t 
(*)(int, struct sta2x11_vip *)' (aka 'enum irqreturn (*)(int, struct 
sta2x11_vip *)') to 'irq_handler_t' (aka 'enum irqreturn (*)(int, void *)') 
converts to incompatible function type [-Werror,-Wcast-function-type-strict]

Change the prototype of the irq handler to the regular version with a
local variable to adjust the argument type.

Signed-off-by: Arnd Bergmann <a...@arndb.de>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>
[hverkuil: update argument documentation]

 drivers/media/pci/sta2x11/sta2x11_vip.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

---

diff --git a/drivers/media/pci/sta2x11/sta2x11_vip.c 
b/drivers/media/pci/sta2x11/sta2x11_vip.c
index e4cf9d63e926..364ce9e57018 100644
--- a/drivers/media/pci/sta2x11/sta2x11_vip.c
+++ b/drivers/media/pci/sta2x11/sta2x11_vip.c
@@ -757,7 +757,7 @@ static const struct video_device video_dev_template = {
 /**
  * vip_irq - interrupt routine
  * @irq: Number of interrupt ( not used, correct number is assumed )
- * @vip: local data structure containing all information
+ * @data: local data structure containing all information
  *
  * check for both frame interrupts set ( top and bottom ).
  * check FIFO overflow, but limit number of log messages after open.
@@ -767,8 +767,9 @@ static const struct video_device video_dev_template = {
  *
  * IRQ_HANDLED, interrupt done.
  */
-static irqreturn_t vip_irq(int irq, struct sta2x11_vip *vip)
+static irqreturn_t vip_irq(int irq, void *data)
 {
+       struct sta2x11_vip *vip = data;
        unsigned int status;
 
        status = reg_read(vip, DVP_ITS);
@@ -1053,9 +1054,7 @@ static int sta2x11_vip_init_one(struct pci_dev *pdev,
 
        spin_lock_init(&vip->slock);
 
-       ret = request_irq(pdev->irq,
-                         (irq_handler_t) vip_irq,
-                         IRQF_SHARED, KBUILD_MODNAME, vip);
+       ret = request_irq(pdev->irq, vip_irq, IRQF_SHARED, KBUILD_MODNAME, vip);
        if (ret) {
                dev_err(&pdev->dev, "request_irq failed\n");
                ret = -ENODEV;

Reply via email to