Re: [PATCH v3] usb: gadget: webcam: Make g_webcam loadable again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andrzej,

On Tue, Dec 12, 2023 at 06:01:09PM +0100, Andrzej Pietrasiewicz wrote:
> W dniu 11.12.2023 o 22:53, kernel test robot pisze:
> > Hi Andrzej,
> > 
> > kernel test robot noticed the following build errors:
> > 
> > [auto build test ERROR on 33cc938e65a98f1d29d0a18403dbbee050dcad9a]
> > 
> > url:    https://github.com/intel-lab-lkp/linux/commits/Andrzej-Pietrasiewicz/usb-gadget-webcam-Make-g_webcam-loadable-again/20231211-204453
> > base:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
> > patch link:    https://lore.kernel.org/r/20231211123819.76648-1-andrzej.p%40collabora.com
> > patch subject: [PATCH v3] usb: gadget: webcam: Make g_webcam loadable again
> > config: i386-randconfig-003-20231212 (https://download.01.org/0day-ci/archive/20231212/202312120517.4yhTyhYY-lkp@xxxxxxxxx/config)
> > compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231212/202312120517.4yhTyhYY-lkp@xxxxxxxxx/reproduce)
> 
> The reproduction steps under the above link are:
> 
>          make W=1 O=build_dir ARCH=i386 olddefconfig
>          make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/usb/gadge/legacy/
> 
> but that builds clean on my machine. I had to:
> 
> make CC=gcc-7 W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/usb/gadget/legacy/
> 
> to actually see the below errors.
> 
> Using a modern compiler there are no errors, so I'm wondering if the errors
> reported are maybe a problem of an old compiler rather then the submitted patch?

They may be, but gcc 7 is still officially supported by the kernel (see
Documentation/process/changes.rst, the minimum required gcc version is
v5.1), so the issue needs to be fixed.

> > 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@xxxxxxxxx>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202312120517.4yhTyhYY-lkp@xxxxxxxxx/
> > 
> > All errors (new ones prefixed by >>):
> > 
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:222:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_yuv_360p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p_dw_frame_interval[0]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:222:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_yuv_360p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:223:8: note: in expansion of macro 'le32_to_cpu'
> >       [1] = le32_to_cpu(uvc_frame_yuv_360p.dwFrameInterval[1]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p_dw_frame_interval[1]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:223:8: note: in expansion of macro 'le32_to_cpu'
> >       [1] = le32_to_cpu(uvc_frame_yuv_360p.dwFrameInterval[1]),
> >             ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:224:8: note: in expansion of macro 'le32_to_cpu'
> >       [2] = le32_to_cpu(uvc_frame_yuv_360p.dwFrameInterval[2]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p_dw_frame_interval[2]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:224:8: note: in expansion of macro 'le32_to_cpu'
> >       [2] = le32_to_cpu(uvc_frame_yuv_360p.dwFrameInterval[2]),
> >             ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:230:17: error: initializer element is not constant
> >        .b_length   = uvc_frame_yuv_360p.bLength,
> >                      ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:230:17: note: (near initialization for 'uvcg_frame_yuv_360p.frame.b_length')
> >     drivers/usb/gadget/legacy/webcam.c:231:25: error: initializer element is not constant
> >        .b_descriptor_type  = uvc_frame_yuv_360p.bDescriptorType,
> >                              ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:231:25: note: (near initialization for 'uvcg_frame_yuv_360p.frame.b_descriptor_type')
> >     drivers/usb/gadget/legacy/webcam.c:232:28: error: initializer element is not constant
> >        .b_descriptor_subtype  = uvc_frame_yuv_360p.bDescriptorSubType,
> >                                 ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:232:28: note: (near initialization for 'uvcg_frame_yuv_360p.frame.b_descriptor_subtype')
> >     drivers/usb/gadget/legacy/webcam.c:233:22: error: initializer element is not constant
> >        .b_frame_index   = uvc_frame_yuv_360p.bFrameIndex,
> >                           ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:233:22: note: (near initialization for 'uvcg_frame_yuv_360p.frame.b_frame_index')
> >     drivers/usb/gadget/legacy/webcam.c:234:23: error: initializer element is not constant
> >        .bm_capabilities  = uvc_frame_yuv_360p.bmCapabilities,
> >                            ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:234:23: note: (near initialization for 'uvcg_frame_yuv_360p.frame.bm_capabilities')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:235:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_yuv_360p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_yuv_360p.frame.w_width')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:235:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_yuv_360p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:236:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_yuv_360p.wHeight),
> >                      ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_yuv_360p.frame.w_height')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:236:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_yuv_360p.wHeight),
> >                      ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:237:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_yuv_360p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p.frame.dw_min_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:237:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_yuv_360p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:238:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_bit_rate  = le32_to_cpu(uvc_frame_yuv_360p.dwMaxBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p.frame.dw_max_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:238:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_bit_rate  = le32_to_cpu(uvc_frame_yuv_360p.dwMaxBitRate),
> >                            ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:239:37: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_video_frame_buffer_size = le32_to_cpu(uvc_frame_yuv_360p.dwMaxVideoFrameBufferSize),
> >                                          ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p.frame.dw_max_video_frame_buffer_size')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:239:37: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_video_frame_buffer_size = le32_to_cpu(uvc_frame_yuv_360p.dwMaxVideoFrameBufferSize),
> >                                          ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:240:32: note: in expansion of macro 'le32_to_cpu'
> >        .dw_default_frame_interval = le32_to_cpu(uvc_frame_yuv_360p.dwDefaultFrameInterval),
> >                                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_360p.frame.dw_default_frame_interval')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:240:32: note: in expansion of macro 'le32_to_cpu'
> >        .dw_default_frame_interval = le32_to_cpu(uvc_frame_yuv_360p.dwDefaultFrameInterval),
> >                                     ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:241:29: error: initializer element is not constant
> >        .b_frame_interval_type  = uvc_frame_yuv_360p.bFrameIntervalType,
> >                                  ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:241:29: note: (near initialization for 'uvcg_frame_yuv_360p.frame.b_frame_interval_type')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:267:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_yuv_720p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_720p_dw_frame_interval[0]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:267:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_yuv_720p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:273:17: error: initializer element is not constant
> >        .b_length   = uvc_frame_yuv_720p.bLength,
> >                      ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:273:17: note: (near initialization for 'uvcg_frame_yuv_720p.frame.b_length')
> >     drivers/usb/gadget/legacy/webcam.c:274:25: error: initializer element is not constant
> >        .b_descriptor_type  = uvc_frame_yuv_720p.bDescriptorType,
> >                              ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:274:25: note: (near initialization for 'uvcg_frame_yuv_720p.frame.b_descriptor_type')
> >     drivers/usb/gadget/legacy/webcam.c:275:28: error: initializer element is not constant
> >        .b_descriptor_subtype  = uvc_frame_yuv_720p.bDescriptorSubType,
> >                                 ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:275:28: note: (near initialization for 'uvcg_frame_yuv_720p.frame.b_descriptor_subtype')
> >     drivers/usb/gadget/legacy/webcam.c:276:22: error: initializer element is not constant
> >        .b_frame_index   = uvc_frame_yuv_720p.bFrameIndex,
> >                           ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:276:22: note: (near initialization for 'uvcg_frame_yuv_720p.frame.b_frame_index')
> >     drivers/usb/gadget/legacy/webcam.c:277:23: error: initializer element is not constant
> >        .bm_capabilities  = uvc_frame_yuv_720p.bmCapabilities,
> >                            ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:277:23: note: (near initialization for 'uvcg_frame_yuv_720p.frame.bm_capabilities')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:278:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_yuv_720p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_yuv_720p.frame.w_width')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:278:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_yuv_720p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:279:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_yuv_720p.wHeight),
> >                      ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_yuv_720p.frame.w_height')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:279:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_yuv_720p.wHeight),
> >                      ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:280:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_yuv_720p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_720p.frame.dw_min_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:280:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_yuv_720p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:281:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_bit_rate  = le32_to_cpu(uvc_frame_yuv_720p.dwMaxBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_720p.frame.dw_max_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:281:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_bit_rate  = le32_to_cpu(uvc_frame_yuv_720p.dwMaxBitRate),
> >                            ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:282:37: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_video_frame_buffer_size = le32_to_cpu(uvc_frame_yuv_720p.dwMaxVideoFrameBufferSize),
> >                                          ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_720p.frame.dw_max_video_frame_buffer_size')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:282:37: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_video_frame_buffer_size = le32_to_cpu(uvc_frame_yuv_720p.dwMaxVideoFrameBufferSize),
> >                                          ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:283:32: note: in expansion of macro 'le32_to_cpu'
> >        .dw_default_frame_interval = le32_to_cpu(uvc_frame_yuv_720p.dwDefaultFrameInterval),
> >                                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_yuv_720p.frame.dw_default_frame_interval')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:283:32: note: in expansion of macro 'le32_to_cpu'
> >        .dw_default_frame_interval = le32_to_cpu(uvc_frame_yuv_720p.dwDefaultFrameInterval),
> >                                     ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:284:29: error: initializer element is not constant
> >        .b_frame_interval_type  = uvc_frame_yuv_720p.bFrameIntervalType,
> >                                  ^~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:284:29: note: (near initialization for 'uvcg_frame_yuv_720p.frame.b_frame_interval_type')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:340:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_mjpg_360p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p_dw_frame_interval[0]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:340:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_mjpg_360p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:341:8: note: in expansion of macro 'le32_to_cpu'
> >       [1] = le32_to_cpu(uvc_frame_mjpg_360p.dwFrameInterval[1]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p_dw_frame_interval[1]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:341:8: note: in expansion of macro 'le32_to_cpu'
> >       [1] = le32_to_cpu(uvc_frame_mjpg_360p.dwFrameInterval[1]),
> >             ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:342:8: note: in expansion of macro 'le32_to_cpu'
> >       [2] = le32_to_cpu(uvc_frame_mjpg_360p.dwFrameInterval[2]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p_dw_frame_interval[2]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:342:8: note: in expansion of macro 'le32_to_cpu'
> >       [2] = le32_to_cpu(uvc_frame_mjpg_360p.dwFrameInterval[2]),
> >             ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:348:17: error: initializer element is not constant
> >        .b_length   = uvc_frame_mjpg_360p.bLength,
> >                      ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:348:17: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.b_length')
> >     drivers/usb/gadget/legacy/webcam.c:349:25: error: initializer element is not constant
> >        .b_descriptor_type  = uvc_frame_mjpg_360p.bDescriptorType,
> >                              ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:349:25: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.b_descriptor_type')
> >     drivers/usb/gadget/legacy/webcam.c:350:28: error: initializer element is not constant
> >        .b_descriptor_subtype  = uvc_frame_mjpg_360p.bDescriptorSubType,
> >                                 ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:350:28: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.b_descriptor_subtype')
> >     drivers/usb/gadget/legacy/webcam.c:351:22: error: initializer element is not constant
> >        .b_frame_index   = uvc_frame_mjpg_360p.bFrameIndex,
> >                           ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:351:22: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.b_frame_index')
> >     drivers/usb/gadget/legacy/webcam.c:352:23: error: initializer element is not constant
> >        .bm_capabilities  = uvc_frame_mjpg_360p.bmCapabilities,
> >                            ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:352:23: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.bm_capabilities')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:353:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_mjpg_360p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.w_width')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:353:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_mjpg_360p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:354:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_mjpg_360p.wHeight),
> >                      ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.w_height')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:354:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_mjpg_360p.wHeight),
> >                      ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:355:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_mjpg_360p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.dw_min_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:355:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_mjpg_360p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:356:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_bit_rate  = le32_to_cpu(uvc_frame_mjpg_360p.dwMaxBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.dw_max_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:356:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_bit_rate  = le32_to_cpu(uvc_frame_mjpg_360p.dwMaxBitRate),
> >                            ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:357:37: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_video_frame_buffer_size = le32_to_cpu(uvc_frame_mjpg_360p.dwMaxVideoFrameBufferSize),
> >                                          ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.dw_max_video_frame_buffer_size')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:357:37: note: in expansion of macro 'le32_to_cpu'
> >        .dw_max_video_frame_buffer_size = le32_to_cpu(uvc_frame_mjpg_360p.dwMaxVideoFrameBufferSize),
> >                                          ^~~~~~~~~~~
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:358:32: note: in expansion of macro 'le32_to_cpu'
> >        .dw_default_frame_interval = le32_to_cpu(uvc_frame_mjpg_360p.dwDefaultFrameInterval),
> >                                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.dw_default_frame_interval')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:358:32: note: in expansion of macro 'le32_to_cpu'
> >        .dw_default_frame_interval = le32_to_cpu(uvc_frame_mjpg_360p.dwDefaultFrameInterval),
> >                                     ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:359:29: error: initializer element is not constant
> >        .b_frame_interval_type  = uvc_frame_mjpg_360p.bFrameIntervalType,
> >                                  ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:359:29: note: (near initialization for 'uvcg_frame_mjpeg_360p.frame.b_frame_interval_type')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >>> include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:385:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_mjpg_720p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_720p_dw_frame_interval[0]')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:385:8: note: in expansion of macro 'le32_to_cpu'
> >       [0] = le32_to_cpu(uvc_frame_mjpg_720p.dwFrameInterval[0]),
> >             ^~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:391:17: error: initializer element is not constant
> >        .b_length   = uvc_frame_mjpg_720p.bLength,
> >                      ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:391:17: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.b_length')
> >     drivers/usb/gadget/legacy/webcam.c:392:25: error: initializer element is not constant
> >        .b_descriptor_type  = uvc_frame_mjpg_720p.bDescriptorType,
> >                              ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:392:25: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.b_descriptor_type')
> >     drivers/usb/gadget/legacy/webcam.c:393:28: error: initializer element is not constant
> >        .b_descriptor_subtype  = uvc_frame_mjpg_720p.bDescriptorSubType,
> >                                 ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:393:28: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.b_descriptor_subtype')
> >     drivers/usb/gadget/legacy/webcam.c:394:22: error: initializer element is not constant
> >        .b_frame_index   = uvc_frame_mjpg_720p.bFrameIndex,
> >                           ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:394:22: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.b_frame_index')
> >     drivers/usb/gadget/legacy/webcam.c:395:23: error: initializer element is not constant
> >        .bm_capabilities  = uvc_frame_mjpg_720p.bmCapabilities,
> >                            ^~~~~~~~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:395:23: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.bm_capabilities')
> >     In file included from include/linux/byteorder/little_endian.h:5:0,
> >                      from arch/x86/include/uapi/asm/byteorder.h:5,
> >                      from include/asm-generic/bitops/le.h:6,
> >                      from arch/x86/include/asm/bitops.h:436,
> >                      from include/linux/bitops.h:68,
> >                      from include/linux/kernel.h:23,
> >                      from drivers/usb/gadget/legacy/webcam.c:9:
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:396:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_mjpg_720p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.w_width')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:396:16: note: in expansion of macro 'le16_to_cpu'
> >        .w_width   = le16_to_cpu(uvc_frame_mjpg_720p.wWidth),
> >                     ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: error: initializer element is not constant
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:397:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_mjpg_720p.wHeight),
> >                      ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:37:26: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.w_height')
> >      #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
> >      #define le16_to_cpu __le16_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:397:17: note: in expansion of macro 'le16_to_cpu'
> >        .w_height   = le16_to_cpu(uvc_frame_mjpg_720p.wHeight),
> >                      ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:398:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_mjpg_720p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: note: (near initialization for 'uvcg_frame_mjpeg_720p.frame.dw_min_bit_rate')
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> >                               ^
> >     include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
> >      #define le32_to_cpu __le32_to_cpu
> >                          ^~~~~~~~~~~~~
> >     drivers/usb/gadget/legacy/webcam.c:398:23: note: in expansion of macro 'le32_to_cpu'
> >        .dw_min_bit_rate  = le32_to_cpu(uvc_frame_mjpg_720p.dwMinBitRate),
> >                            ^~~~~~~~~~~
> >     include/uapi/linux/byteorder/little_endian.h:35:26: error: initializer element is not constant
> >      #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> > 
> > 
> > vim +35 include/uapi/linux/byteorder/little_endian.h
> > 
> > 5921e6f8809b16 David Howells 2012-10-13  15
> > 5921e6f8809b16 David Howells 2012-10-13  16  #define __constant_htonl(x) ((__force __be32)___constant_swab32((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  17  #define __constant_ntohl(x) ___constant_swab32((__force __be32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  18  #define __constant_htons(x) ((__force __be16)___constant_swab16((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  19  #define __constant_ntohs(x) ___constant_swab16((__force __be16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  20  #define __constant_cpu_to_le64(x) ((__force __le64)(__u64)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  21  #define __constant_le64_to_cpu(x) ((__force __u64)(__le64)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  22  #define __constant_cpu_to_le32(x) ((__force __le32)(__u32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  23  #define __constant_le32_to_cpu(x) ((__force __u32)(__le32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  24  #define __constant_cpu_to_le16(x) ((__force __le16)(__u16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  25  #define __constant_le16_to_cpu(x) ((__force __u16)(__le16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  26  #define __constant_cpu_to_be64(x) ((__force __be64)___constant_swab64((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  27  #define __constant_be64_to_cpu(x) ___constant_swab64((__force __u64)(__be64)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  28  #define __constant_cpu_to_be32(x) ((__force __be32)___constant_swab32((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  29  #define __constant_be32_to_cpu(x) ___constant_swab32((__force __u32)(__be32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  30  #define __constant_cpu_to_be16(x) ((__force __be16)___constant_swab16((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  31  #define __constant_be16_to_cpu(x) ___constant_swab16((__force __u16)(__be16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  32  #define __cpu_to_le64(x) ((__force __le64)(__u64)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  33  #define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  34  #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13 @35  #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  36  #define __cpu_to_le16(x) ((__force __le16)(__u16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  37  #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  38  #define __cpu_to_be64(x) ((__force __be64)__swab64((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  39  #define __be64_to_cpu(x) __swab64((__force __u64)(__be64)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  40  #define __cpu_to_be32(x) ((__force __be32)__swab32((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  41  #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  42  #define __cpu_to_be16(x) ((__force __be16)__swab16((x)))
> > 5921e6f8809b16 David Howells 2012-10-13  43  #define __be16_to_cpu(x) __swab16((__force __u16)(__be16)(x))
> > 5921e6f8809b16 David Howells 2012-10-13  44

-- 
Regards,

Laurent Pinchart




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux