if(!(endpoint->bEndpointAddress & 0x80)) 
if(!(endpoint->bEndpointAddress & USB_DIR_IN)) 
int onetouch_connect_input(struct us_data *ss){	struct usb_device *udev = ss->pusb_dev;	struct usb_host_interface *interface;	struct usb_endpoint_descriptor *endpoint;	struct usb_onetouch *onetouch;	int pipe, maxp;	char path[64];	interface = ss->pusb_intf->cur_altsetting;	endpoint = &interface->endpoint[2].desc;	if(!(endpoint->bEndpointAddress & 0x80))		return -ENODEV;	if((endpoint->bmAttributes & 3) != 3)		return -ENODEV;	pipe = usb_rcvintpipe(udev, endpoint->bEndpointAddress);	maxp = usb_maxpacket(udev, pipe, usb_pipeout(pipe));	if (!(onetouch = kcalloc(1, sizeof(struct usb_onetouch), GFP_KERNEL)))		return -ENOMEM;	onetouch->data = usb_buffer_alloc(udev, ONETOUCH_PKT_LEN, SLAB_ATOMIC, &onetouch->data_dma);	if (!onetouch->data){		kfree(onetouch);		return -ENOMEM;	}	onetouch->irq = usb_alloc_urb(0, GFP_KERNEL);	if (!onetouch->irq){		kfree(onetouch);		usb_buffer_free(udev, ONETOUCH_PKT_LEN, onetouch->data, onetouch->data_dma);		return -ENODEV;	}	onetouch->udev = udev;	set_bit(EV_KEY, onetouch->dev.evbit);	set_bit(ONETOUCH_BUTTON, onetouch->dev.keybit);	clear_bit(0, onetouch->dev.keybit);	onetouch->dev.private = onetouch;	onetouch->dev.open = usb_onetouch_open;	onetouch->dev.close = usb_onetouch_close;	usb_make_path(udev, path, 64);	sprintf(onetouch->phys, "%s/input0", path);	onetouch->dev.name = onetouch->name;	onetouch->dev.phys = onetouch->phys;	onetouch->dev.id.bustype = BUS_USB;	onetouch->dev.id.vendor = le16_to_cpu(udev->descriptor.idVendor);	onetouch->dev.id.product = le16_to_cpu(udev->descriptor.idProduct);	onetouch->dev.id.version = le16_to_cpu(udev->descriptor.bcdDevice);	onetouch->dev.dev = &udev->dev;	if (udev->manufacturer)		strcat(onetouch->name, udev->manufacturer);	if (udev->product)		sprintf(onetouch->name, "%s %s", onetouch->name,			udev->product);	if (!strlen(onetouch->name))		sprintf(onetouch->name, "Maxtor Onetouch %04x:%04x",			onetouch->dev.id.vendor, onetouch->dev.id.product);	usb_fill_int_urb(onetouch->irq, udev, pipe, onetouch->data,			 (maxp > 8 ? 8 : maxp),			 usb_onetouch_irq, onetouch, endpoint->bInterval);	onetouch->irq->transfer_dma = onetouch->data_dma;	onetouch->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;	ss->extra_destructor = onetouch_release_input;	ss->extra = onetouch;	input_register_device(&onetouch->dev);	printk(KERN_INFO "usb-input: %s on %s\n", onetouch->dev.name, path);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d6450e19329c85ac4888c185429094236a650928/onetouch.c/clean/drivers/usb/storage/onetouch.c