public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [sailus-media-tree:metadata 19/106] include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
@ 2026-03-20 11:00 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-03-20 11:00 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: oe-kbuild-all, linux-media

tree:   git://linuxtv.org/sailus/media_tree.git metadata
head:   7a108073e0c1f6e9035329a152d5835f9d4f9507
commit: bdc96b4bd0deb40af6350382e510ddfa0850d656 [19/106] media: v4l2-subdev: Add struct v4l2_subdev_client_info pointer to pad ops
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20260320/202603201843.dY5CTAVD-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260320/202603201843.dY5CTAVD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603201843.dY5CTAVD-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/media/v4l2-device.h:13,
                    from drivers/media/platform/renesas/renesas-ceu.c:36:
   drivers/media/platform/renesas/renesas-ceu.c: In function '__ceu_try_fmt':
   drivers/media/platform/renesas/renesas-ceu.c:844:55: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                       ^~~~~~~~~~
         |                                                       |
         |                                                       struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:55: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                       ^~~~~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:67: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                                   ^~~~~~~~~~
         |                                                                   |
         |                                                                   struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:67: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                                   ^~~~~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:15: note: in expansion of macro 'v4l2_subdev_call'
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:55: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                       ^~~~~~~~~~
         |                                                       |
         |                                                       struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:55: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                       ^~~~~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:67: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                                   ^~~~~~~~~~
         |                                                                   |
         |                                                                   struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:67: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |                                                                   ^~~~~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:844:15: note: in expansion of macro 'v4l2_subdev_call'
     844 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, &pad_state, &sd_format);
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:48: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     850 |                                                &pad_state, &sd_format);
         |                                                ^~~~~~~~~~
         |                                                |
         |                                                struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:48: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
     850 |                                                &pad_state, &sd_format);
         |                                                ^~~~~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:60: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     850 |                                                &pad_state, &sd_format);
         |                                                            ^~~~~~~~~~
         |                                                            |
         |                                                            struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:60: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     850 |                                                &pad_state, &sd_format);
         |                                                            ^~~~~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:849:31: note: in expansion of macro 'v4l2_subdev_call'
     849 |                         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt,
         |                               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:48: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     850 |                                                &pad_state, &sd_format);
         |                                                ^~~~~~~~~~
         |                                                |
         |                                                struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:48: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
     850 |                                                &pad_state, &sd_format);
         |                                                ^~~~~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:60: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     850 |                                                &pad_state, &sd_format);
         |                                                            ^~~~~~~~~~
         |                                                            |
         |                                                            struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:850:60: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     850 |                                                &pad_state, &sd_format);
         |                                                            ^~~~~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:849:31: note: in expansion of macro 'v4l2_subdev_call'
     849 |                         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt,
         |                               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c: In function 'ceu_set_fmt':
   drivers/media/platform/renesas/renesas-ceu.c:903:61: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     903 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, NULL, &format);
         |                                                             ^~~~~~~
         |                                                             |
         |                                                             struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:903:61: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     903 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, NULL, &format);
         |                                                             ^~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:903:15: note: in expansion of macro 'v4l2_subdev_call'
     903 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, NULL, &format);
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/renesas/renesas-ceu.c:903:61: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     903 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, NULL, &format);
         |                                                             ^~~~~~~
         |                                                             |
         |                                                             struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:903:61: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     903 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, NULL, &format);
         |                                                             ^~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   drivers/media/platform/renesas/renesas-ceu.c:903:15: note: in expansion of macro 'v4l2_subdev_call'
     903 |         ret = v4l2_subdev_call(v4l2_sd, pad, set_fmt, NULL, &format);
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
--
   In file included from drivers/media/platform/renesas/sh_vou.c:24:
   drivers/media/platform/renesas/sh_vou.c: In function 'sh_vou_set_fmt_vid_out':
>> drivers/media/platform/renesas/sh_vou.c:717:57: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     717 |                                          set_fmt, NULL, &format);
         |                                                         ^~~~~~~
         |                                                         |
         |                                                         struct v4l2_subdev_format *
   include/media/v4l2-device.h:356:58: note: in definition of macro '__v4l2_device_call_subdevs_until_err_p'
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                                          ^~~~
   drivers/media/platform/renesas/sh_vou.c:716:15: note: in expansion of macro 'v4l2_device_call_until_err'
     716 |         ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:717:57: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     717 |                                          set_fmt, NULL, &format);
         |                                                         ^~~~~~~
   include/media/v4l2-device.h:356:58: note: in definition of macro '__v4l2_device_call_subdevs_until_err_p'
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                                          ^~~~
   drivers/media/platform/renesas/sh_vou.c:716:15: note: in expansion of macro 'v4l2_device_call_until_err'
     716 |         ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-device.h:356:33: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                 ^
   include/media/v4l2-device.h:448:9: note: in expansion of macro '__v4l2_device_call_subdevs_until_err_p'
     448 |         __v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd,          \
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:716:15: note: in expansion of macro 'v4l2_device_call_until_err'
     716 |         ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/media/v4l2-device.h:13:
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/renesas/sh_vou.c: In function 'sh_vou_s_selection':
>> drivers/media/platform/renesas/sh_vou.c:977:57: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_selection' from incompatible pointer type [-Wincompatible-pointer-types]
     977 |                                    set_selection, NULL, &sd_sel);
         |                                                         ^~~~~~~
         |                                                         |
         |                                                         struct v4l2_subdev_selection *
   include/media/v4l2-device.h:356:58: note: in definition of macro '__v4l2_device_call_subdevs_until_err_p'
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                                          ^~~~
   drivers/media/platform/renesas/sh_vou.c:976:9: note: in expansion of macro 'v4l2_device_call_until_err'
     976 |         v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:977:57: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_selection *'
     977 |                                    set_selection, NULL, &sd_sel);
         |                                                         ^~~~~~~
   include/media/v4l2-device.h:356:58: note: in definition of macro '__v4l2_device_call_subdevs_until_err_p'
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                                          ^~~~
   drivers/media/platform/renesas/sh_vou.c:976:9: note: in expansion of macro 'v4l2_device_call_until_err'
     976 |         v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-device.h:356:33: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_selection'; expected 4, have 3
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                 ^
   include/media/v4l2-device.h:448:9: note: in expansion of macro '__v4l2_device_call_subdevs_until_err_p'
     448 |         __v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd,          \
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:976:9: note: in expansion of macro 'v4l2_device_call_until_err'
     976 |         v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:864:15: note: declared here
     864 |         int (*set_selection)(struct v4l2_subdev *sd,
         |               ^~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:981:57: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     981 |                                          set_fmt, NULL, &format);
         |                                                         ^~~~~~~
         |                                                         |
         |                                                         struct v4l2_subdev_format *
   include/media/v4l2-device.h:356:58: note: in definition of macro '__v4l2_device_call_subdevs_until_err_p'
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                                          ^~~~
   drivers/media/platform/renesas/sh_vou.c:980:15: note: in expansion of macro 'v4l2_device_call_until_err'
     980 |         ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:981:57: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     981 |                                          set_fmt, NULL, &format);
         |                                                         ^~~~~~~
   include/media/v4l2-device.h:356:58: note: in definition of macro '__v4l2_device_call_subdevs_until_err_p'
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                                          ^~~~
   drivers/media/platform/renesas/sh_vou.c:980:15: note: in expansion of macro 'v4l2_device_call_until_err'
     980 |         ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-device.h:356:33: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
     356 |                         __err = (sd)->ops->o->f((sd) , ##args);         \
         |                                 ^
   include/media/v4l2-device.h:448:9: note: in expansion of macro '__v4l2_device_call_subdevs_until_err_p'
     448 |         __v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd,          \
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/sh_vou.c:980:15: note: in expansion of macro 'v4l2_device_call_until_err'
     980 |         ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
--
   In file included from include/media/v4l2-device.h:13,
                    from drivers/media/platform/st/stm32/stm32-dcmi.c:33:
   drivers/media/platform/st/stm32/stm32-dcmi.c: In function 'dcmi_pipeline_s_fmt':
>> drivers/media/platform/st/stm32/stm32-dcmi.c:741:68: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     741 |                 ret = v4l2_subdev_call(subdev, pad, set_fmt, NULL, &fmt);
         |                                                                    ^~~~
         |                                                                    |
         |                                                                    struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:741:68: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     741 |                 ret = v4l2_subdev_call(subdev, pad, set_fmt, NULL, &fmt);
         |                                                                    ^~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:741:23: note: in expansion of macro 'v4l2_subdev_call'
     741 |                 ret = v4l2_subdev_call(subdev, pad, set_fmt, NULL, &fmt);
         |                       ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
>> drivers/media/platform/st/stm32/stm32-dcmi.c:741:68: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
     741 |                 ret = v4l2_subdev_call(subdev, pad, set_fmt, NULL, &fmt);
         |                                                                    ^~~~
         |                                                                    |
         |                                                                    struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:741:68: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
     741 |                 ret = v4l2_subdev_call(subdev, pad, set_fmt, NULL, &fmt);
         |                                                                    ^~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:741:23: note: in expansion of macro 'v4l2_subdev_call'
     741 |                 ret = v4l2_subdev_call(subdev, pad, set_fmt, NULL, &fmt);
         |                       ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c: In function 'dcmi_try_fmt':
>> include/media/v4l2-subdev.h:1998:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1998:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:70: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
         |                                                                      |
         |                                                                      struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:70: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1998:36: note: in expansion of macro 'v4l2_subdev_call'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                    ^~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
>> include/media/v4l2-subdev.h:1998:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1998:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:70: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
         |                                                                      |
         |                                                                      struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:70: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   include/media/v4l2-subdev.h:1998:36: note: in expansion of macro 'v4l2_subdev_call'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                    ^~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1066:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1066 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c: In function 'dcmi_get_sensor_format':
   drivers/media/platform/st/stm32/stm32-dcmi.c:1199:66: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->get_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1199 |         ret = v4l2_subdev_call(dcmi->source, pad, get_fmt, NULL, &fmt);
         |                                                                  ^~~~
         |                                                                  |
         |                                                                  struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1199:66: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
    1199 |         ret = v4l2_subdev_call(dcmi->source, pad, get_fmt, NULL, &fmt);
         |                                                                  ^~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->get_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1199:15: note: in expansion of macro 'v4l2_subdev_call'
    1199 |         ret = v4l2_subdev_call(dcmi->source, pad, get_fmt, NULL, &fmt);
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:852:15: note: declared here
     852 |         int (*get_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1199:66: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->get_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1199 |         ret = v4l2_subdev_call(dcmi->source, pad, get_fmt, NULL, &fmt);
         |                                                                  ^~~~
         |                                                                  |
         |                                                                  struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1199:66: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
    1199 |         ret = v4l2_subdev_call(dcmi->source, pad, get_fmt, NULL, &fmt);
         |                                                                  ^~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->get_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1199:15: note: in expansion of macro 'v4l2_subdev_call'
    1199 |         ret = v4l2_subdev_call(dcmi->source, pad, get_fmt, NULL, &fmt);
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:852:15: note: declared here
     852 |         int (*get_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c: In function 'dcmi_set_sensor_format':
>> include/media/v4l2-subdev.h:1998:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1998:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:70: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
         |                                                                      |
         |                                                                      struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:70: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1998:36: note: in expansion of macro 'v4l2_subdev_call'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                    ^~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
>> include/media/v4l2-subdev.h:1998:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1998:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:70: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
         |                                                                      |
         |                                                                      struct v4l2_subdev_format *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:70: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |                                                                      ^~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   include/media/v4l2-subdev.h:1998:36: note: in expansion of macro 'v4l2_subdev_call'
    1998 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                    ^~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1227:15: note: in expansion of macro 'v4l2_subdev_call_state_try'
    1227 |         ret = v4l2_subdev_call_state_try(dcmi->source, pad, set_fmt, &format);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:856:15: note: declared here
     856 |         int (*set_fmt)(struct v4l2_subdev *sd,
         |               ^~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c: In function 'dcmi_get_sensor_bounds':
   drivers/media/platform/st/stm32/stm32-dcmi.c:1250:38: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->get_selection' from incompatible pointer type [-Wincompatible-pointer-types]
    1250 |                                NULL, &bounds);
         |                                      ^~~~~~~
         |                                      |
         |                                      struct v4l2_subdev_selection *
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1250:38: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_selection *'
    1250 |                                NULL, &bounds);
         |                                      ^~~~~~~
   include/media/v4l2-subdev.h:1931:65: note: in definition of macro 'v4l2_subdev_call'
    1931 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->get_selection'; expected 4, have 3
    1930 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1249:15: note: in expansion of macro 'v4l2_subdev_call'
    1249 |         ret = v4l2_subdev_call(dcmi->source, pad, get_selection,
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:860:15: note: declared here
     860 |         int (*get_selection)(struct v4l2_subdev *sd,
         |               ^~~~~~~~~~~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1250:38: error: passing argument 3 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->get_selection' from incompatible pointer type [-Wincompatible-pointer-types]
    1250 |                                NULL, &bounds);
         |                                      ^~~~~~~
         |                                      |
         |                                      struct v4l2_subdev_selection *
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1250:38: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_selection *'
    1250 |                                NULL, &bounds);
         |                                      ^~~~~~~
   include/media/v4l2-subdev.h:1933:60: note: in definition of macro 'v4l2_subdev_call'
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   include/media/v4l2-subdev.h:1933:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->get_selection'; expected 4, have 3
    1933 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   drivers/media/platform/st/stm32/stm32-dcmi.c:1249:15: note: in expansion of macro 'v4l2_subdev_call'
    1249 |         ret = v4l2_subdev_call(dcmi->source, pad, get_selection,
         |               ^~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:860:15: note: declared here
     860 |         int (*get_selection)(struct v4l2_subdev *sd,
         |               ^~~~~~~~~~~~~
..


vim +1930 include/media/v4l2-subdev.h

a8fa55078a7784 Janusz Krzysztofik    2019-05-20  1906  
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1907  /**
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1908   * v4l2_subdev_call - call an operation of a v4l2_subdev.
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1909   *
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1910   * @sd: pointer to the &struct v4l2_subdev
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1911   * @o: name of the element at &struct v4l2_subdev_ops that contains @f.
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1912   *     Each element there groups a set of callbacks functions.
aab7b7d19d038c Wolfram Sang          2019-11-10  1913   * @f: callback function to be called.
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1914   *     The callback functions are defined in groups, according to
02679876b74d26 Mauro Carvalho Chehab 2017-12-19  1915   *     each element at &struct v4l2_subdev_ops.
60d70d75c12db7 Jonathan Neuschäfer   2020-02-27  1916   * @args: arguments for @f.
21c29de1d09048 Mauro Carvalho Chehab 2016-07-20  1917   *
21c29de1d09048 Mauro Carvalho Chehab 2016-07-20  1918   * Example: err = v4l2_subdev_call(sd, video, s_std, norm);
2a1fcdf0823052 Hans Verkuil          2008-11-29  1919   */
2a1fcdf0823052 Hans Verkuil          2008-11-29  1920  #define v4l2_subdev_call(sd, o, f, args...)				\
da48c948c263c9 Arnd Bergmann         2017-07-19  1921  	({								\
3d769df5fc32dc Hans Verkuil          2019-02-08  1922  		struct v4l2_subdev *__sd = (sd);			\
da48c948c263c9 Arnd Bergmann         2017-07-19  1923  		int __result;						\
3d769df5fc32dc Hans Verkuil          2019-02-08  1924  		if (!__sd)						\
da48c948c263c9 Arnd Bergmann         2017-07-19  1925  			__result = -ENODEV;				\
3d769df5fc32dc Hans Verkuil          2019-02-08  1926  		else if (!(__sd->ops->o && __sd->ops->o->f))		\
da48c948c263c9 Arnd Bergmann         2017-07-19  1927  			__result = -ENOIOCTLCMD;			\
a8fa55078a7784 Janusz Krzysztofik    2019-05-20  1928  		else if (v4l2_subdev_call_wrappers.o &&			\
a8fa55078a7784 Janusz Krzysztofik    2019-05-20  1929  			 v4l2_subdev_call_wrappers.o->f)		\
a8fa55078a7784 Janusz Krzysztofik    2019-05-20 @1930  			__result = v4l2_subdev_call_wrappers.o->f(	\
a8fa55078a7784 Janusz Krzysztofik    2019-05-20 @1931  							__sd, ##args);	\
da48c948c263c9 Arnd Bergmann         2017-07-19  1932  		else							\
3d769df5fc32dc Hans Verkuil          2019-02-08 @1933  			__result = __sd->ops->o->f(__sd, ##args);	\
da48c948c263c9 Arnd Bergmann         2017-07-19  1934  		__result;						\
da48c948c263c9 Arnd Bergmann         2017-07-19  1935  	})
2a1fcdf0823052 Hans Verkuil          2008-11-29  1936  
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1937  /**
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1938   * v4l2_subdev_call_state_active - call an operation of a v4l2_subdev which
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1939   *				   takes state as a parameter, passing the
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1940   *				   subdev its active state.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1941   *
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1942   * @sd: pointer to the &struct v4l2_subdev
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1943   * @o: name of the element at &struct v4l2_subdev_ops that contains @f.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1944   *     Each element there groups a set of callbacks functions.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1945   * @f: callback function to be called.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1946   *     The callback functions are defined in groups, according to
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1947   *     each element at &struct v4l2_subdev_ops.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1948   * @args: arguments for @f.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1949   *
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1950   * This is similar to v4l2_subdev_call(), except that this version can only be
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1951   * used for ops that take a subdev state as a parameter. The macro will get the
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1952   * active state, lock it before calling the op and unlock it after the call.
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1953   */
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1954  #define v4l2_subdev_call_state_active(sd, o, f, args...)		\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1955  	({								\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1956  		int __result;						\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1957  		struct v4l2_subdev_state *state;			\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1958  		state = v4l2_subdev_get_unlocked_active_state(sd);	\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1959  		if (state)						\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1960  			v4l2_subdev_lock_state(state);			\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1961  		__result = v4l2_subdev_call(sd, o, f, state, ##args);	\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1962  		if (state)						\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1963  			v4l2_subdev_unlock_state(state);		\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1964  		__result;						\
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1965  	})
ed647ea668fb27 Tomi Valkeinen        2022-04-12  1966  
982c0487185bd4 Tomi Valkeinen        2022-07-01  1967  /**
982c0487185bd4 Tomi Valkeinen        2022-07-01  1968   * v4l2_subdev_call_state_try - call an operation of a v4l2_subdev which
982c0487185bd4 Tomi Valkeinen        2022-07-01  1969   *				takes state as a parameter, passing the
982c0487185bd4 Tomi Valkeinen        2022-07-01  1970   *				subdev a newly allocated try state.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1971   *
982c0487185bd4 Tomi Valkeinen        2022-07-01  1972   * @sd: pointer to the &struct v4l2_subdev
982c0487185bd4 Tomi Valkeinen        2022-07-01  1973   * @o: name of the element at &struct v4l2_subdev_ops that contains @f.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1974   *     Each element there groups a set of callbacks functions.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1975   * @f: callback function to be called.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1976   *     The callback functions are defined in groups, according to
982c0487185bd4 Tomi Valkeinen        2022-07-01  1977   *     each element at &struct v4l2_subdev_ops.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1978   * @args: arguments for @f.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1979   *
982c0487185bd4 Tomi Valkeinen        2022-07-01  1980   * This is similar to v4l2_subdev_call_state_active(), except that as this
982c0487185bd4 Tomi Valkeinen        2022-07-01  1981   * version allocates a new state, this is only usable for
982c0487185bd4 Tomi Valkeinen        2022-07-01  1982   * V4L2_SUBDEV_FORMAT_TRY use cases.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1983   *
982c0487185bd4 Tomi Valkeinen        2022-07-01  1984   * Note: only legacy non-MC drivers may need this macro.
982c0487185bd4 Tomi Valkeinen        2022-07-01  1985   */
982c0487185bd4 Tomi Valkeinen        2022-07-01  1986  #define v4l2_subdev_call_state_try(sd, o, f, args...)                         \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1987  	({                                                                    \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1988  		int __result;                                                 \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1989  		static struct lock_class_key __key;                           \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1990  		const char *name = KBUILD_BASENAME                            \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1991  			":" __stringify(__LINE__) ":state->lock";             \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1992  		struct v4l2_subdev_state *state =                             \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1993  			__v4l2_subdev_state_alloc(sd, name, &__key);          \
f37df9a0eb5e43 Tomi Valkeinen        2025-08-08  1994  		if (IS_ERR(state)) {                                          \
f37df9a0eb5e43 Tomi Valkeinen        2025-08-08  1995  			__result = PTR_ERR(state);                            \
f37df9a0eb5e43 Tomi Valkeinen        2025-08-08  1996  		} else {                                                      \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1997  			v4l2_subdev_lock_state(state);                        \
982c0487185bd4 Tomi Valkeinen        2022-07-01 @1998  			__result = v4l2_subdev_call(sd, o, f, state, ##args); \
982c0487185bd4 Tomi Valkeinen        2022-07-01  1999  			v4l2_subdev_unlock_state(state);                      \
982c0487185bd4 Tomi Valkeinen        2022-07-01  2000  			__v4l2_subdev_state_free(state);                      \
f37df9a0eb5e43 Tomi Valkeinen        2025-08-08  2001  		}                                                             \
982c0487185bd4 Tomi Valkeinen        2022-07-01  2002  		__result;                                                     \
982c0487185bd4 Tomi Valkeinen        2022-07-01  2003  	})
982c0487185bd4 Tomi Valkeinen        2022-07-01  2004  

:::::: The code at line 1930 was first introduced by commit
:::::: a8fa55078a7784a99a2ce389b5d7456a3be9a941 media: v4l2-subdev: Verify arguments in v4l2_subdev_call()

:::::: TO: Janusz Krzysztofik <jmkrzyszt@gmail.com>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-03-20 11:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-20 11:00 [sailus-media-tree:metadata 19/106] include/media/v4l2-subdev.h:1930:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3 kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox