lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202209151110.eqcNpg4j-lkp@intel.com>
Date:   Thu, 15 Sep 2022 11:57:35 +0800
From:   kernel test robot <lkp@...el.com>
To:     Hans Verkuil <hverkuil@...all.nl>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [hverkuil-media-tree:alt-ctrls 1/2]
 include/media/v4l2-common.h:95:33: warning: 'struct v4l2_queryctrl' declared
 inside parameter list will not be visible outside of this definition or
 declaration

tree:   git://linuxtv.org/hverkuil/media_tree.git alt-ctrls
head:   c6e0e18a5be6b8a301595a30ba369cbee4a60807
commit: b28feb32252c212b4d345f0da7ceb285d763e1b9 [1/2] wip
config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20220915/202209151110.eqcNpg4j-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git remote add hverkuil-media-tree git://linuxtv.org/hverkuil/media_tree.git
        git fetch --no-tags hverkuil-media-tree alt-ctrls
        git checkout b28feb32252c212b4d345f0da7ceb285d763e1b9
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash drivers/media/common/ drivers/media/i2c/ drivers/media/pci/bt8xx/ drivers/media/pci/saa7134/ drivers/media/pci/solo6x10/ drivers/media/platform/atmel/ drivers/media/platform/chips-media/ drivers/media/platform/marvell/ drivers/media/platform/renesas/vsp1/ drivers/media/platform/samsung/s5p-mfc/ drivers/media/platform/ti/omap3isp/ drivers/media/platform/ti/vpe/ drivers/media/platform/via/ drivers/media/platform/xilinx/ drivers/media/radio/ drivers/media/test-drivers/ drivers/media/usb/cx231xx/ drivers/media/usb/go7007/ drivers/media/usb/gspca/ drivers/media/usb/pvrusb2/ drivers/media/usb/pwc/ drivers/media/usb/uvc/ drivers/media/v4l2-core/ drivers/staging/media/deprecated/cpia2/ drivers/staging/media/imx/ drivers/video/fbdev/matrox/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/videodev2.h:61,
                    from drivers/media/common/cx2341x.c:14:
   include/uapi/linux/videodev2.h:1859:15: error: unknown type name 'v4l2_ctrl_ptr'
    1859 | static inline v4l2_ctrl_ptr v4l2_ctrl_get_ptr(const struct v4l2_ext_control *c)
         |               ^~~~~~~~~~~~~
   include/uapi/linux/videodev2.h: In function 'v4l2_ctrl_get_ptr':
   include/uapi/linux/videodev2.h:1861:9: error: unknown type name 'v4l2_ctrl_ptr'; use 'union' keyword to refer to the type
    1861 |         v4l2_ctrl_ptr p;
         |         ^~~~~~~~~~~~~
         |         union 
   include/uapi/linux/videodev2.h:1864:18: error: request for member 'p_const' in something not a structure or union
    1864 |                 p.p_const = (const void *)(uintptr_t)c->ptr;
         |                  ^
   include/uapi/linux/videodev2.h:1866:18: error: request for member 'p_const' in something not a structure or union
    1866 |                 p.p_const = &c->value;
         |                  ^
   include/uapi/linux/videodev2.h: At top level:
   include/uapi/linux/videodev2.h:1883:38: error: unknown type name 'v4l2_ctrl_ptr'
    1883 |                                      v4l2_ctrl_ptr p, unsigned int elems)
         |                                      ^~~~~~~~~~~~~
   In file included from include/media/v4l2-subdev.h:15,
                    from include/media/v4l2-mc.h:15,
                    from include/media/tuner.h:14,
                    from drivers/media/common/cx2341x.c:16:
>> include/media/v4l2-common.h:95:33: warning: 'struct v4l2_queryctrl' declared inside parameter list will not be visible outside of this definition or declaration
      95 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                                 ^~~~~~~~~~~~~~
   In file included from include/media/drv-intf/cx2341x.h:10,
                    from drivers/media/common/cx2341x.c:17:
   include/media/v4l2-ctrls.h:58:7: error: redefinition of 'union v4l2_ctrl_ptr'
      58 | union v4l2_ctrl_ptr {
         |       ^~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:1797:7: note: originally defined here
    1797 | union v4l2_ctrl_ptr {
         |       ^~~~~~~~~~~~~
>> include/media/v4l2-ctrls.h:1399:58: warning: 'struct v4l2_queryctrl' declared inside parameter list will not be visible outside of this definition or declaration
    1399 | int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc);
         |                                                          ^~~~~~~~~~~~~~
>> include/media/v4l2-ctrls.h:1433:55: warning: 'struct v4l2_control' declared inside parameter list will not be visible outside of this definition or declaration
    1433 | int v4l2_g_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_control *ctrl);
         |                                                       ^~~~~~~~~~~~
   include/media/v4l2-ctrls.h:1447:24: warning: 'struct v4l2_control' declared inside parameter list will not be visible outside of this definition or declaration
    1447 |                 struct v4l2_control *ctrl);
         |                        ^~~~~~~~~~~~
>> include/media/v4l2-ctrls.h:1461:56: warning: 'struct v4l2_ext_controls' declared inside parameter list will not be visible outside of this definition or declaration
    1461 |                      struct media_device *mdev, struct v4l2_ext_controls *c);
         |                                                        ^~~~~~~~~~~~~~~~~
   include/media/v4l2-ctrls.h:1477:31: warning: 'struct v4l2_ext_controls' declared inside parameter list will not be visible outside of this definition or declaration
    1477 |                        struct v4l2_ext_controls *c);
         |                               ^~~~~~~~~~~~~~~~~
   include/media/v4l2-ctrls.h:1494:29: warning: 'struct v4l2_ext_controls' declared inside parameter list will not be visible outside of this definition or declaration
    1494 |                      struct v4l2_ext_controls *c);
         |                             ^~~~~~~~~~~~~~~~~
>> include/media/drv-intf/cx2341x.h:85:24: warning: 'struct v4l2_queryctrl' declared inside parameter list will not be visible outside of this definition or declaration
      85 |                 struct v4l2_queryctrl *qctrl);
         |                        ^~~~~~~~~~~~~~
>> include/media/drv-intf/cx2341x.h:88:24: warning: 'struct v4l2_ext_controls' declared inside parameter list will not be visible outside of this definition or declaration
      88 |                 struct v4l2_ext_controls *ctrls, unsigned int cmd);
         |                        ^~~~~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c: In function 'cx2341x_ctrl_fill':
   drivers/media/common/cx2341x.c:141:25: error: 'V4L2_CTRL_TYPE_INTEGER' undeclared (first use in this function); did you mean 'V4L2_CTRL_TYPE_INTEGER_MENU'?
     141 |                 *type = V4L2_CTRL_TYPE_INTEGER;
         |                         ^~~~~~~~~~~~~~~~~~~~~~
         |                         V4L2_CTRL_TYPE_INTEGER_MENU
   drivers/media/common/cx2341x.c:141:25: note: each undeclared identifier is reported only once for each function it appears in
   drivers/media/common/cx2341x.c: At top level:
>> drivers/media/common/cx2341x.c:537:43: warning: 'struct v4l2_queryctrl' declared inside parameter list will not be visible outside of this definition or declaration
     537 | static int cx2341x_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                                           ^~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c: In function 'cx2341x_ctrl_query_fill':
   drivers/media/common/cx2341x.c:542:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     542 |         switch (qctrl->id) {
         |                      ^~
   drivers/media/common/cx2341x.c:556:40: error: invalid use of undefined type 'struct v4l2_queryctrl'
     556 |                 cx2341x_ctrl_fill(qctrl->id, &name, &qctrl->type,
         |                                        ^~
   drivers/media/common/cx2341x.c:556:59: error: invalid use of undefined type 'struct v4l2_queryctrl'
     556 |                 cx2341x_ctrl_fill(qctrl->id, &name, &qctrl->type,
         |                                                           ^~
   drivers/media/common/cx2341x.c:557:64: error: invalid use of undefined type 'struct v4l2_queryctrl'
     557 |                                 &min, &max, &step, &def, &qctrl->flags);
         |                                                                ^~
   drivers/media/common/cx2341x.c:558:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     558 |                 qctrl->minimum = min;
         |                      ^~
   drivers/media/common/cx2341x.c:559:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     559 |                 qctrl->maximum = max;
         |                      ^~
   drivers/media/common/cx2341x.c:560:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     560 |                 qctrl->step = step;
         |                      ^~
   drivers/media/common/cx2341x.c:561:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     561 |                 qctrl->default_value = def;
         |                      ^~
   drivers/media/common/cx2341x.c:562:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     562 |                 qctrl->reserved[0] = qctrl->reserved[1] = 0;
         |                      ^~
   drivers/media/common/cx2341x.c:562:43: error: invalid use of undefined type 'struct v4l2_queryctrl'
     562 |                 qctrl->reserved[0] = qctrl->reserved[1] = 0;
         |                                           ^~
   drivers/media/common/cx2341x.c:563:30: error: invalid use of undefined type 'struct v4l2_queryctrl'
     563 |                 strscpy(qctrl->name, name, sizeof(qctrl->name));
         |                              ^~
   drivers/media/common/cx2341x.c:563:56: error: invalid use of undefined type 'struct v4l2_queryctrl'
     563 |                 strscpy(qctrl->name, name, sizeof(qctrl->name));
         |                                                        ^~
   drivers/media/common/cx2341x.c:567:45: error: passing argument 1 of 'v4l2_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     567 |                 return v4l2_ctrl_query_fill(qctrl, min, max, step, def);
         |                                             ^~~~~
         |                                             |
         |                                             struct v4l2_queryctrl *
   include/media/v4l2-common.h:95:49: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
      95 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   drivers/media/common/cx2341x.c: At top level:
   drivers/media/common/cx2341x.c:572:31: warning: 'struct v4l2_queryctrl' declared inside parameter list will not be visible outside of this definition or declaration
     572 |                        struct v4l2_queryctrl *qctrl)
         |                               ^~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c:571:5: error: conflicting types for 'cx2341x_ctrl_query'; have 'int(const struct cx2341x_mpeg_params *, struct v4l2_queryctrl *)'
     571 | int cx2341x_ctrl_query(const struct cx2341x_mpeg_params *params,
         |     ^~~~~~~~~~~~~~~~~~
   include/media/drv-intf/cx2341x.h:84:5: note: previous declaration of 'cx2341x_ctrl_query' with type 'int(const struct cx2341x_mpeg_params *, struct v4l2_queryctrl *)'
      84 | int cx2341x_ctrl_query(const struct cx2341x_mpeg_params *params,
         |     ^~~~~~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c: In function 'cx2341x_ctrl_query':
   drivers/media/common/cx2341x.c:576:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     576 |         switch (qctrl->id) {
         |                      ^~
   drivers/media/common/cx2341x.c:578:45: error: passing argument 1 of 'v4l2_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     578 |                 return v4l2_ctrl_query_fill(qctrl, 0, 0, 0, 0);
         |                                             ^~~~~
         |                                             |
         |                                             struct v4l2_queryctrl *
   include/media/v4l2-common.h:95:49: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
      95 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   drivers/media/common/cx2341x.c:580:45: error: passing argument 1 of 'v4l2_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     580 |                 return v4l2_ctrl_query_fill(qctrl,
         |                                             ^~~~~
         |                                             |
         |                                             struct v4l2_queryctrl *
   include/media/v4l2-common.h:95:49: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
      95 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   drivers/media/common/cx2341x.c:587:53: error: passing argument 1 of 'v4l2_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     587 |                         return v4l2_ctrl_query_fill(qctrl,
         |                                                     ^~~~~
         |                                                     |
         |                                                     struct v4l2_queryctrl *
   include/media/v4l2-common.h:95:49: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
      95 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   drivers/media/common/cx2341x.c:591:48: error: passing argument 1 of 'cx2341x_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     591 |                 return cx2341x_ctrl_query_fill(qctrl,
         |                                                ^~~~~
         |                                                |
         |                                                struct v4l2_queryctrl *
   drivers/media/common/cx2341x.c:537:59: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
     537 | static int cx2341x_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   drivers/media/common/cx2341x.c:597:45: error: passing argument 1 of 'v4l2_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     597 |                 return v4l2_ctrl_query_fill(qctrl,
         |                                             ^~~~~
         |                                             |
         |                                             struct v4l2_queryctrl *
   include/media/v4l2-common.h:95:49: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
      95 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
--
   drivers/media/common/cx2341x.c:826:22: error: invalid use of undefined type 'struct v4l2_queryctrl'
     826 |                 qctrl->flags |= V4L2_CTRL_FLAG_SLIDER;
         |                      ^~
   drivers/media/common/cx2341x.c:829:30: error: invalid use of undefined type 'struct v4l2_queryctrl'
     829 |                         qctrl->flags |= V4L2_CTRL_FLAG_INACTIVE;
         |                              ^~
   drivers/media/common/cx2341x.c:833:48: error: passing argument 1 of 'cx2341x_ctrl_query_fill' from incompatible pointer type [-Werror=incompatible-pointer-types]
     833 |                 return cx2341x_ctrl_query_fill(qctrl, 0, 1, 1,
         |                                                ^~~~~
         |                                                |
         |                                                struct v4l2_queryctrl *
   drivers/media/common/cx2341x.c:537:59: note: expected 'struct v4l2_queryctrl *' but argument is of type 'struct v4l2_queryctrl *'
     537 | static int cx2341x_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
         |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/preempt.h:10,
                    from arch/s390/include/asm/timex.h:13,
                    from include/linux/timex.h:67,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from include/linux/stat.h:19,
                    from include/linux/module.h:13,
                    from drivers/media/common/cx2341x.c:9:
   drivers/media/common/cx2341x.c: At top level:
   drivers/media/common/cx2341x.c:841:15: error: conflicting types for 'cx2341x_ctrl_query'; have 'int(const struct cx2341x_mpeg_params *, struct v4l2_queryctrl *)'
     841 | EXPORT_SYMBOL(cx2341x_ctrl_query);
         |               ^~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c:841:1: note: in expansion of macro 'EXPORT_SYMBOL'
     841 | EXPORT_SYMBOL(cx2341x_ctrl_query);
         | ^~~~~~~~~~~~~
   include/media/drv-intf/cx2341x.h:84:5: note: previous declaration of 'cx2341x_ctrl_query' with type 'int(const struct cx2341x_mpeg_params *, struct v4l2_queryctrl *)'
      84 | int cx2341x_ctrl_query(const struct cx2341x_mpeg_params *params,
         |     ^~~~~~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c:924:66: warning: 'struct v4l2_queryctrl' declared inside parameter list will not be visible outside of this definition or declaration
     924 | static int v4l2_ctrl_check(struct v4l2_ext_control *ctrl, struct v4l2_queryctrl *qctrl,
         |                                                                  ^~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c: In function 'v4l2_ctrl_check':
   drivers/media/common/cx2341x.c:927:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     927 |         if (qctrl->flags & V4L2_CTRL_FLAG_DISABLED)
         |                  ^~
   drivers/media/common/cx2341x.c:927:28: error: 'V4L2_CTRL_FLAG_DISABLED' undeclared (first use in this function); did you mean 'V4L2_CTRL_FLAG_SLIDER'?
     927 |         if (qctrl->flags & V4L2_CTRL_FLAG_DISABLED)
         |                            ^~~~~~~~~~~~~~~~~~~~~~~
         |                            V4L2_CTRL_FLAG_SLIDER
   drivers/media/common/cx2341x.c:929:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     929 |         if (qctrl->flags & V4L2_CTRL_FLAG_GRABBED)
         |                  ^~
   drivers/media/common/cx2341x.c:929:28: error: 'V4L2_CTRL_FLAG_GRABBED' undeclared (first use in this function); did you mean 'V4L2_CTRL_FLAG_SLIDER'?
     929 |         if (qctrl->flags & V4L2_CTRL_FLAG_GRABBED)
         |                            ^~~~~~~~~~~~~~~~~~~~~~
         |                            V4L2_CTRL_FLAG_SLIDER
   drivers/media/common/cx2341x.c:931:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     931 |         if (qctrl->type == V4L2_CTRL_TYPE_STRING)
         |                  ^~
   drivers/media/common/cx2341x.c:931:28: error: 'V4L2_CTRL_TYPE_STRING' undeclared (first use in this function); did you mean 'V4L2_CTRL_FLAG_STRING'?
     931 |         if (qctrl->type == V4L2_CTRL_TYPE_STRING)
         |                            ^~~~~~~~~~~~~~~~~~~~~
         |                            V4L2_CTRL_FLAG_STRING
   drivers/media/common/cx2341x.c:933:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     933 |         if (qctrl->type == V4L2_CTRL_TYPE_BUTTON ||
         |                  ^~
   drivers/media/common/cx2341x.c:934:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     934 |             qctrl->type == V4L2_CTRL_TYPE_INTEGER64 ||
         |                  ^~
   drivers/media/common/cx2341x.c:934:28: error: 'V4L2_CTRL_TYPE_INTEGER64' undeclared (first use in this function); did you mean 'V4L2_CTRL_TYPE_INTEGER_MENU'?
     934 |             qctrl->type == V4L2_CTRL_TYPE_INTEGER64 ||
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~
         |                            V4L2_CTRL_TYPE_INTEGER_MENU
   drivers/media/common/cx2341x.c:935:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     935 |             qctrl->type == V4L2_CTRL_TYPE_CTRL_CLASS)
         |                  ^~
   drivers/media/common/cx2341x.c:935:28: error: 'V4L2_CTRL_TYPE_CTRL_CLASS' undeclared (first use in this function); did you mean 'V4L2_CTRL_TYPE_HEVC_PPS'?
     935 |             qctrl->type == V4L2_CTRL_TYPE_CTRL_CLASS)
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~~
         |                            V4L2_CTRL_TYPE_HEVC_PPS
   drivers/media/common/cx2341x.c:937:32: error: invalid use of undefined type 'struct v4l2_queryctrl'
     937 |         if (ctrl->value < qctrl->minimum || ctrl->value > qctrl->maximum)
         |                                ^~
   drivers/media/common/cx2341x.c:937:64: error: invalid use of undefined type 'struct v4l2_queryctrl'
     937 |         if (ctrl->value < qctrl->minimum || ctrl->value > qctrl->maximum)
         |                                                                ^~
   drivers/media/common/cx2341x.c:939:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     939 |         if (qctrl->type == V4L2_CTRL_TYPE_MENU && menu_items != NULL) {
         |                  ^~
   drivers/media/common/cx2341x.c:944:18: error: invalid use of undefined type 'struct v4l2_queryctrl'
     944 |         if (qctrl->type == V4L2_CTRL_TYPE_BITMASK &&
         |                  ^~
   drivers/media/common/cx2341x.c:945:46: error: invalid use of undefined type 'struct v4l2_queryctrl'
     945 |                         (ctrl->value & ~qctrl->maximum))
         |                                              ^~
   drivers/media/common/cx2341x.c: At top level:
>> drivers/media/common/cx2341x.c:951:26: warning: 'struct v4l2_ext_controls' declared inside parameter list will not be visible outside of this definition or declaration
     951 |                   struct v4l2_ext_controls *ctrls, unsigned int cmd)
         |                          ^~~~~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c:950:5: error: conflicting types for 'cx2341x_ext_ctrls'; have 'int(struct cx2341x_mpeg_params *, int,  struct v4l2_ext_controls *, unsigned int)'
     950 | int cx2341x_ext_ctrls(struct cx2341x_mpeg_params *params, int busy,
         |     ^~~~~~~~~~~~~~~~~
   include/media/drv-intf/cx2341x.h:87:5: note: previous declaration of 'cx2341x_ext_ctrls' with type 'int(struct cx2341x_mpeg_params *, int,  struct v4l2_ext_controls *, unsigned int)'
      87 | int cx2341x_ext_ctrls(struct cx2341x_mpeg_params *params, int busy,
         |     ^~~~~~~~~~~~~~~~~
   In file included from include/asm-generic/ioctl.h:5,
                    from ./arch/s390/include/generated/uapi/asm/ioctl.h:1,
                    from include/uapi/linux/ioctl.h:5,
                    from include/uapi/linux/random.h:12,
                    from include/linux/random.h:11,
                    from include/linux/nodemask.h:97,
                    from include/linux/mmzone.h:17,
                    from include/linux/gfp.h:7,
                    from include/linux/umh.h:4,
                    from include/linux/kmod.h:9,
                    from include/linux/module.h:17:
   drivers/media/common/cx2341x.c: In function 'cx2341x_ext_ctrls':
   include/uapi/linux/videodev2.h:2694:48: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_ext_controls'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                                ^~~~~~
   include/uapi/asm-generic/ioctl.h:73:12: note: in definition of macro '_IOC'
      73 |          ((size) << _IOC_SIZESHIFT))
         |            ^~~~
   include/uapi/asm-generic/ioctl.h:88:72: note: in expansion of macro '_IOC_TYPECHECK'
      88 | #define _IOWR(type,nr,size)     _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
         |                                                                        ^~~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:2694:33: note: in expansion of macro '_IOWR'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                 ^~~~~
   drivers/media/common/cx2341x.c:956:20: note: in expansion of macro 'VIDIOC_G_EXT_CTRLS'
     956 |         if (cmd == VIDIOC_G_EXT_CTRLS) {
         |                    ^~~~~~~~~~~~~~~~~~
   include/asm-generic/ioctl.h:13:32: error: array type has incomplete element type 'struct v4l2_ext_controls'
      13 |         ((sizeof(t) == sizeof(t[1]) && \
         |                                ^
   include/uapi/asm-generic/ioctl.h:73:12: note: in definition of macro '_IOC'
      73 |          ((size) << _IOC_SIZESHIFT))
         |            ^~~~
   include/uapi/asm-generic/ioctl.h:88:72: note: in expansion of macro '_IOC_TYPECHECK'
      88 | #define _IOWR(type,nr,size)     _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
         |                                                                        ^~~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:2694:33: note: in expansion of macro '_IOWR'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                 ^~~~~
   drivers/media/common/cx2341x.c:956:20: note: in expansion of macro 'VIDIOC_G_EXT_CTRLS'
     956 |         if (cmd == VIDIOC_G_EXT_CTRLS) {
         |                    ^~~~~~~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:2694:48: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_ext_controls'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                                ^~~~~~
   include/uapi/asm-generic/ioctl.h:73:12: note: in definition of macro '_IOC'
      73 |          ((size) << _IOC_SIZESHIFT))
         |            ^~~~
   include/uapi/asm-generic/ioctl.h:88:72: note: in expansion of macro '_IOC_TYPECHECK'
      88 | #define _IOWR(type,nr,size)     _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
         |                                                                        ^~~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:2694:33: note: in expansion of macro '_IOWR'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                 ^~~~~
   drivers/media/common/cx2341x.c:956:20: note: in expansion of macro 'VIDIOC_G_EXT_CTRLS'
     956 |         if (cmd == VIDIOC_G_EXT_CTRLS) {
         |                    ^~~~~~~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:2694:48: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_ext_controls'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                                ^~~~~~
   include/uapi/asm-generic/ioctl.h:73:12: note: in definition of macro '_IOC'
      73 |          ((size) << _IOC_SIZESHIFT))
         |            ^~~~
   include/uapi/asm-generic/ioctl.h:88:72: note: in expansion of macro '_IOC_TYPECHECK'
      88 | #define _IOWR(type,nr,size)     _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
         |                                                                        ^~~~~~~~~~~~~~
   include/uapi/linux/videodev2.h:2694:33: note: in expansion of macro '_IOWR'
    2694 | #define VIDIOC_G_EXT_CTRLS      _IOWR('V', 71, struct v4l2_ext_controls)
         |                                 ^~~~~
   drivers/media/common/cx2341x.c:956:20: note: in expansion of macro 'VIDIOC_G_EXT_CTRLS'
     956 |         if (cmd == VIDIOC_G_EXT_CTRLS) {
         |                    ^~~~~~~~~~~~~~~~~~
   drivers/media/common/cx2341x.c:957:38: error: invalid use of undefined type 'struct v4l2_ext_controls'
     957 |                 for (i = 0; i < ctrls->count; i++) {
         |                                      ^~
   drivers/media/common/cx2341x.c:958:62: error: invalid use of undefined type 'struct v4l2_ext_controls'
     958 |                         struct v4l2_ext_control *ctrl = ctrls->controls + i;
         |                                                              ^~
   drivers/media/common/cx2341x.c:962:38: error: invalid use of undefined type 'struct v4l2_ext_controls'
     962 |                                 ctrls->error_idx = i;
         |                                      ^~
   drivers/media/common/cx2341x.c:968:30: error: invalid use of undefined type 'struct v4l2_ext_controls'
     968 |         for (i = 0; i < ctrls->count; i++) {
         |                              ^~
   drivers/media/common/cx2341x.c:969:54: error: invalid use of undefined type 'struct v4l2_ext_controls'
     969 |                 struct v4l2_ext_control *ctrl = ctrls->controls + i;
         |                                                      ^~
   drivers/media/common/cx2341x.c:970:39: error: storage size of 'qctrl' isn't known
     970 |                 struct v4l2_queryctrl qctrl;
         |                                       ^~~~~
   drivers/media/common/cx2341x.c:970:39: warning: unused variable 'qctrl' [-Wunused-variable]
   drivers/media/common/cx2341x.c:990:22: error: invalid use of undefined type 'struct v4l2_ext_controls'
..


vim +95 include/media/v4l2-common.h

7e8b09ea1636e3 Hans Verkuil          2006-01-09  55  
dd99120c7165c6 Hans Verkuil          2008-11-23  56  /* These printk constructs can be used with v4l2_device and v4l2_subdev */
dd99120c7165c6 Hans Verkuil          2008-11-23  57  #define v4l2_printk(level, dev, fmt, arg...) \
dd99120c7165c6 Hans Verkuil          2008-11-23  58  	printk(level "%s: " fmt, (dev)->name , ## arg)
dd99120c7165c6 Hans Verkuil          2008-11-23  59  
dd99120c7165c6 Hans Verkuil          2008-11-23  60  #define v4l2_err(dev, fmt, arg...) \
dd99120c7165c6 Hans Verkuil          2008-11-23  61  	v4l2_printk(KERN_ERR, dev, fmt , ## arg)
dd99120c7165c6 Hans Verkuil          2008-11-23  62  
dd99120c7165c6 Hans Verkuil          2008-11-23  63  #define v4l2_warn(dev, fmt, arg...) \
dd99120c7165c6 Hans Verkuil          2008-11-23  64  	v4l2_printk(KERN_WARNING, dev, fmt , ## arg)
dd99120c7165c6 Hans Verkuil          2008-11-23  65  
dd99120c7165c6 Hans Verkuil          2008-11-23  66  #define v4l2_info(dev, fmt, arg...) \
dd99120c7165c6 Hans Verkuil          2008-11-23  67  	v4l2_printk(KERN_INFO, dev, fmt , ## arg)
dd99120c7165c6 Hans Verkuil          2008-11-23  68  
dd99120c7165c6 Hans Verkuil          2008-11-23  69  /* These three macros assume that the debug level is set with a module
dd99120c7165c6 Hans Verkuil          2008-11-23  70     parameter called 'debug'. */
dd99120c7165c6 Hans Verkuil          2008-11-23  71  #define v4l2_dbg(level, debug, dev, fmt, arg...)			\
dd99120c7165c6 Hans Verkuil          2008-11-23  72  	do {								\
dd99120c7165c6 Hans Verkuil          2008-11-23  73  		if (debug >= (level))					\
dd99120c7165c6 Hans Verkuil          2008-11-23  74  			v4l2_printk(KERN_DEBUG, dev, fmt , ## arg);	\
dd99120c7165c6 Hans Verkuil          2008-11-23  75  	} while (0)
dd99120c7165c6 Hans Verkuil          2008-11-23  76  
b871915893c324 Mauro Carvalho Chehab 2016-07-21  77  /**
b871915893c324 Mauro Carvalho Chehab 2016-07-21  78   * v4l2_ctrl_query_fill- Fill in a struct v4l2_queryctrl
b871915893c324 Mauro Carvalho Chehab 2016-07-21  79   *
b871915893c324 Mauro Carvalho Chehab 2016-07-21  80   * @qctrl: pointer to the &struct v4l2_queryctrl to be filled
b871915893c324 Mauro Carvalho Chehab 2016-07-21  81   * @min: minimum value for the control
b871915893c324 Mauro Carvalho Chehab 2016-07-21  82   * @max: maximum value for the control
b871915893c324 Mauro Carvalho Chehab 2016-07-21  83   * @step: control step
b871915893c324 Mauro Carvalho Chehab 2016-07-21  84   * @def: default value for the control
b871915893c324 Mauro Carvalho Chehab 2016-07-21  85   *
b871915893c324 Mauro Carvalho Chehab 2016-07-21  86   * Fills the &struct v4l2_queryctrl fields for the query control.
b871915893c324 Mauro Carvalho Chehab 2016-07-21  87   *
b871915893c324 Mauro Carvalho Chehab 2016-07-21  88   * .. note::
b871915893c324 Mauro Carvalho Chehab 2016-07-21  89   *
b871915893c324 Mauro Carvalho Chehab 2016-07-21  90   *    This function assumes that the @qctrl->id field is filled.
b871915893c324 Mauro Carvalho Chehab 2016-07-21  91   *
b871915893c324 Mauro Carvalho Chehab 2016-07-21  92   * Returns -EINVAL if the control is not known by the V4L2 core, 0 on success.
b871915893c324 Mauro Carvalho Chehab 2016-07-21  93   */
dd99120c7165c6 Hans Verkuil          2008-11-23  94  
b871915893c324 Mauro Carvalho Chehab 2016-07-21 @95  int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
b871915893c324 Mauro Carvalho Chehab 2016-07-21  96  			 s32 min, s32 max, s32 step, s32 def);
9cb2318b885d20 Hans Verkuil          2006-06-18  97  

:::::: The code at line 95 was first introduced by commit
:::::: b871915893c32473ef5ce0d075c1952ed8232ce1 [media] v4l2-common.h: Add documentation for other functions

:::::: TO: Mauro Carvalho Chehab <mchehab@...pensource.com>
:::::: CC: Mauro Carvalho Chehab <mchehab@...pensource.com>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ