 input_sync(amikbd_dev); 
static irqreturn_t amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp){	unsigned char scancode, down;	scancode = ~ciaa.sdr;		/* get and invert scancode (keyboard is active low) */	ciaa.cra |= 0x40;		/* switch SP pin to output for handshake */	udelay(85);			/* wait until 85 us have expired */	ciaa.cra &= ~0x40;		/* switch CIA serial port to input mode */	down = !(scancode & 1);		/* lowest bit is release bit */	scancode >>= 1;	if (scancode < 0x78) {		/* scancodes < 0x78 are keys */		scancode = amikbd_keycode[scancode];		input_regs(&amikbd_dev, fp);		if (scancode == KEY_CAPSLOCK) {	/* CapsLock is a toggle switch key on Amiga */			input_report_key(&amikbd_dev, scancode, 1);			input_report_key(&amikbd_dev, scancode, 0);			input_sync(&amikbd_dev);		} else {			input_report_key(&amikbd_dev, scancode, down);			input_sync(&amikbd_dev);		}	} else				/* scancodes >= 0x78 are error codes */		printk(amikbd_messages[scancode - 0x78]);	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3c42f0c3dde8feb59fc87df45cadb847d5511c0a/amikbd.c/clean/drivers/input/keyboard/amikbd.c