Loading drivers/input/keyboard/atkbd.c +146 −137 Original line number Diff line number Diff line Loading @@ -40,26 +40,26 @@ module_param_named(set, atkbd_set, int, 0); MODULE_PARM_DESC(set, "Select keyboard code set (2 = default, 3 = PS/2 native)"); #if defined(__i386__) || defined(__x86_64__) || defined(__hppa__) static int atkbd_reset; static bool atkbd_reset; #else static int atkbd_reset = 1; static bool atkbd_reset = true; #endif module_param_named(reset, atkbd_reset, bool, 0); MODULE_PARM_DESC(reset, "Reset keyboard during initialization"); static int atkbd_softrepeat; static bool atkbd_softrepeat; module_param_named(softrepeat, atkbd_softrepeat, bool, 0); MODULE_PARM_DESC(softrepeat, "Use software keyboard repeat"); static int atkbd_softraw = 1; static bool atkbd_softraw = true; module_param_named(softraw, atkbd_softraw, bool, 0); MODULE_PARM_DESC(softraw, "Use software generated rawmode"); static int atkbd_scroll; static bool atkbd_scroll; module_param_named(scroll, atkbd_scroll, bool, 0); MODULE_PARM_DESC(scroll, "Enable scroll-wheel on MS Office and similar keyboards"); static int atkbd_extra; static bool atkbd_extra; module_param_named(extra, atkbd_extra, bool, 0); MODULE_PARM_DESC(extra, "Enable extra LEDs and keys on IBM RapidAcces, EzKey and similar keyboards"); Loading Loading @@ -205,18 +205,18 @@ struct atkbd { unsigned short keycode[ATKBD_KEYMAP_SIZE]; DECLARE_BITMAP(force_release_mask, ATKBD_KEYMAP_SIZE); unsigned char set; unsigned char translated; unsigned char extra; unsigned char write; unsigned char softrepeat; unsigned char softraw; unsigned char scroll; unsigned char enabled; bool translated; bool extra; bool write; bool softrepeat; bool softraw; bool scroll; bool enabled; /* Accessed only from interrupt */ unsigned char emul; unsigned char resend; unsigned char release; bool resend; bool release; unsigned long xl_bit; unsigned int last; unsigned long time; Loading Loading @@ -298,18 +298,18 @@ static const unsigned int xl_table[] = { * Checks if we should mangle the scancode to extract 'release' bit * in translated mode. */ static int atkbd_need_xlate(unsigned long xl_bit, unsigned char code) static bool atkbd_need_xlate(unsigned long xl_bit, unsigned char code) { int i; if (code == ATKBD_RET_EMUL0 || code == ATKBD_RET_EMUL1) return 0; return false; for (i = 0; i < ARRAY_SIZE(xl_table); i++) if (code == xl_table[i]) return test_bit(i, &xl_bit); return 1; return true; } /* Loading Loading @@ -365,20 +365,18 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, int value; unsigned short keycode; #ifdef ATKBD_DEBUG printk(KERN_DEBUG "atkbd.c: Received %02x flags %02x\n", data, flags); #endif dev_dbg(&serio->dev, "Received %02x flags %02x\n", data, flags); #if !defined(__i386__) && !defined (__x86_64__) if ((flags & (SERIO_FRAME | SERIO_PARITY)) && (~flags & SERIO_TIMEOUT) && !atkbd->resend && atkbd->write) { printk(KERN_WARNING "atkbd.c: frame/parity error: %02x\n", flags); dev_warn(&serio->dev, "Frame/parity error: %02x\n", flags); serio_write(serio, ATKBD_CMD_RESEND); atkbd->resend = 1; atkbd->resend = true; goto out; } if (!flags && data == ATKBD_RET_ACK) atkbd->resend = 0; atkbd->resend = false; #endif if (unlikely(atkbd->ps2dev.flags & PS2_FLAG_ACK)) Loading Loading @@ -410,7 +408,7 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, switch (code) { case ATKBD_RET_BAT: atkbd->enabled = 0; atkbd->enabled = false; serio_reconnect(atkbd->ps2dev.serio); goto out; case ATKBD_RET_EMUL0: Loading @@ -420,20 +418,20 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, atkbd->emul = 2; goto out; case ATKBD_RET_RELEASE: atkbd->release = 1; atkbd->release = true; goto out; case ATKBD_RET_ACK: case ATKBD_RET_NAK: if (printk_ratelimit()) printk(KERN_WARNING "atkbd.c: Spurious %s on %s. " dev_warn(&serio->dev, "Spurious %s on %s. " "Some program might be trying access hardware directly.\n", data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys); goto out; case ATKBD_RET_ERR: atkbd->err_count++; #ifdef ATKBD_DEBUG printk(KERN_DEBUG "atkbd.c: Keyboard on %s reports too many keys pressed.\n", serio->phys); #endif dev_dbg(&serio->dev, "Keyboard on %s reports too many keys pressed.\n", serio->phys); goto out; } Loading @@ -451,27 +449,27 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, case ATKBD_KEY_NULL: break; case ATKBD_KEY_UNKNOWN: printk(KERN_WARNING "atkbd.c: Unknown key %s (%s set %d, code %#x on %s).\n", dev_warn(&serio->dev, "Unknown key %s (%s set %d, code %#x on %s).\n", atkbd->release ? "released" : "pressed", atkbd->translated ? "translated" : "raw", atkbd->set, code, serio->phys); printk(KERN_WARNING "atkbd.c: Use 'setkeycodes %s%02x <keycode>' to make it known.\n", dev_warn(&serio->dev, "Use 'setkeycodes %s%02x <keycode>' to make it known.\n", code & 0x80 ? "e0" : "", code & 0x7f); input_sync(dev); break; case ATKBD_SCR_1: scroll = 1 - atkbd->release * 2; scroll = 1; break; case ATKBD_SCR_2: scroll = 2 - atkbd->release * 4; scroll = 2; break; case ATKBD_SCR_4: scroll = 4 - atkbd->release * 8; scroll = 4; break; case ATKBD_SCR_8: scroll = 8 - atkbd->release * 16; scroll = 8; break; case ATKBD_SCR_CLICK: click = !atkbd->release; Loading Loading @@ -507,12 +505,13 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, if (atkbd->scroll) { if (click != -1) input_report_key(dev, BTN_MIDDLE, click); input_report_rel(dev, REL_WHEEL, scroll); input_report_rel(dev, REL_WHEEL, atkbd->release ? -scroll : scroll); input_report_rel(dev, REL_HWHEEL, hscroll); input_sync(dev); } atkbd->release = 0; atkbd->release = false; out: return IRQ_HANDLED; } Loading Loading @@ -639,10 +638,11 @@ static int atkbd_event(struct input_dev *dev, if (!atkbd->softrepeat) atkbd_schedule_event_work(atkbd, ATKBD_REP_EVENT_BIT); return 0; } default: return -1; } } /* * atkbd_enable() signals that interrupt handler is allowed to Loading @@ -652,7 +652,7 @@ static int atkbd_event(struct input_dev *dev, static inline void atkbd_enable(struct atkbd *atkbd) { serio_pause_rx(atkbd->ps2dev.serio); atkbd->enabled = 1; atkbd->enabled = true; serio_continue_rx(atkbd->ps2dev.serio); } Loading @@ -664,7 +664,7 @@ static inline void atkbd_enable(struct atkbd *atkbd) static inline void atkbd_disable(struct atkbd *atkbd) { serio_pause_rx(atkbd->ps2dev.serio); atkbd->enabled = 0; atkbd->enabled = false; serio_continue_rx(atkbd->ps2dev.serio); } Loading @@ -685,7 +685,9 @@ static int atkbd_probe(struct atkbd *atkbd) if (atkbd_reset) if (ps2_command(ps2dev, NULL, ATKBD_CMD_RESET_BAT)) printk(KERN_WARNING "atkbd.c: keyboard reset failed on %s\n", ps2dev->serio->phys); dev_warn(&ps2dev->serio->dev, "keyboard reset failed on %s\n", ps2dev->serio->phys); /* * Then we check the keyboard ID. We should get 0xab83 under normal conditions. Loading Loading @@ -715,8 +717,9 @@ static int atkbd_probe(struct atkbd *atkbd) atkbd->id = (param[0] << 8) | param[1]; if (atkbd->id == 0xaca1 && atkbd->translated) { printk(KERN_ERR "atkbd.c: NCD terminal keyboards are only supported on non-translating\n"); printk(KERN_ERR "atkbd.c: controllers. Use i8042.direct=1 to disable translation.\n"); dev_err(&ps2dev->serio->dev, "NCD terminal keyboards are only supported on non-translating controlelrs. " "Use i8042.direct=1 to disable translation.\n"); return -1; } Loading @@ -734,7 +737,7 @@ static int atkbd_select_set(struct atkbd *atkbd, int target_set, int allow_extra struct ps2dev *ps2dev = &atkbd->ps2dev; unsigned char param[2]; atkbd->extra = 0; atkbd->extra = false; /* * For known special keyboards we can go ahead and set the correct set. * We check for NCD PS/2 Sun, NorthGate OmniKey 101 and Loading @@ -753,7 +756,7 @@ static int atkbd_select_set(struct atkbd *atkbd, int target_set, int allow_extra if (allow_extra) { param[0] = 0x71; if (!ps2_command(ps2dev, param, ATKBD_CMD_EX_ENABLE)) { atkbd->extra = 1; atkbd->extra = true; return 2; } } Loading Loading @@ -818,7 +821,8 @@ static int atkbd_activate(struct atkbd *atkbd) */ if (ps2_command(ps2dev, NULL, ATKBD_CMD_ENABLE)) { printk(KERN_ERR "atkbd.c: Failed to enable keyboard on %s\n", dev_err(&ps2dev->serio->dev, "Failed to enable keyboard on %s\n", ps2dev->serio->phys); return -1; } Loading Loading @@ -1091,10 +1095,12 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv) switch (serio->id.type) { case SERIO_8042_XL: atkbd->translated = 1; atkbd->translated = true; /* Fall through */ case SERIO_8042: if (serio->write) atkbd->write = 1; atkbd->write = true; break; } Loading @@ -1103,7 +1109,7 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv) atkbd->scroll = atkbd_scroll; if (atkbd->softrepeat) atkbd->softraw = 1; atkbd->softraw = true; serio_set_drvdata(serio, atkbd); Loading Loading @@ -1161,7 +1167,8 @@ static int atkbd_reconnect(struct serio *serio) struct serio_driver *drv = serio->drv; if (!atkbd || !drv) { printk(KERN_DEBUG "atkbd: reconnect request, but serio is disconnected, ignoring...\n"); dev_dbg(&serio->dev, "reconnect request, but serio is disconnected, ignoring...\n"); return -1; } Loading Loading @@ -1288,7 +1295,8 @@ static ssize_t atkbd_set_extra(struct atkbd *atkbd, const char *buf, size_t coun struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_extra, old_set; bool old_extra; unsigned char old_set; if (!atkbd->write) return -EIO; Loading Loading @@ -1371,7 +1379,7 @@ static ssize_t atkbd_set_scroll(struct atkbd *atkbd, const char *buf, size_t cou struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_scroll; bool old_scroll; if (strict_strtoul(buf, 10, &value) || value > 1) return -EINVAL; Loading Loading @@ -1415,7 +1423,8 @@ static ssize_t atkbd_set_set(struct atkbd *atkbd, const char *buf, size_t count) struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_set, old_extra; unsigned char old_set; bool old_extra; if (!atkbd->write) return -EIO; Loading Loading @@ -1465,7 +1474,7 @@ static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_softrepeat, old_softraw; bool old_softrepeat, old_softraw; if (!atkbd->write) return -EIO; Loading @@ -1485,7 +1494,7 @@ static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t atkbd->dev = new_dev; atkbd->softrepeat = value; if (atkbd->softrepeat) atkbd->softraw = 1; atkbd->softraw = true; atkbd_set_device_attrs(atkbd); err = input_register_device(atkbd->dev); Loading Loading @@ -1515,7 +1524,7 @@ static ssize_t atkbd_set_softraw(struct atkbd *atkbd, const char *buf, size_t co struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_softraw; bool old_softraw; if (strict_strtoul(buf, 10, &value) || value > 1) return -EINVAL; Loading Loading
drivers/input/keyboard/atkbd.c +146 −137 Original line number Diff line number Diff line Loading @@ -40,26 +40,26 @@ module_param_named(set, atkbd_set, int, 0); MODULE_PARM_DESC(set, "Select keyboard code set (2 = default, 3 = PS/2 native)"); #if defined(__i386__) || defined(__x86_64__) || defined(__hppa__) static int atkbd_reset; static bool atkbd_reset; #else static int atkbd_reset = 1; static bool atkbd_reset = true; #endif module_param_named(reset, atkbd_reset, bool, 0); MODULE_PARM_DESC(reset, "Reset keyboard during initialization"); static int atkbd_softrepeat; static bool atkbd_softrepeat; module_param_named(softrepeat, atkbd_softrepeat, bool, 0); MODULE_PARM_DESC(softrepeat, "Use software keyboard repeat"); static int atkbd_softraw = 1; static bool atkbd_softraw = true; module_param_named(softraw, atkbd_softraw, bool, 0); MODULE_PARM_DESC(softraw, "Use software generated rawmode"); static int atkbd_scroll; static bool atkbd_scroll; module_param_named(scroll, atkbd_scroll, bool, 0); MODULE_PARM_DESC(scroll, "Enable scroll-wheel on MS Office and similar keyboards"); static int atkbd_extra; static bool atkbd_extra; module_param_named(extra, atkbd_extra, bool, 0); MODULE_PARM_DESC(extra, "Enable extra LEDs and keys on IBM RapidAcces, EzKey and similar keyboards"); Loading Loading @@ -205,18 +205,18 @@ struct atkbd { unsigned short keycode[ATKBD_KEYMAP_SIZE]; DECLARE_BITMAP(force_release_mask, ATKBD_KEYMAP_SIZE); unsigned char set; unsigned char translated; unsigned char extra; unsigned char write; unsigned char softrepeat; unsigned char softraw; unsigned char scroll; unsigned char enabled; bool translated; bool extra; bool write; bool softrepeat; bool softraw; bool scroll; bool enabled; /* Accessed only from interrupt */ unsigned char emul; unsigned char resend; unsigned char release; bool resend; bool release; unsigned long xl_bit; unsigned int last; unsigned long time; Loading Loading @@ -298,18 +298,18 @@ static const unsigned int xl_table[] = { * Checks if we should mangle the scancode to extract 'release' bit * in translated mode. */ static int atkbd_need_xlate(unsigned long xl_bit, unsigned char code) static bool atkbd_need_xlate(unsigned long xl_bit, unsigned char code) { int i; if (code == ATKBD_RET_EMUL0 || code == ATKBD_RET_EMUL1) return 0; return false; for (i = 0; i < ARRAY_SIZE(xl_table); i++) if (code == xl_table[i]) return test_bit(i, &xl_bit); return 1; return true; } /* Loading Loading @@ -365,20 +365,18 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, int value; unsigned short keycode; #ifdef ATKBD_DEBUG printk(KERN_DEBUG "atkbd.c: Received %02x flags %02x\n", data, flags); #endif dev_dbg(&serio->dev, "Received %02x flags %02x\n", data, flags); #if !defined(__i386__) && !defined (__x86_64__) if ((flags & (SERIO_FRAME | SERIO_PARITY)) && (~flags & SERIO_TIMEOUT) && !atkbd->resend && atkbd->write) { printk(KERN_WARNING "atkbd.c: frame/parity error: %02x\n", flags); dev_warn(&serio->dev, "Frame/parity error: %02x\n", flags); serio_write(serio, ATKBD_CMD_RESEND); atkbd->resend = 1; atkbd->resend = true; goto out; } if (!flags && data == ATKBD_RET_ACK) atkbd->resend = 0; atkbd->resend = false; #endif if (unlikely(atkbd->ps2dev.flags & PS2_FLAG_ACK)) Loading Loading @@ -410,7 +408,7 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, switch (code) { case ATKBD_RET_BAT: atkbd->enabled = 0; atkbd->enabled = false; serio_reconnect(atkbd->ps2dev.serio); goto out; case ATKBD_RET_EMUL0: Loading @@ -420,20 +418,20 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, atkbd->emul = 2; goto out; case ATKBD_RET_RELEASE: atkbd->release = 1; atkbd->release = true; goto out; case ATKBD_RET_ACK: case ATKBD_RET_NAK: if (printk_ratelimit()) printk(KERN_WARNING "atkbd.c: Spurious %s on %s. " dev_warn(&serio->dev, "Spurious %s on %s. " "Some program might be trying access hardware directly.\n", data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys); goto out; case ATKBD_RET_ERR: atkbd->err_count++; #ifdef ATKBD_DEBUG printk(KERN_DEBUG "atkbd.c: Keyboard on %s reports too many keys pressed.\n", serio->phys); #endif dev_dbg(&serio->dev, "Keyboard on %s reports too many keys pressed.\n", serio->phys); goto out; } Loading @@ -451,27 +449,27 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, case ATKBD_KEY_NULL: break; case ATKBD_KEY_UNKNOWN: printk(KERN_WARNING "atkbd.c: Unknown key %s (%s set %d, code %#x on %s).\n", dev_warn(&serio->dev, "Unknown key %s (%s set %d, code %#x on %s).\n", atkbd->release ? "released" : "pressed", atkbd->translated ? "translated" : "raw", atkbd->set, code, serio->phys); printk(KERN_WARNING "atkbd.c: Use 'setkeycodes %s%02x <keycode>' to make it known.\n", dev_warn(&serio->dev, "Use 'setkeycodes %s%02x <keycode>' to make it known.\n", code & 0x80 ? "e0" : "", code & 0x7f); input_sync(dev); break; case ATKBD_SCR_1: scroll = 1 - atkbd->release * 2; scroll = 1; break; case ATKBD_SCR_2: scroll = 2 - atkbd->release * 4; scroll = 2; break; case ATKBD_SCR_4: scroll = 4 - atkbd->release * 8; scroll = 4; break; case ATKBD_SCR_8: scroll = 8 - atkbd->release * 16; scroll = 8; break; case ATKBD_SCR_CLICK: click = !atkbd->release; Loading Loading @@ -507,12 +505,13 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, if (atkbd->scroll) { if (click != -1) input_report_key(dev, BTN_MIDDLE, click); input_report_rel(dev, REL_WHEEL, scroll); input_report_rel(dev, REL_WHEEL, atkbd->release ? -scroll : scroll); input_report_rel(dev, REL_HWHEEL, hscroll); input_sync(dev); } atkbd->release = 0; atkbd->release = false; out: return IRQ_HANDLED; } Loading Loading @@ -639,10 +638,11 @@ static int atkbd_event(struct input_dev *dev, if (!atkbd->softrepeat) atkbd_schedule_event_work(atkbd, ATKBD_REP_EVENT_BIT); return 0; } default: return -1; } } /* * atkbd_enable() signals that interrupt handler is allowed to Loading @@ -652,7 +652,7 @@ static int atkbd_event(struct input_dev *dev, static inline void atkbd_enable(struct atkbd *atkbd) { serio_pause_rx(atkbd->ps2dev.serio); atkbd->enabled = 1; atkbd->enabled = true; serio_continue_rx(atkbd->ps2dev.serio); } Loading @@ -664,7 +664,7 @@ static inline void atkbd_enable(struct atkbd *atkbd) static inline void atkbd_disable(struct atkbd *atkbd) { serio_pause_rx(atkbd->ps2dev.serio); atkbd->enabled = 0; atkbd->enabled = false; serio_continue_rx(atkbd->ps2dev.serio); } Loading @@ -685,7 +685,9 @@ static int atkbd_probe(struct atkbd *atkbd) if (atkbd_reset) if (ps2_command(ps2dev, NULL, ATKBD_CMD_RESET_BAT)) printk(KERN_WARNING "atkbd.c: keyboard reset failed on %s\n", ps2dev->serio->phys); dev_warn(&ps2dev->serio->dev, "keyboard reset failed on %s\n", ps2dev->serio->phys); /* * Then we check the keyboard ID. We should get 0xab83 under normal conditions. Loading Loading @@ -715,8 +717,9 @@ static int atkbd_probe(struct atkbd *atkbd) atkbd->id = (param[0] << 8) | param[1]; if (atkbd->id == 0xaca1 && atkbd->translated) { printk(KERN_ERR "atkbd.c: NCD terminal keyboards are only supported on non-translating\n"); printk(KERN_ERR "atkbd.c: controllers. Use i8042.direct=1 to disable translation.\n"); dev_err(&ps2dev->serio->dev, "NCD terminal keyboards are only supported on non-translating controlelrs. " "Use i8042.direct=1 to disable translation.\n"); return -1; } Loading @@ -734,7 +737,7 @@ static int atkbd_select_set(struct atkbd *atkbd, int target_set, int allow_extra struct ps2dev *ps2dev = &atkbd->ps2dev; unsigned char param[2]; atkbd->extra = 0; atkbd->extra = false; /* * For known special keyboards we can go ahead and set the correct set. * We check for NCD PS/2 Sun, NorthGate OmniKey 101 and Loading @@ -753,7 +756,7 @@ static int atkbd_select_set(struct atkbd *atkbd, int target_set, int allow_extra if (allow_extra) { param[0] = 0x71; if (!ps2_command(ps2dev, param, ATKBD_CMD_EX_ENABLE)) { atkbd->extra = 1; atkbd->extra = true; return 2; } } Loading Loading @@ -818,7 +821,8 @@ static int atkbd_activate(struct atkbd *atkbd) */ if (ps2_command(ps2dev, NULL, ATKBD_CMD_ENABLE)) { printk(KERN_ERR "atkbd.c: Failed to enable keyboard on %s\n", dev_err(&ps2dev->serio->dev, "Failed to enable keyboard on %s\n", ps2dev->serio->phys); return -1; } Loading Loading @@ -1091,10 +1095,12 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv) switch (serio->id.type) { case SERIO_8042_XL: atkbd->translated = 1; atkbd->translated = true; /* Fall through */ case SERIO_8042: if (serio->write) atkbd->write = 1; atkbd->write = true; break; } Loading @@ -1103,7 +1109,7 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv) atkbd->scroll = atkbd_scroll; if (atkbd->softrepeat) atkbd->softraw = 1; atkbd->softraw = true; serio_set_drvdata(serio, atkbd); Loading Loading @@ -1161,7 +1167,8 @@ static int atkbd_reconnect(struct serio *serio) struct serio_driver *drv = serio->drv; if (!atkbd || !drv) { printk(KERN_DEBUG "atkbd: reconnect request, but serio is disconnected, ignoring...\n"); dev_dbg(&serio->dev, "reconnect request, but serio is disconnected, ignoring...\n"); return -1; } Loading Loading @@ -1288,7 +1295,8 @@ static ssize_t atkbd_set_extra(struct atkbd *atkbd, const char *buf, size_t coun struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_extra, old_set; bool old_extra; unsigned char old_set; if (!atkbd->write) return -EIO; Loading Loading @@ -1371,7 +1379,7 @@ static ssize_t atkbd_set_scroll(struct atkbd *atkbd, const char *buf, size_t cou struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_scroll; bool old_scroll; if (strict_strtoul(buf, 10, &value) || value > 1) return -EINVAL; Loading Loading @@ -1415,7 +1423,8 @@ static ssize_t atkbd_set_set(struct atkbd *atkbd, const char *buf, size_t count) struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_set, old_extra; unsigned char old_set; bool old_extra; if (!atkbd->write) return -EIO; Loading Loading @@ -1465,7 +1474,7 @@ static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_softrepeat, old_softraw; bool old_softrepeat, old_softraw; if (!atkbd->write) return -EIO; Loading @@ -1485,7 +1494,7 @@ static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t atkbd->dev = new_dev; atkbd->softrepeat = value; if (atkbd->softrepeat) atkbd->softraw = 1; atkbd->softraw = true; atkbd_set_device_attrs(atkbd); err = input_register_device(atkbd->dev); Loading Loading @@ -1515,7 +1524,7 @@ static ssize_t atkbd_set_softraw(struct atkbd *atkbd, const char *buf, size_t co struct input_dev *old_dev, *new_dev; unsigned long value; int err; unsigned char old_softraw; bool old_softraw; if (strict_strtoul(buf, 10, &value) || value > 1) return -EINVAL; Loading