 fail:	serio_set_drvdata (serio, NULL); input_free_device (input_dev); kfree (mouse); return err; 
vsxxxaa_connect (struct serio *serio, struct serio_driver *drv){	struct vsxxxaa *mouse;	int err;	if (!(mouse = kmalloc (sizeof (struct vsxxxaa), GFP_KERNEL)))		return -ENOMEM;	memset (mouse, 0, sizeof (struct vsxxxaa));	init_input_dev (&mouse->dev);	set_bit (EV_KEY, mouse->dev.evbit);		/* We have buttons */	set_bit (EV_REL, mouse->dev.evbit);	set_bit (EV_ABS, mouse->dev.evbit);	set_bit (BTN_LEFT, mouse->dev.keybit);		/* We have 3 buttons */	set_bit (BTN_MIDDLE, mouse->dev.keybit);	set_bit (BTN_RIGHT, mouse->dev.keybit);	set_bit (BTN_TOUCH, mouse->dev.keybit);		/* ...and Tablet */	set_bit (REL_X, mouse->dev.relbit);	set_bit (REL_Y, mouse->dev.relbit);	set_bit (ABS_X, mouse->dev.absbit);	set_bit (ABS_Y, mouse->dev.absbit);	mouse->dev.absmin[ABS_X] = 0;	mouse->dev.absmax[ABS_X] = 1023;	mouse->dev.absmin[ABS_Y] = 0;	mouse->dev.absmax[ABS_Y] = 1023;	mouse->dev.private = mouse;	sprintf (mouse->name, "DEC VSXXX-AA/-GA mouse or VSXXX-AB digitizer");	sprintf (mouse->phys, "%s/input0", serio->phys);	mouse->dev.name = mouse->name;	mouse->dev.phys = mouse->phys;	mouse->dev.id.bustype = BUS_RS232;	mouse->dev.dev = &serio->dev;	mouse->serio = serio;	serio_set_drvdata (serio, mouse);	err = serio_open (serio, drv);	if (err) {		serio_set_drvdata (serio, NULL);		kfree (mouse);		return err;	}	/*	 * Request selftest. Standard packet format and differential	 * mode will be requested after the device ID'ed successfully.	 */	mouse->serio->write (mouse->serio, 'T'); /* Test */	input_register_device (&mouse->dev);	printk (KERN_INFO "input: %s on %s\n", mouse->name, mouse->phys);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2e5b636bb5f8dacbb91d08544e2c41ebcad5dace/vsxxxaa.c/clean/drivers/input/mouse/vsxxxaa.c