return result; result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0), 0x20, 0x42, 0x0000, 0x0002, NULL, 0, 1000); if (result < 0) return result; 
goto reset; 
static int idmouse_create_image(struct usb_idmouse *dev){	int bytes_read = 0;	int bulk_read = 0;	int result = 0;	if (dev->bulk_in_size < sizeof(HEADER))		return -ENOMEM;	memcpy(dev->bulk_in_buffer,HEADER,sizeof(HEADER)-1);	bytes_read += sizeof(HEADER)-1;	/* Dump the setup packets. Yes, they are uncommented, simply 	   because they were sniffed under Windows using SnoopyPro.	   I _guess_ that 0x22 is a kind of reset command and 0x21 	   means init..	*/	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x21, 0x42, 0x0001, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x20, 0x42, 0x0001, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x22, 0x42, 0x0000, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x21, 0x42, 0x0001, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x20, 0x42, 0x0001, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x20, 0x42, 0x0000, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	/* loop over a blocking bulk read to get data from the device */	while (bytes_read < IMGSIZE) {		result = usb_bulk_msg (dev->udev,				usb_rcvbulkpipe (dev->udev, dev->bulk_in_endpointAddr),				dev->bulk_in_buffer + bytes_read,				dev->bulk_in_size, &bulk_read, 5000);		if (result < 0)			return result;		if (signal_pending(current))			return -EINTR;		bytes_read += bulk_read;	}	/* reset the device */	result = usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0),				0x22, 0x42, 0x0000, 0x0002, NULL, 0, 1000);	if (result < 0)		return result;	/* should be IMGSIZE == 64815 */	dbg("read %d bytes fingerprint data", bytes_read);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4244f72436ab77c3c29a6447af81734ab3925d85/idmouse.c/buggy/drivers/usb/misc/idmouse.c