input_regs(&sunkbd->dev, regs); input_report_key(&sunkbd->dev, sunkbd->keycode[data & SUNKBD_KEY], !(data & SUNKBD_RELEASE)); input_sync(&sunkbd->dev); 
input_regs(sunkbd->dev, regs); input_report_key(sunkbd->dev, sunkbd->keycode[data & SUNKBD_KEY], !(data & SUNKBD_RELEASE)); input_sync(sunkbd->dev); 
static irqreturn_t sunkbd_interrupt(struct serio *serio,		unsigned char data, unsigned int flags, struct pt_regs *regs){	struct sunkbd* sunkbd = serio_get_drvdata(serio);	if (sunkbd->reset <= -1) {		/* If cp[i] is 0xff, sunkbd->reset will stay -1. */		sunkbd->reset = data;		/* The keyboard sends 0xff 0xff 0xID on powerup */		wake_up_interruptible(&sunkbd->wait);		goto out;	}	if (sunkbd->layout == -1) {		sunkbd->layout = data;		wake_up_interruptible(&sunkbd->wait);		goto out;	}	switch (data) {		case SUNKBD_RET_RESET:			schedule_work(&sunkbd->tq);			sunkbd->reset = -1;			break;		case SUNKBD_RET_LAYOUT:			sunkbd->layout = -1;			break;		case SUNKBD_RET_ALLUP: /* All keys released */			break;		default:			if (sunkbd->keycode[data & SUNKBD_KEY]) {				input_regs(&sunkbd->dev, regs);                                input_report_key(&sunkbd->dev, sunkbd->keycode[data & SUNKBD_KEY], !(data & SUNKBD_RELEASE));				input_sync(&sunkbd->dev);                        } else {                                printk(KERN_WARNING "sunkbd.c: Unknown key (scancode %#x) %s.\n",                                        data & SUNKBD_KEY, data & SUNKBD_RELEASE ? "released" : "pressed");                        }	}out:	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3c42f0c3dde8feb59fc87df45cadb847d5511c0a/sunkbd.c/clean/drivers/input/keyboard/sunkbd.c