struct input_dev *dev = &psmouse->dev; 
struct input_dev *dev = psmouse->dev; 
static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_regs *regs){	unsigned char *packet = psmouse->packet;	struct input_dev *dev = &psmouse->dev;	if (psmouse->pktcnt != 3)		return PSMOUSE_GOOD_DATA;	input_regs(dev, regs);	/* calculate X and Y */	if ((packet[0] & 0x08) == 0x00) {		input_report_abs(dev, ABS_X,				 (packet[1] | ((packet[0] & 0x30) << 4)));		input_report_abs(dev, ABS_Y,				 1024 - (packet[2] | ((packet[0] & 0xC0) << 2)));	} else {		input_report_rel(dev, REL_X,				((packet[0] & 0x10) ? packet[1] - 256 : packet[1]));		input_report_rel(dev, REL_Y,				 -(int)((packet[0] & 0x20) ? packet[2] - 256 : packet[2]));	}	input_report_key(dev, BTN_LEFT, packet[0] & 0x01);	input_report_key(dev, BTN_RIGHT, packet[0] & 0x02);	input_report_key(dev, BTN_TOUCH, packet[0] & 0x04);	input_sync(dev);	return PSMOUSE_FULL_PACKET;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2e5b636bb5f8dacbb91d08544e2c41ebcad5dace/lifebook.c/buggy/drivers/input/mouse/lifebook.c