lkkbd_connect (struct serio *serio, struct serio_driver *drv){	struct lkkbd *lk;	int i;	int err;	if (!(lk = kmalloc (sizeof (struct lkkbd), GFP_KERNEL)))		return -ENOMEM;	memset (lk, 0, sizeof (struct lkkbd));	init_input_dev (&lk->dev);	set_bit (EV_KEY, lk->dev.evbit);	set_bit (EV_LED, lk->dev.evbit);	set_bit (EV_SND, lk->dev.evbit);	set_bit (EV_REP, lk->dev.evbit);	set_bit (LED_CAPSL, lk->dev.ledbit);	set_bit (LED_SLEEP, lk->dev.ledbit);	set_bit (LED_COMPOSE, lk->dev.ledbit);	set_bit (LED_SCROLLL, lk->dev.ledbit);	set_bit (SND_BELL, lk->dev.sndbit);	set_bit (SND_CLICK, lk->dev.sndbit);	lk->serio = serio;	INIT_WORK (&lk->tq, lkkbd_reinit, lk);	lk->bell_volume = bell_volume;	lk->keyclick_volume = keyclick_volume;	lk->ctrlclick_volume = ctrlclick_volume;	lk->dev.keycode = lk->keycode;	lk->dev.keycodesize = sizeof (lk_keycode_t);	lk->dev.keycodemax = LK_NUM_KEYCODES;	lk->dev.event = lkkbd_event;	lk->dev.private = lk;	serio_set_drvdata (serio, lk);	err = serio_open (serio, drv);	if (err) {		serio_set_drvdata (serio, NULL);		kfree (lk);		return err;	}	sprintf (lk->name, "DEC LK keyboard");	sprintf (lk->phys, "%s/input0", serio->phys);	memcpy (lk->keycode, lkkbd_keycode, sizeof (lk_keycode_t) * LK_NUM_KEYCODES);	for (i = 0; i < LK_NUM_KEYCODES; i++)		set_bit (lk->keycode[i], lk->dev.keybit);	lk->dev.name = lk->name;	lk->dev.phys = lk->phys;	lk->dev.id.bustype = BUS_RS232;	lk->dev.id.vendor = SERIO_LKKBD;	lk->dev.id.product = 0;	lk->dev.id.version = 0x0100;	lk->dev.dev = &serio->dev;	input_register_device (&lk->dev);	printk (KERN_INFO "input: %s on %s, initiating reset\n", lk->name, serio->phys);	lk->serio->write (lk->serio, LK_CMD_POWERCYCLE_RESET);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3c42f0c3dde8feb59fc87df45cadb847d5511c0a/lkkbd.c/clean/drivers/input/keyboard/lkkbd.c