Linux Media Controller development
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-media@vger.kernel.org
Subject: [sailus-media-tree:metadata 30/122] include/media/v4l2-subdev.h:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
Date: Wed, 29 Apr 2026 12:53:20 +0800	[thread overview]
Message-ID: <202604291208.yqRwAWhO-lkp@intel.com> (raw)

tree:   git://linuxtv.org/sailus/media_tree.git metadata
head:   489ab6e79288be8d219b68525a13699fde0248ae
commit: bdef7b84a4e74d1cef8cd5c1326c657cf4b86b3e [30/122] media: v4l2-subdev: Add struct v4l2_subdev_client_info pointer to pad ops
config: openrisc-allmodconfig (https://download.01.org/0day-ci/archive/20260429/202604291208.yqRwAWhO-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260429/202604291208.yqRwAWhO-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/202604291208.yqRwAWhO-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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1961 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1964 |                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1961 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1964 |                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1961 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1964 |                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
>> include/media/v4l2-subdev.h:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1961 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
>> include/media/v4l2-subdev.h:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1964 |                         __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:2056: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]
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:2056:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1961 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2056:36: note: in expansion of macro 'v4l2_subdev_call'
    2056 |                         __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:2056:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:2056:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   include/media/v4l2-subdev.h:2056:36: note: in expansion of macro 'v4l2_subdev_call'
    2056 |                         __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_set_sensor_format':
   include/media/v4l2-subdev.h:2056: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]
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:2056:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1961 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2056:36: note: in expansion of macro 'v4l2_subdev_call'
    2056 |                         __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:2056:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:2056:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
    2056 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
   include/media/v4l2-subdev.h:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   include/media/v4l2-subdev.h:2056:36: note: in expansion of macro 'v4l2_subdev_call'
    2056 |                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __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:1962:65: note: in definition of macro 'v4l2_subdev_call'
    1962 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   include/media/v4l2-subdev.h:1961:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->get_selection'; expected 4, have 3
    1961 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __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:1964:60: note: in definition of macro 'v4l2_subdev_call'
    1964 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   include/media/v4l2-subdev.h:1964:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->get_selection'; expected 4, have 3
    1964 |                         __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 +1961 include/media/v4l2-subdev.h

a8fa55078a7784a Janusz Krzysztofik    2019-05-20  1937  
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1938  /**
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1939   * v4l2_subdev_call - call an operation of a v4l2_subdev.
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1940   *
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1941   * @sd: pointer to the &struct v4l2_subdev
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1942   * @o: name of the element at &struct v4l2_subdev_ops that contains @f.
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1943   *     Each element there groups a set of callbacks functions.
aab7b7d19d038c1 Wolfram Sang          2019-11-10  1944   * @f: callback function to be called.
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1945   *     The callback functions are defined in groups, according to
02679876b74d26e Mauro Carvalho Chehab 2017-12-19  1946   *     each element at &struct v4l2_subdev_ops.
60d70d75c12db79 Jonathan Neuschäfer   2020-02-27  1947   * @args: arguments for @f.
21c29de1d090488 Mauro Carvalho Chehab 2016-07-20  1948   *
21c29de1d090488 Mauro Carvalho Chehab 2016-07-20  1949   * Example: err = v4l2_subdev_call(sd, video, s_std, norm);
2a1fcdf08230522 Hans Verkuil          2008-11-29  1950   */
2a1fcdf08230522 Hans Verkuil          2008-11-29  1951  #define v4l2_subdev_call(sd, o, f, args...)				\
da48c948c263c9d Arnd Bergmann         2017-07-19  1952  	({								\
3d769df5fc32dc3 Hans Verkuil          2019-02-08  1953  		struct v4l2_subdev *__sd = (sd);			\
da48c948c263c9d Arnd Bergmann         2017-07-19  1954  		int __result;						\
3d769df5fc32dc3 Hans Verkuil          2019-02-08  1955  		if (!__sd)						\
da48c948c263c9d Arnd Bergmann         2017-07-19  1956  			__result = -ENODEV;				\
3d769df5fc32dc3 Hans Verkuil          2019-02-08  1957  		else if (!(__sd->ops->o && __sd->ops->o->f))		\
da48c948c263c9d Arnd Bergmann         2017-07-19  1958  			__result = -ENOIOCTLCMD;			\
a8fa55078a7784a Janusz Krzysztofik    2019-05-20  1959  		else if (v4l2_subdev_call_wrappers.o &&			\
a8fa55078a7784a Janusz Krzysztofik    2019-05-20  1960  			 v4l2_subdev_call_wrappers.o->f)		\
a8fa55078a7784a Janusz Krzysztofik    2019-05-20 @1961  			__result = v4l2_subdev_call_wrappers.o->f(	\
a8fa55078a7784a Janusz Krzysztofik    2019-05-20  1962  							__sd, ##args);	\
da48c948c263c9d Arnd Bergmann         2017-07-19  1963  		else							\
3d769df5fc32dc3 Hans Verkuil          2019-02-08 @1964  			__result = __sd->ops->o->f(__sd, ##args);	\
da48c948c263c9d Arnd Bergmann         2017-07-19  1965  		__result;						\
da48c948c263c9d Arnd Bergmann         2017-07-19  1966  	})
2a1fcdf08230522 Hans Verkuil          2008-11-29  1967  

:::::: The code at line 1961 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

                 reply	other threads:[~2026-04-29  4:54 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202604291208.yqRwAWhO-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=linux-media@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox