input_report_key(&mk712_dev, BTN_TOUCH, 1); input_report_abs(&mk712_dev, ABS_X, last_x); input_report_abs(&mk712_dev, ABS_Y, last_y); 
input_report_key(mk712_dev, BTN_TOUCH, 1); input_report_abs(mk712_dev, ABS_X, last_x); input_report_abs(mk712_dev, ABS_Y, last_y); 
static irqreturn_t mk712_interrupt(int irq, void *dev_id, struct pt_regs *regs){	unsigned char status;	static int debounce = 1;	static unsigned short last_x;	static unsigned short last_y;	spin_lock(&mk712_lock);	input_regs(&mk712_dev, regs);	status = inb(mk712_io + MK712_STATUS);	if (~status & MK712_CONVERSION_COMPLETE) {		debounce = 1;		goto end;	}	if (~status & MK712_STATUS_TOUCH)	{		debounce = 1;		input_report_key(&mk712_dev, BTN_TOUCH, 0);		goto end;	}	if (debounce)	{		debounce = 0;		goto end;	}	input_report_key(&mk712_dev, BTN_TOUCH, 1);	input_report_abs(&mk712_dev, ABS_X, last_x);	input_report_abs(&mk712_dev, ABS_Y, last_y);end:	last_x = inw(mk712_io + MK712_X) & 0x0fff;	last_y = inw(mk712_io + MK712_Y) & 0x0fff;	input_sync(&mk712_dev);	spin_unlock(&mk712_lock);	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/eca1ed196cd5b523c1057204cd3672555ad58dfe/mk712.c/clean/drivers/input/touchscreen/mk712.c