* [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