All of lore.kernel.org
 help / color / mirror / Atom feed
* 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
@ 2026-08-30 19:10 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-30 19:10 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: oe-kbuild-all, 0day robot

tree:   https://github.com/intel-lab-lkp/linux/commits/Sakari-Ailus/media-Documentation-Improve-pixel-rate-calculation-documentation/20260807-004311
head:   e0a6fe294ffbd4c2f0fae9bd3e777bc9375161dc
commit: e0a6fe294ffbd4c2f0fae9bd3e777bc9375161dc media: v4l2-subdev: Add struct v4l2_subdev_client_info pointer to pad ops
date:   3 weeks ago
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20260830/202608302104.TikGbJ1M-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260830/202608302104.TikGbJ1M-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/202608302104.TikGbJ1M-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/media/platform/renesas/sh_vou.c:24:
   drivers/media/platform/renesas/sh_vou.c: In function 'sh_vou_s_selection':
>> 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 *'
   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,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   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/staging/media/max96712/max96712.c:267:20: error: initialization of 'int (*)(struct v4l2_subdev *, const struct v4l2_subdev_client_info *, struct v4l2_subdev_state *, struct v4l2_subdev_format *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_state *, struct v4l2_subdev_format *)' [-Wincompatible-pointer-types]
     267 |         .set_fmt = v4l2_subdev_get_fmt,
         |                    ^~~~~~~~~~~~~~~~~~~
   drivers/staging/media/max96712/max96712.c:267:20: note: (near initialization for 'max96712_pad_ops.set_fmt')
   In file included from drivers/staging/media/max96712/max96712.c:17:
   include/media/v4l2-subdev.h:1477:5: note: 'v4l2_subdev_get_fmt' declared here
    1477 | int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state,
         |     ^~~~~~~~~~~~~~~~~~~
--
   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_try_fmt':
>> include/media/v4l2-subdev.h:2047: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]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __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:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __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:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __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 *'
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __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:1979:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1979 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2047:36: note: in expansion of macro 'v4l2_subdev_call'
    2047 |                         __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:2047:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __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:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __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:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __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 *'
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __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:1982:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   include/media/v4l2-subdev.h:2047:36: note: in expansion of macro 'v4l2_subdev_call'
    2047 |                         __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:2047: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]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:2047:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
--
   In file included from sh_vou.c:24:
   sh_vou.c: In function 'sh_vou_s_selection':
   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);         \
         |                                                          ^~~~
   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,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   sh_vou.c:981:57: note: expected 'struct v4l2_subdev_state *' but argument is of type '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);         \
         |                                                          ^~~~
   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,          \
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   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,
         |               ^~~~~~~
--
   In file included from include/media/v4l2-device.h:13,
                    from stm32-dcmi.c:33:
   stm32-dcmi.c: In function 'dcmi_try_fmt':
>> include/media/v4l2-subdev.h:2047: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]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   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:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   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);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   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:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   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);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   stm32-dcmi.c:1066:70: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   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:1979:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)v4l2_subdev_call_wrappers.pad)->set_fmt'; expected 4, have 3
    1979 |                         __result = v4l2_subdev_call_wrappers.o->f(      \
         |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2047:36: note: in expansion of macro 'v4l2_subdev_call'
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                    ^~~~~~~~~~~~~~~~
   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:2047:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   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:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   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);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   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:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   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);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   stm32-dcmi.c:1066:70: note: expected 'struct v4l2_subdev_state *' but argument is of type 'struct v4l2_subdev_format *'
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   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:1982:36: error: too few arguments to function '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt'; expected 4, have 3
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                    ^~~~
   include/media/v4l2-subdev.h:2047:36: note: in expansion of macro 'v4l2_subdev_call'
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                    ^~~~~~~~~~~~~~~~
   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,
         |               ^~~~~~~
   stm32-dcmi.c: In function 'dcmi_set_sensor_format':
>> include/media/v4l2-subdev.h:2047: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]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1980:65: note: in definition of macro 'v4l2_subdev_call'
    1980 |                                                         __sd, ##args);  \
         |                                                                 ^~~~
   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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:2047:63: error: passing argument 2 of '((const struct v4l2_subdev_pad_ops *)__sd->ops->pad)->set_fmt' from incompatible pointer type [-Wincompatible-pointer-types]
    2047 |                         __result = v4l2_subdev_call(sd, o, f, state, ##args); \
         |                                                               ^~~~~
         |                                                               |
         |                                                               struct v4l2_subdev_state *
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:2047:63: note: expected 'const struct v4l2_subdev_client_info *' but argument is of type 'struct v4l2_subdev_state *'
   include/media/v4l2-subdev.h:1982:60: note: in definition of macro 'v4l2_subdev_call'
    1982 |                         __result = __sd->ops->o->f(__sd, ##args);       \
         |                                                            ^~~~
   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, NULL,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~


vim +981 drivers/media/platform/renesas/sh_vou.c

a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   919  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   920  /* Assume a dull encoder, do all the work ourselves. */
61fbacc115731d drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   921  static int sh_vou_s_selection(struct file *file, void *fh,
61fbacc115731d drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   922  			      struct v4l2_selection *sel)
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   923  {
61fbacc115731d drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   924  	struct v4l2_rect *rect = &sel->r;
fd51625d6331c8 drivers/media/platform/sh_vou.c         Laurent Pinchart      2013-01-03   925  	struct sh_vou_device *vou_dev = video_drvdata(file);
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   926  	struct v4l2_subdev_selection sd_sel = {
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   927  		.which = V4L2_SUBDEV_FORMAT_ACTIVE,
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   928  		.target = V4L2_SEL_TGT_COMPOSE,
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   929  	};
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   930  	struct v4l2_pix_format *pix = &vou_dev->pix;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   931  	struct sh_vou_geometry geo;
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   932  	struct v4l2_subdev_format format = {
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   933  		.which = V4L2_SUBDEV_FORMAT_ACTIVE,
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   934  		/* Revisit: is this the correct code? */
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   935  		.format.code = MEDIA_BUS_FMT_YUYV8_2X8,
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   936  		.format.field = V4L2_FIELD_INTERLACED,
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   937  		.format.colorspace = V4L2_COLORSPACE_SMPTE170M,
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   938  	};
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   939  	unsigned int img_height_max;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   940  	int ret;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   941  
61fbacc115731d drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   942  	if (sel->type != V4L2_BUF_TYPE_VIDEO_OUTPUT ||
61fbacc115731d drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   943  	    sel->target != V4L2_SEL_TGT_COMPOSE)
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   944  		return -EINVAL;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   945  
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   946  	if (vb2_is_busy(&vou_dev->queue))
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   947  		return -EBUSY;
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   948  
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   949  	if (vou_dev->std & V4L2_STD_525_60)
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   950  		img_height_max = 480;
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   951  	else
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   952  		img_height_max = 576;
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   953  
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   954  	v4l_bound_align_image(&rect->width,
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   955  			      VOU_MIN_IMAGE_WIDTH, VOU_MAX_IMAGE_WIDTH, 1,
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   956  			      &rect->height,
57af3ad59d953f drivers/media/platform/sh_vou.c         Hans Verkuil          2015-06-07   957  			      VOU_MIN_IMAGE_HEIGHT, img_height_max, 1, 0);
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   958  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   959  	if (rect->width + rect->left > VOU_MAX_IMAGE_WIDTH)
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   960  		rect->left = VOU_MAX_IMAGE_WIDTH - rect->width;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   961  
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   962  	if (rect->height + rect->top > img_height_max)
765fe17c4f018c drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-07-29   963  		rect->top = img_height_max - rect->height;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   964  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   965  	geo.output = *rect;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   966  	geo.in_width = pix->width;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   967  	geo.in_height = pix->height;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   968  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   969  	/* Configure the encoder one-to-one, position at 0, ignore errors */
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   970  	sd_sel.r.width = geo.output.width;
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   971  	sd_sel.r.height = geo.output.height;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   972  	/*
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   973  	 * We first issue a S_SELECTION, so that the subsequent S_FMT delivers the
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   974  	 * final encoder configuration.
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   975  	 */
10d5509c8d50a2 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-12-14   976  	v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
e0a6fe294ffbd4 drivers/media/platform/renesas/sh_vou.c Sakari Ailus          2026-06-08   977  				   set_selection, NULL, NULL, &sd_sel);
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   978  	format.format.width = geo.output.width;
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   979  	format.format.height = geo.output.height;
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   980  	ret = v4l2_device_call_until_err(&vou_dev->v4l2_dev, 0, pad,
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09  @981  					 set_fmt, NULL, &format);
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   982  	/* Must be implemented, so, don't check for -ENOIOCTLCMD */
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   983  	if (ret < 0)
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   984  		return ret;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   985  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   986  	/* Sanity checks */
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   987  	if ((unsigned)format.format.width > VOU_MAX_IMAGE_WIDTH ||
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   988  	    (unsigned)format.format.height > img_height_max ||
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   989  	    format.format.code != MEDIA_BUS_FMT_YUYV8_2X8)
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   990  		return -EIO;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   991  
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   992  	geo.output.width = format.format.width;
ebf984bb151e99 drivers/media/platform/sh_vou.c         Hans Verkuil          2015-04-09   993  	geo.output.height = format.format.height;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   994  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   995  	/*
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   996  	 * No down-scaling. According to the API, current call has precedence:
02e6d2eaa9c3f7 drivers/media/platform/sh_vou.c         Ricardo Ribalda       2018-11-09   997  	 * https://linuxtv.org/downloads/v4l-dvb-apis/uapi/v4l/crop.html#cropping-structures
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   998  	 */
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17   999  	vou_adjust_input(&geo, vou_dev->std);
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1000  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1001  	/* We tried to preserve output rectangle, but it could have changed */
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1002  	vou_dev->rect = geo.output;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1003  	pix->width = geo.in_width;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1004  	pix->height = geo.in_height;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1005  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1006  	sh_vou_configure_geometry(vou_dev, vou_dev->pix_idx,
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1007  				  geo.scale_idx_h, geo.scale_idx_v);
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1008  
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1009  	return 0;
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1010  }
a81fb9b223508f drivers/media/video/sh_vou.c            Guennadi Liakhovetski 2010-03-17  1011  

--
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-08-30 19:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-30 19:10 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 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.