nkbd
err = input_register_device(nkbd->dev);
kfree(nkbd);
struct nkbd *nkbd = serio_get_drvdata(serio);
input_unregister_device(nkbd->dev);
kfree(nkbd);
struct nkbd *nkbd = serio_get_drvdata(serio);
if (nkbd->keycode[data & NKBD_KEY]) {
input_report_key(nkbd->dev, nkbd->keycode[data & NKBD_KEY], data & NKBD_PRESS);
input_sync(nkbd->dev);
printk(KERN_INFO "input: %s on %s\n", nkbd->dev->name, serio->phys);
struct nkbd *nkbd;
nkbd = kzalloc_obj(*nkbd);
if (!nkbd || !input_dev)
nkbd->serio = serio;
nkbd->dev = input_dev;
snprintf(nkbd->phys, sizeof(nkbd->phys), "%s/input0", serio->phys);
memcpy(nkbd->keycode, nkbd_keycode, sizeof(nkbd->keycode));
input_dev->phys = nkbd->phys;
input_dev->keycode = nkbd->keycode;
set_bit(nkbd->keycode[i], input_dev->keybit);
serio_set_drvdata(serio, nkbd);