func: static int airspy_probe(struct usb_interface const struct usb_device_id *id) struct airspy * s ; int ret ; u8 u8tmp , buf [ BUF_SIZE ] ; s = kzalloc ( sizeof ( struct airspy ) , GFP_KERNEL ); if ( s == NULL )  s -> dev = & intf -> dev; s -> udev = interface_to_usbdev ( intf ); s -> f_adc = bands [ 0 ] . rangelow; s -> f_rf = bands_rf [ 0 ] . rangelow; s -> pixelformat = formats [ 0 ] . pixelformat; s -> buffersize = formats [ 0 ] . buffersize; ret = airspy_ctrl_msg ( s , CMD_BOARD_ID_READ , 0 , 0 , & u8tmp , 1 ); if ( ret == 0 )  ret = airspy_ctrl_msg ( s , CMD_VERSION_STRING_READ , 0 , 0 , buf , BUF_SIZE ); static int airspy_ctrl_msg(struct airspy *s, u8 request, u16 value, u16 u8 *data, u16 size) int ret ; unsigned int pipe ; u8 requesttype ; switch ( request )  pipe = usb_sndctrlpipe ( s -> udev , 0 ); requesttype = ( USB_TYPE_VENDOR | USB_DIR_OUT ); pipe = usb_rcvctrlpipe ( s -> udev , 0 ); requesttype = ( USB_TYPE_VENDOR | USB_DIR_IN ); ret = - EINVAL; if ( ! ( requesttype & USB_DIR_IN ) )  memcpy ( s -> buf , data , size ); ret = usb_control_msg ( s -> udev , pipe , request , requesttype , value , index , s -> buf , size , 1000 ); if ( ret < 0 )  if ( requesttype & USB_DIR_IN )  memcpy ( data , s -> buf , size ); 