[next:master 2818/3104] drivers/usb/gadget/function/f_uvc.c:816:41: sparse: incorrect type in assignment (different base types)

From: kbuild test robot
Date: Tue Jan 13 2015 - 03:57:15 EST


tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 8fb4ab29bd8400e0060662208573d26b9d91656d
commit: 46919a23ee87bbc4eeb6d958471174e26836f0e1 [2818/3104] usb: gadget: uvc: configfs support in uvc function
reproduce:
# apt-get install sparse
git checkout 46919a23ee87bbc4eeb6d958471174e26836f0e1
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

drivers/usb/gadget/function/f_uvc.c:50:9: sparse: advancing past deep designator
drivers/usb/gadget/function/f_uvc.c:113:35: sparse: incorrect type in initializer (different base types)
drivers/usb/gadget/function/f_uvc.c:113:35: expected unsigned short [unsigned] [usertype] wMaxTransferSize
drivers/usb/gadget/function/f_uvc.c:113:35: got restricted __le16 [usertype] <noident>
drivers/usb/gadget/function/f_uvc.c:575:42: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:575:42: expected unsigned short [unsigned] [usertype] wTotalLength
drivers/usb/gadget/function/f_uvc.c:575:42: got restricted __le16 [usertype] <noident>
drivers/usb/gadget/function/f_uvc.c:589:44: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:589:44: expected unsigned short [unsigned] [usertype] wTotalLength
drivers/usb/gadget/function/f_uvc.c:589:44: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/f_uvc.c:816:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:816:41: expected unsigned short [unsigned] [usertype] wTerminalType
drivers/usb/gadget/function/f_uvc.c:816:41: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/f_uvc.c:819:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:819:41: expected unsigned short [unsigned] [usertype] wObjectiveFocalLengthMin
drivers/usb/gadget/function/f_uvc.c:819:41: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/f_uvc.c:820:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:820:41: expected unsigned short [unsigned] [usertype] wObjectiveFocalLengthMax
drivers/usb/gadget/function/f_uvc.c:820:41: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/f_uvc.c:821:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:821:41: expected unsigned short [unsigned] [usertype] wOcularFocalLength
drivers/usb/gadget/function/f_uvc.c:821:41: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/f_uvc.c:833:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:833:41: expected unsigned short [unsigned] [usertype] wMaxMultiplier
drivers/usb/gadget/function/f_uvc.c:833:41: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/f_uvc.c:844:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/f_uvc.c:844:41: expected unsigned short [unsigned] [usertype] wTerminalType
drivers/usb/gadget/function/f_uvc.c:844:41: got restricted __le16 [usertype] <noident>
--
>> drivers/usb/gadget/function/uvc_configfs.c:46:28: sparse: symbol 'to_uvcg_control_header' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:124:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:124:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:124:1: expected unsigned short [unsigned] [usertype] bcdUVC
drivers/usb/gadget/function/uvc_configfs.c:124:1: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:127:1: sparse: cast to restricted __le32
>> drivers/usb/gadget/function/uvc_configfs.c:127:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:127:1: expected unsigned int [unsigned] [usertype] dwClockFrequency
drivers/usb/gadget/function/uvc_configfs.c:127:1: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:138:25: sparse: symbol 'uvcg_control_header_type' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:156:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:156:41: expected unsigned short [unsigned] [usertype] bcdUVC
drivers/usb/gadget/function/uvc_configfs.c:156:41: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:157:41: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:157:41: expected unsigned int [unsigned] [usertype] dwClockFrequency
drivers/usb/gadget/function/uvc_configfs.c:157:41: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:164:6: sparse: symbol 'uvcg_control_header_drop' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:238:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:361:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:364:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:366:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:368:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:493:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:721:20: sparse: symbol 'to_uvcg_format' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:798:30: sparse: symbol 'to_uvcg_streaming_header' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:950:25: sparse: symbol 'uvcg_streaming_header_type' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:976:6: sparse: symbol 'uvcg_streaming_header_drop' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1020:19: sparse: symbol 'to_uvcg_frame' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1102:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:1102:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1102:1: expected unsigned short [unsigned] [usertype] w_width
drivers/usb/gadget/function/uvc_configfs.c:1102:1: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1104:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:1104:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1104:1: expected unsigned short [unsigned] [usertype] w_height
drivers/usb/gadget/function/uvc_configfs.c:1104:1: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1106:1: sparse: cast to restricted __le32
>> drivers/usb/gadget/function/uvc_configfs.c:1106:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1106:1: expected unsigned int [unsigned] [usertype] dw_min_bit_rate
drivers/usb/gadget/function/uvc_configfs.c:1106:1: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1108:1: sparse: cast to restricted __le32
>> drivers/usb/gadget/function/uvc_configfs.c:1108:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1108:1: expected unsigned int [unsigned] [usertype] dw_max_bit_rate
drivers/usb/gadget/function/uvc_configfs.c:1108:1: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1110:1: sparse: cast to restricted __le32
>> drivers/usb/gadget/function/uvc_configfs.c:1110:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1110:1: expected unsigned int [unsigned] [usertype] dw_max_video_frame_buffer_size
drivers/usb/gadget/function/uvc_configfs.c:1110:1: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1112:1: sparse: cast to restricted __le32
>> drivers/usb/gadget/function/uvc_configfs.c:1112:1: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1112:1: expected unsigned int [unsigned] [usertype] dw_default_frame_interval
drivers/usb/gadget/function/uvc_configfs.c:1112:1: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1136:35: sparse: cast to restricted __le32
>> drivers/usb/gadget/function/uvc_configfs.c:1265:25: sparse: symbol 'uvcg_frame_type' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1285:49: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1285:49: expected unsigned short [unsigned] [usertype] w_width
drivers/usb/gadget/function/uvc_configfs.c:1285:49: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1286:49: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1286:49: expected unsigned short [unsigned] [usertype] w_height
drivers/usb/gadget/function/uvc_configfs.c:1286:49: got restricted __le16 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1287:49: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1287:49: expected unsigned int [unsigned] [usertype] dw_min_bit_rate
drivers/usb/gadget/function/uvc_configfs.c:1287:49: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1288:49: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1288:49: expected unsigned int [unsigned] [usertype] dw_max_bit_rate
drivers/usb/gadget/function/uvc_configfs.c:1288:49: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1289:49: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1289:49: expected unsigned int [unsigned] [usertype] dw_max_video_frame_buffer_size
drivers/usb/gadget/function/uvc_configfs.c:1289:49: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1290:49: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1290:49: expected unsigned int [unsigned] [usertype] dw_default_frame_interval
drivers/usb/gadget/function/uvc_configfs.c:1290:49: got restricted __le32 [usertype] <noident>
>> drivers/usb/gadget/function/uvc_configfs.c:1315:6: sparse: symbol 'uvcg_frame_drop' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1338:26: sparse: symbol 'to_uvcg_uncompressed' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1548:25: sparse: symbol 'uvcg_uncompressed_type' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1586:6: sparse: symbol 'uvcg_uncompressed_drop' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1610:19: sparse: symbol 'to_uvcg_mjpeg' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1761:25: sparse: symbol 'uvcg_mjpeg_type' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:1793:6: sparse: symbol 'uvcg_mjpeg_drop' was not declared. Should it be static?
>> drivers/usb/gadget/function/uvc_configfs.c:2326:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:2326:1: sparse: cast to restricted __le16
>> drivers/usb/gadget/function/uvc_configfs.c:1163:18: sparse: incorrect type in assignment (different base types)
drivers/usb/gadget/function/uvc_configfs.c:1163:18: expected unsigned int [unsigned] [usertype] <noident>
drivers/usb/gadget/function/uvc_configfs.c:1163:18: got restricted __le32 [usertype] <noident>

Please review and possibly fold the followup patch.

vim +816 drivers/usb/gadget/function/f_uvc.c

810
811 cd = &opts->uvc_camera_terminal;
812 cd->bLength = UVC_DT_CAMERA_TERMINAL_SIZE(3);
813 cd->bDescriptorType = USB_DT_CS_INTERFACE;
814 cd->bDescriptorSubType = UVC_VC_INPUT_TERMINAL;
815 cd->bTerminalID = 1;
> 816 cd->wTerminalType = cpu_to_le16(0x0201);
817 cd->bAssocTerminal = 0;
818 cd->iTerminal = 0;
> 819 cd->wObjectiveFocalLengthMin = cpu_to_le16(0);
> 820 cd->wObjectiveFocalLengthMax = cpu_to_le16(0);
> 821 cd->wOcularFocalLength = cpu_to_le16(0);
822 cd->bControlSize = 3;
823 cd->bmControls[0] = 2;
824 cd->bmControls[1] = 0;
825 cd->bmControls[2] = 0;
826
827 pd = &opts->uvc_processing;
828 pd->bLength = UVC_DT_PROCESSING_UNIT_SIZE(2);
829 pd->bDescriptorType = USB_DT_CS_INTERFACE;
830 pd->bDescriptorSubType = UVC_VC_PROCESSING_UNIT;
831 pd->bUnitID = 2;
832 pd->bSourceID = 1;
> 833 pd->wMaxMultiplier = cpu_to_le16(16*1024);
834 pd->bControlSize = 2;
835 pd->bmControls[0] = 1;
836 pd->bmControls[1] = 0;
837 pd->iProcessing = 0;
838
839 od = &opts->uvc_output_terminal;
840 od->bLength = UVC_DT_OUTPUT_TERMINAL_SIZE;
841 od->bDescriptorType = USB_DT_CS_INTERFACE;
842 od->bDescriptorSubType = UVC_VC_OUTPUT_TERMINAL;
843 od->bTerminalID = 3;
> 844 od->wTerminalType = cpu_to_le16(0x0101);
845 od->bAssocTerminal = 0;
846 od->bSourceID = 2;
847 od->iTerminal = 0;

---
0-DAY kernel test infrastructure Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/