From: Marek Vasut I made a few changes. That detection is gone. Check attachment. BUT - there is one prob with inputattach, I had to make changes in it: source is here http://svn.sourceforge.net/viewvc/hackndev/linux4palm/tools/inputattach.c?revision=523&view=markup 216 { "--stowaway", "-stow", B9600, CS8, SERIO_STOWAWAY,0x00, 0, newton_init }, ---this is probably clear - I init it like newtonkbd. 289 // devt = SERIO_RS232 | input_types[type].type | (input_types[type].extra << 16); 290 devt = input_types[type].type | (input_types[type].extra << 16); ---this is cuz stowaway is number 20 => (2 | 20) gave 22 and inited wrong driver, so I put that SERIO_RS232 away. Cc: Dmitry Torokhov Signed-off-by: Andrew Morton --- drivers/input/keyboard/stowaway.c | 13 ++++--------- 1 files changed, 4 insertions(+), 9 deletions(-) diff -puN drivers/input/keyboard/stowaway.c~stowaway-keyboard-support-update drivers/input/keyboard/stowaway.c --- a/drivers/input/keyboard/stowaway.c~stowaway-keyboard-support-update +++ a/drivers/input/keyboard/stowaway.c @@ -74,19 +74,14 @@ static irqreturn_t skbd_interrupt(struct unsigned char data, unsigned int flags, struct pt_regs *regs) { struct skbd *skbd = serio_get_drvdata(serio); - /* invalid scan codes are probably the init sequence, so we ignore them */ - if (skbd->keycode[data & SKBD_KEY]) { - /* check if this is keypress */ - if (data < 0x80) { + /* check if this is keypress */ + if (data < 0x80) { input_regs(skbd->dev, regs); input_report_key(skbd->dev, skbd->keycode[data & SKBD_KEY], 1); input_sync(skbd->dev); - } else { + } else { input_report_key(skbd->dev, skbd->keycode[data & SKBD_KEY], 0); - } } - else if (data == 0xe7) /* end of init sequence */ - printk(KERN_INFO "input: %s on %s\n", skbd->dev->name, serio->phys); return IRQ_HANDLED; } @@ -131,7 +126,7 @@ static int skbd_connect(struct serio *se if (err) goto fail; - if (input_register_device(skbd->dev)){ + if (input_register_device(skbd->dev)) { serio_close(serio); goto fail; } _