ptr = (struct hil_ptr *)serio->private; 
ptr = serio_get_drvdata(serio); 
static irqreturn_t hil_ptr_interrupt(struct serio *serio,         unsigned char data, unsigned int flags, struct pt_regs *regs){	struct hil_ptr *ptr;	hil_packet packet;	int idx;	ptr = (struct hil_ptr *)serio->private;	if (ptr == NULL) {		BUG();		return IRQ_HANDLED;	}	if (ptr->idx4 >= (HIL_PTR_MAX_LENGTH * sizeof(hil_packet))) {		hil_ptr_process_err(ptr);		return IRQ_HANDLED;	}	idx = ptr->idx4/4;	if (!(ptr->idx4 % 4)) ptr->data[idx] = 0;	packet = ptr->data[idx];	packet |= ((hil_packet)data) << ((3 - (ptr->idx4 % 4)) * 8);	ptr->data[idx] = packet;	/* Records of N 4-byte hil_packets must terminate with a command. */	if ((++(ptr->idx4)) % 4) return IRQ_HANDLED;	if ((packet & 0xffff0000) != HIL_ERR_INT) {		hil_ptr_process_err(ptr);		return IRQ_HANDLED;	}	if (packet & HIL_PKT_CMD) 		hil_ptr_process_record(ptr);	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6ab0f5cd364476fe5cb329fd46ee41bea6d4c69c/hil_ptr.c/clean/drivers/input/mouse/hil_ptr.c