drivers/input/keyboard/atkbd.c
1058
static unsigned int atkbd_oqo_01plus_scancode_fixup(struct atkbd *atkbd,
drivers/input/keyboard/atkbd.c
1061
if (atkbd->translated && atkbd->emul == 1 &&
drivers/input/keyboard/atkbd.c
1063
atkbd->emul = 0;
drivers/input/keyboard/atkbd.c
1070
static int atkbd_get_keymap_from_fwnode(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
1072
struct device *dev = &atkbd->ps2dev.serio->dev;
drivers/input/keyboard/atkbd.c
1090
memset(atkbd->keycode, 0, sizeof(atkbd->keycode));
drivers/input/keyboard/atkbd.c
1099
atkbd->keycode[scancode] = keycode;
drivers/input/keyboard/atkbd.c
1110
static void atkbd_set_keycode_table(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
1112
struct device *dev = &atkbd->ps2dev.serio->dev;
drivers/input/keyboard/atkbd.c
1116
memset(atkbd->keycode, 0, sizeof(atkbd->keycode));
drivers/input/keyboard/atkbd.c
1117
bitmap_zero(atkbd->force_release_mask, ATKBD_KEYMAP_SIZE);
drivers/input/keyboard/atkbd.c
1119
if (!atkbd_get_keymap_from_fwnode(atkbd)) {
drivers/input/keyboard/atkbd.c
1121
} else if (atkbd->translated) {
drivers/input/keyboard/atkbd.c
1124
atkbd->keycode[i] = atkbd_set2_keycode[scancode];
drivers/input/keyboard/atkbd.c
1125
atkbd->keycode[i | 0x80] = atkbd_set2_keycode[scancode | 0x80];
drivers/input/keyboard/atkbd.c
1126
if (atkbd->scroll)
drivers/input/keyboard/atkbd.c
1129
atkbd->keycode[i | 0x80] = atkbd_scroll_keys[j].keycode;
drivers/input/keyboard/atkbd.c
1131
} else if (atkbd->set == 3) {
drivers/input/keyboard/atkbd.c
1132
memcpy(atkbd->keycode, atkbd_set3_keycode, sizeof(atkbd->keycode));
drivers/input/keyboard/atkbd.c
1134
memcpy(atkbd->keycode, atkbd_set2_keycode, sizeof(atkbd->keycode));
drivers/input/keyboard/atkbd.c
1136
if (atkbd->scroll)
drivers/input/keyboard/atkbd.c
1139
atkbd->keycode[scancode] = atkbd_scroll_keys[i].keycode;
drivers/input/keyboard/atkbd.c
1147
scancode = atkbd_compat_scancode(atkbd, ATKBD_RET_HANGEUL);
drivers/input/keyboard/atkbd.c
1148
atkbd->keycode[scancode] = KEY_HANGEUL;
drivers/input/keyboard/atkbd.c
1149
__set_bit(scancode, atkbd->force_release_mask);
drivers/input/keyboard/atkbd.c
1151
scancode = atkbd_compat_scancode(atkbd, ATKBD_RET_HANJA);
drivers/input/keyboard/atkbd.c
1152
atkbd->keycode[scancode] = KEY_HANJA;
drivers/input/keyboard/atkbd.c
1153
__set_bit(scancode, atkbd->force_release_mask);
drivers/input/keyboard/atkbd.c
1159
atkbd_platform_fixup(atkbd, atkbd_platform_fixup_data);
drivers/input/keyboard/atkbd.c
1166
static void atkbd_set_device_attrs(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
1168
struct input_dev *input_dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
1171
if (atkbd->extra)
drivers/input/keyboard/atkbd.c
1172
snprintf(atkbd->name, sizeof(atkbd->name),
drivers/input/keyboard/atkbd.c
1175
snprintf(atkbd->name, sizeof(atkbd->name),
drivers/input/keyboard/atkbd.c
1177
atkbd->translated ? "Translated" : "Raw", atkbd->set);
drivers/input/keyboard/atkbd.c
1179
scnprintf(atkbd->phys, sizeof(atkbd->phys),
drivers/input/keyboard/atkbd.c
1180
"%s/input0", atkbd->ps2dev.serio->phys);
drivers/input/keyboard/atkbd.c
1182
input_dev->name = atkbd->name;
drivers/input/keyboard/atkbd.c
1183
input_dev->phys = atkbd->phys;
drivers/input/keyboard/atkbd.c
1186
input_dev->id.product = atkbd->translated ? 1 : atkbd->set;
drivers/input/keyboard/atkbd.c
1187
input_dev->id.version = atkbd->id;
drivers/input/keyboard/atkbd.c
1189
input_dev->dev.parent = &atkbd->ps2dev.serio->dev;
drivers/input/keyboard/atkbd.c
1191
input_set_drvdata(input_dev, atkbd);
drivers/input/keyboard/atkbd.c
1196
if (atkbd->write) {
drivers/input/keyboard/atkbd.c
1202
if (atkbd->extra)
drivers/input/keyboard/atkbd.c
1207
if (!atkbd->softrepeat) {
drivers/input/keyboard/atkbd.c
1212
input_dev->mscbit[0] = atkbd->softraw ? BIT_MASK(MSC_SCAN) :
drivers/input/keyboard/atkbd.c
1215
if (atkbd->scroll) {
drivers/input/keyboard/atkbd.c
1222
input_dev->keycode = atkbd->keycode;
drivers/input/keyboard/atkbd.c
1223
input_dev->keycodesize = sizeof(atkbd->keycode[0]);
drivers/input/keyboard/atkbd.c
1227
if (atkbd->keycode[i] != KEY_RESERVED &&
drivers/input/keyboard/atkbd.c
1228
atkbd->keycode[i] != ATKBD_KEY_NULL &&
drivers/input/keyboard/atkbd.c
1229
atkbd->keycode[i] < ATKBD_SPECIAL) {
drivers/input/keyboard/atkbd.c
1230
__set_bit(atkbd->keycode[i], input_dev->keybit);
drivers/input/keyboard/atkbd.c
1237
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
1245
atkbd->vdata.function_row_physmap,
drivers/input/keyboard/atkbd.c
1247
atkbd->vdata.num_function_row_keys = n;
drivers/input/keyboard/atkbd.c
1261
struct atkbd *atkbd;
drivers/input/keyboard/atkbd.c
1265
atkbd = kzalloc_obj(*atkbd);
drivers/input/keyboard/atkbd.c
1267
if (!atkbd || !dev)
drivers/input/keyboard/atkbd.c
1270
atkbd->dev = dev;
drivers/input/keyboard/atkbd.c
1271
ps2_init(&atkbd->ps2dev, serio,
drivers/input/keyboard/atkbd.c
1273
INIT_DELAYED_WORK(&atkbd->event_work, atkbd_event_work);
drivers/input/keyboard/atkbd.c
1274
mutex_init(&atkbd->mutex);
drivers/input/keyboard/atkbd.c
1278
atkbd->translated = true;
drivers/input/keyboard/atkbd.c
1283
atkbd->write = true;
drivers/input/keyboard/atkbd.c
1287
atkbd->softraw = atkbd_softraw;
drivers/input/keyboard/atkbd.c
1288
atkbd->softrepeat = atkbd_softrepeat;
drivers/input/keyboard/atkbd.c
1289
atkbd->scroll = atkbd_scroll;
drivers/input/keyboard/atkbd.c
1291
if (atkbd->softrepeat)
drivers/input/keyboard/atkbd.c
1292
atkbd->softraw = true;
drivers/input/keyboard/atkbd.c
1294
serio_set_drvdata(serio, atkbd);
drivers/input/keyboard/atkbd.c
1300
if (atkbd->write) {
drivers/input/keyboard/atkbd.c
1301
if (atkbd_probe(atkbd)) {
drivers/input/keyboard/atkbd.c
1306
atkbd->set = atkbd_select_set(atkbd, atkbd_set, atkbd_extra);
drivers/input/keyboard/atkbd.c
1307
atkbd_reset_state(atkbd);
drivers/input/keyboard/atkbd.c
1310
atkbd->set = 2;
drivers/input/keyboard/atkbd.c
1311
atkbd->id = 0xab00;
drivers/input/keyboard/atkbd.c
1316
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1317
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1319
atkbd_enable(atkbd);
drivers/input/keyboard/atkbd.c
1321
atkbd_activate(atkbd);
drivers/input/keyboard/atkbd.c
1323
err = input_register_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
1332
kfree(atkbd);
drivers/input/keyboard/atkbd.c
1342
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
1346
if (!atkbd || !drv) {
drivers/input/keyboard/atkbd.c
1352
guard(mutex)(&atkbd->mutex);
drivers/input/keyboard/atkbd.c
1354
atkbd_disable(atkbd);
drivers/input/keyboard/atkbd.c
1356
if (atkbd->write) {
drivers/input/keyboard/atkbd.c
1357
error = atkbd_probe(atkbd);
drivers/input/keyboard/atkbd.c
1361
if (atkbd->set != atkbd_select_set(atkbd, atkbd->set, atkbd->extra))
drivers/input/keyboard/atkbd.c
1371
atkbd_set_leds(atkbd);
drivers/input/keyboard/atkbd.c
1372
if (!atkbd->softrepeat)
drivers/input/keyboard/atkbd.c
1373
atkbd_set_repeat_rate(atkbd);
drivers/input/keyboard/atkbd.c
1380
atkbd->xl_bit = 0;
drivers/input/keyboard/atkbd.c
1381
atkbd->emul = 0;
drivers/input/keyboard/atkbd.c
1383
atkbd_enable(atkbd);
drivers/input/keyboard/atkbd.c
1384
if (atkbd->write)
drivers/input/keyboard/atkbd.c
1385
atkbd_activate(atkbd);
drivers/input/keyboard/atkbd.c
1429
ssize_t (*handler)(struct atkbd *, char *))
drivers/input/keyboard/atkbd.c
1432
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
1434
return handler(atkbd, buf);
drivers/input/keyboard/atkbd.c
1438
ssize_t (*handler)(struct atkbd *, const char *, size_t))
drivers/input/keyboard/atkbd.c
1441
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
1444
scoped_guard(mutex_intr, &atkbd->mutex) {
drivers/input/keyboard/atkbd.c
1445
atkbd_disable(atkbd);
drivers/input/keyboard/atkbd.c
1446
retval = handler(atkbd, buf, count);
drivers/input/keyboard/atkbd.c
1447
atkbd_enable(atkbd);
drivers/input/keyboard/atkbd.c
1455
static ssize_t atkbd_show_extra(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1457
return sprintf(buf, "%d\n", atkbd->extra ? 1 : 0);
drivers/input/keyboard/atkbd.c
1460
static ssize_t atkbd_set_extra(struct atkbd *atkbd, const char *buf, size_t count)
drivers/input/keyboard/atkbd.c
1468
if (!atkbd->write)
drivers/input/keyboard/atkbd.c
1478
if (atkbd->extra != value) {
drivers/input/keyboard/atkbd.c
1484
old_dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
1485
old_extra = atkbd->extra;
drivers/input/keyboard/atkbd.c
1486
old_set = atkbd->set;
drivers/input/keyboard/atkbd.c
1492
atkbd->dev = new_dev;
drivers/input/keyboard/atkbd.c
1493
atkbd->set = atkbd_select_set(atkbd, atkbd->set, value);
drivers/input/keyboard/atkbd.c
1494
atkbd_reset_state(atkbd);
drivers/input/keyboard/atkbd.c
1495
atkbd_activate(atkbd);
drivers/input/keyboard/atkbd.c
1496
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1497
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1499
err = input_register_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
1503
atkbd->dev = old_dev;
drivers/input/keyboard/atkbd.c
1504
atkbd->set = atkbd_select_set(atkbd, old_set, old_extra);
drivers/input/keyboard/atkbd.c
1505
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1506
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1516
static ssize_t atkbd_show_force_release(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1519
ATKBD_KEYMAP_SIZE, atkbd->force_release_mask);
drivers/input/keyboard/atkbd.c
1527
static ssize_t atkbd_set_force_release(struct atkbd *atkbd,
drivers/input/keyboard/atkbd.c
1538
memcpy(atkbd->force_release_mask, new_mask, sizeof(atkbd->force_release_mask));
drivers/input/keyboard/atkbd.c
1542
static ssize_t atkbd_show_scroll(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1544
return sprintf(buf, "%d\n", atkbd->scroll ? 1 : 0);
drivers/input/keyboard/atkbd.c
1547
static ssize_t atkbd_set_scroll(struct atkbd *atkbd, const char *buf, size_t count)
drivers/input/keyboard/atkbd.c
1561
if (atkbd->scroll != value) {
drivers/input/keyboard/atkbd.c
1562
old_dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
1563
old_scroll = atkbd->scroll;
drivers/input/keyboard/atkbd.c
1569
atkbd->dev = new_dev;
drivers/input/keyboard/atkbd.c
1570
atkbd->scroll = value;
drivers/input/keyboard/atkbd.c
1571
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1572
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1574
err = input_register_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
1578
atkbd->scroll = old_scroll;
drivers/input/keyboard/atkbd.c
1579
atkbd->dev = old_dev;
drivers/input/keyboard/atkbd.c
1580
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1581
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1590
static ssize_t atkbd_show_set(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1592
return sprintf(buf, "%d\n", atkbd->set);
drivers/input/keyboard/atkbd.c
1595
static ssize_t atkbd_set_set(struct atkbd *atkbd, const char *buf, size_t count)
drivers/input/keyboard/atkbd.c
1603
if (!atkbd->write)
drivers/input/keyboard/atkbd.c
1613
if (atkbd->set != value) {
drivers/input/keyboard/atkbd.c
1614
old_dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
1615
old_extra = atkbd->extra;
drivers/input/keyboard/atkbd.c
1616
old_set = atkbd->set;
drivers/input/keyboard/atkbd.c
1622
atkbd->dev = new_dev;
drivers/input/keyboard/atkbd.c
1623
atkbd->set = atkbd_select_set(atkbd, value, atkbd->extra);
drivers/input/keyboard/atkbd.c
1624
atkbd_reset_state(atkbd);
drivers/input/keyboard/atkbd.c
1625
atkbd_activate(atkbd);
drivers/input/keyboard/atkbd.c
1626
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1627
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1629
err = input_register_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
1633
atkbd->dev = old_dev;
drivers/input/keyboard/atkbd.c
1634
atkbd->set = atkbd_select_set(atkbd, old_set, old_extra);
drivers/input/keyboard/atkbd.c
1635
atkbd_set_keycode_table(atkbd);
drivers/input/keyboard/atkbd.c
1636
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1645
static ssize_t atkbd_show_softrepeat(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1647
return sprintf(buf, "%d\n", atkbd->softrepeat ? 1 : 0);
drivers/input/keyboard/atkbd.c
1650
static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t count)
drivers/input/keyboard/atkbd.c
1657
if (!atkbd->write)
drivers/input/keyboard/atkbd.c
1667
if (atkbd->softrepeat != value) {
drivers/input/keyboard/atkbd.c
1668
old_dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
1669
old_softrepeat = atkbd->softrepeat;
drivers/input/keyboard/atkbd.c
1670
old_softraw = atkbd->softraw;
drivers/input/keyboard/atkbd.c
1676
atkbd->dev = new_dev;
drivers/input/keyboard/atkbd.c
1677
atkbd->softrepeat = value;
drivers/input/keyboard/atkbd.c
1678
if (atkbd->softrepeat)
drivers/input/keyboard/atkbd.c
1679
atkbd->softraw = true;
drivers/input/keyboard/atkbd.c
1680
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1682
err = input_register_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
1686
atkbd->dev = old_dev;
drivers/input/keyboard/atkbd.c
1687
atkbd->softrepeat = old_softrepeat;
drivers/input/keyboard/atkbd.c
1688
atkbd->softraw = old_softraw;
drivers/input/keyboard/atkbd.c
1689
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1698
static ssize_t atkbd_show_softraw(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1700
return sprintf(buf, "%d\n", atkbd->softraw ? 1 : 0);
drivers/input/keyboard/atkbd.c
1703
static ssize_t atkbd_set_softraw(struct atkbd *atkbd, const char *buf, size_t count)
drivers/input/keyboard/atkbd.c
1717
if (atkbd->softraw != value) {
drivers/input/keyboard/atkbd.c
1718
old_dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
1719
old_softraw = atkbd->softraw;
drivers/input/keyboard/atkbd.c
1725
atkbd->dev = new_dev;
drivers/input/keyboard/atkbd.c
1726
atkbd->softraw = value;
drivers/input/keyboard/atkbd.c
1727
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1729
err = input_register_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
1733
atkbd->dev = old_dev;
drivers/input/keyboard/atkbd.c
1734
atkbd->softraw = old_softraw;
drivers/input/keyboard/atkbd.c
1735
atkbd_set_device_attrs(atkbd);
drivers/input/keyboard/atkbd.c
1744
static ssize_t atkbd_show_err_count(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
1746
return sprintf(buf, "%lu\n", atkbd->err_count);
drivers/input/keyboard/atkbd.c
239
static void (*atkbd_platform_fixup)(struct atkbd *, const void *data);
drivers/input/keyboard/atkbd.c
241
static unsigned int (*atkbd_platform_scancode_fixup)(struct atkbd *, unsigned int);
drivers/input/keyboard/atkbd.c
250
ssize_t (*handler)(struct atkbd *, char *));
drivers/input/keyboard/atkbd.c
252
ssize_t (*handler)(struct atkbd *, const char *, size_t));
drivers/input/keyboard/atkbd.c
254
static ssize_t atkbd_show_##_name(struct atkbd *, char *); \
drivers/input/keyboard/atkbd.c
255
static ssize_t atkbd_set_##_name(struct atkbd *, const char *, size_t); \
drivers/input/keyboard/atkbd.c
277
static ssize_t atkbd_show_##_name(struct atkbd *, char *); \
drivers/input/keyboard/atkbd.c
301
static ssize_t atkbd_show_function_row_physmap(struct atkbd *atkbd, char *buf)
drivers/input/keyboard/atkbd.c
303
return vivaldi_function_row_physmap_show(&atkbd->vdata, buf);
drivers/input/keyboard/atkbd.c
306
static struct atkbd *atkbd_from_serio(struct serio *serio)
drivers/input/keyboard/atkbd.c
310
return container_of(ps2dev, struct atkbd, ps2dev);
drivers/input/keyboard/atkbd.c
318
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
321
!atkbd->vdata.num_function_row_keys)
drivers/input/keyboard/atkbd.c
362
static void atkbd_calculate_xl_bit(struct atkbd *atkbd, u8 code)
drivers/input/keyboard/atkbd.c
369
__clear_bit(i, &atkbd->xl_bit);
drivers/input/keyboard/atkbd.c
371
__set_bit(i, &atkbd->xl_bit);
drivers/input/keyboard/atkbd.c
381
static unsigned int atkbd_compat_scancode(struct atkbd *atkbd, unsigned int code)
drivers/input/keyboard/atkbd.c
383
if (atkbd->set == 3) {
drivers/input/keyboard/atkbd.c
384
if (atkbd->emul == 1)
drivers/input/keyboard/atkbd.c
388
if (atkbd->emul == 1)
drivers/input/keyboard/atkbd.c
403
struct atkbd *atkbd = container_of(ps2dev, struct atkbd, ps2dev);
drivers/input/keyboard/atkbd.c
408
!atkbd->resend && atkbd->write) {
drivers/input/keyboard/atkbd.c
411
atkbd->resend = true;
drivers/input/keyboard/atkbd.c
416
atkbd->resend = false;
drivers/input/keyboard/atkbd.c
439
struct atkbd *atkbd = container_of(ps2dev, struct atkbd, ps2dev);
drivers/input/keyboard/atkbd.c
440
struct input_dev *dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
448
if (!atkbd->enabled)
drivers/input/keyboard/atkbd.c
454
code = atkbd_platform_scancode_fixup(atkbd, code);
drivers/input/keyboard/atkbd.c
456
if (atkbd->translated) {
drivers/input/keyboard/atkbd.c
457
if (atkbd->emul || atkbd_need_xlate(atkbd->xl_bit, code)) {
drivers/input/keyboard/atkbd.c
458
atkbd->release = code >> 7;
drivers/input/keyboard/atkbd.c
462
if (!atkbd->emul)
drivers/input/keyboard/atkbd.c
463
atkbd_calculate_xl_bit(atkbd, data);
drivers/input/keyboard/atkbd.c
468
atkbd->enabled = false;
drivers/input/keyboard/atkbd.c
469
serio_reconnect(atkbd->ps2dev.serio);
drivers/input/keyboard/atkbd.c
472
atkbd->emul = 1;
drivers/input/keyboard/atkbd.c
475
atkbd->emul = 2;
drivers/input/keyboard/atkbd.c
478
atkbd->release = true;
drivers/input/keyboard/atkbd.c
487
atkbd->err_count++;
drivers/input/keyboard/atkbd.c
493
code = atkbd_compat_scancode(atkbd, code);
drivers/input/keyboard/atkbd.c
495
if (atkbd->emul && --atkbd->emul)
drivers/input/keyboard/atkbd.c
498
keycode = atkbd->keycode[code];
drivers/input/keyboard/atkbd.c
500
if (!(atkbd->release && test_bit(code, atkbd->force_release_mask)))
drivers/input/keyboard/atkbd.c
510
atkbd->release ? "released" : "pressed",
drivers/input/keyboard/atkbd.c
511
atkbd->translated ? "translated" : "raw",
drivers/input/keyboard/atkbd.c
512
atkbd->set, code, serio->phys);
drivers/input/keyboard/atkbd.c
531
click = !atkbd->release;
drivers/input/keyboard/atkbd.c
540
if (atkbd->release) {
drivers/input/keyboard/atkbd.c
542
atkbd->last = 0;
drivers/input/keyboard/atkbd.c
543
} else if (!atkbd->softrepeat && test_bit(keycode, dev->key)) {
drivers/input/keyboard/atkbd.c
545
value = time_before(jiffies, atkbd->time) && atkbd->last == code ? 1 : 2;
drivers/input/keyboard/atkbd.c
548
atkbd->last = code;
drivers/input/keyboard/atkbd.c
549
atkbd->time = jiffies + msecs_to_jiffies(dev->rep[REP_DELAY]) / 2;
drivers/input/keyboard/atkbd.c
555
if (value && test_bit(code, atkbd->force_release_mask)) {
drivers/input/keyboard/atkbd.c
562
if (atkbd->scroll) {
drivers/input/keyboard/atkbd.c
566
atkbd->release ? -scroll : scroll);
drivers/input/keyboard/atkbd.c
571
atkbd->release = false;
drivers/input/keyboard/atkbd.c
574
static int atkbd_set_repeat_rate(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
582
struct input_dev *dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
595
return ps2_command(&atkbd->ps2dev, ¶m, ATKBD_CMD_SETREP);
drivers/input/keyboard/atkbd.c
598
static int atkbd_set_leds(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
600
struct input_dev *dev = atkbd->dev;
drivers/input/keyboard/atkbd.c
606
if (ps2_command(&atkbd->ps2dev, param, ATKBD_CMD_SETLEDS))
drivers/input/keyboard/atkbd.c
609
if (atkbd->extra) {
drivers/input/keyboard/atkbd.c
616
if (ps2_command(&atkbd->ps2dev, param, ATKBD_CMD_EX_SETLEDS))
drivers/input/keyboard/atkbd.c
631
struct atkbd *atkbd = container_of(work, struct atkbd, event_work.work);
drivers/input/keyboard/atkbd.c
633
guard(mutex)(&atkbd->mutex);
drivers/input/keyboard/atkbd.c
635
if (!atkbd->enabled) {
drivers/input/keyboard/atkbd.c
642
schedule_delayed_work(&atkbd->event_work, msecs_to_jiffies(100));
drivers/input/keyboard/atkbd.c
644
if (test_and_clear_bit(ATKBD_LED_EVENT_BIT, &atkbd->event_mask))
drivers/input/keyboard/atkbd.c
645
atkbd_set_leds(atkbd);
drivers/input/keyboard/atkbd.c
647
if (test_and_clear_bit(ATKBD_REP_EVENT_BIT, &atkbd->event_mask))
drivers/input/keyboard/atkbd.c
648
atkbd_set_repeat_rate(atkbd);
drivers/input/keyboard/atkbd.c
656
static void atkbd_schedule_event_work(struct atkbd *atkbd, int event_bit)
drivers/input/keyboard/atkbd.c
660
if (time_after(jiffies, atkbd->event_jiffies + delay))
drivers/input/keyboard/atkbd.c
663
atkbd->event_jiffies = jiffies;
drivers/input/keyboard/atkbd.c
664
set_bit(event_bit, &atkbd->event_mask);
drivers/input/keyboard/atkbd.c
666
schedule_delayed_work(&atkbd->event_work, delay);
drivers/input/keyboard/atkbd.c
678
struct atkbd *atkbd = input_get_drvdata(dev);
drivers/input/keyboard/atkbd.c
680
if (!atkbd->write)
drivers/input/keyboard/atkbd.c
685
atkbd_schedule_event_work(atkbd, ATKBD_LED_EVENT_BIT);
drivers/input/keyboard/atkbd.c
689
if (!atkbd->softrepeat)
drivers/input/keyboard/atkbd.c
690
atkbd_schedule_event_work(atkbd, ATKBD_REP_EVENT_BIT);
drivers/input/keyboard/atkbd.c
703
static inline void atkbd_enable(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
705
guard(serio_pause_rx)(atkbd->ps2dev.serio);
drivers/input/keyboard/atkbd.c
707
atkbd->enabled = true;
drivers/input/keyboard/atkbd.c
715
static inline void atkbd_disable(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
717
guard(serio_pause_rx)(atkbd->ps2dev.serio);
drivers/input/keyboard/atkbd.c
719
atkbd->enabled = false;
drivers/input/keyboard/atkbd.c
722
static int atkbd_activate(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
724
struct ps2dev *ps2dev = &atkbd->ps2dev;
drivers/input/keyboard/atkbd.c
745
static void atkbd_deactivate(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
747
struct ps2dev *ps2dev = &atkbd->ps2dev;
drivers/input/keyboard/atkbd.c
785
static bool atkbd_skip_getid(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
787
return atkbd->translated && atkbd_is_portable_device();
drivers/input/keyboard/atkbd.c
790
static inline bool atkbd_skip_getid(struct atkbd *atkbd) { return false; }
drivers/input/keyboard/atkbd.c
797
static int atkbd_probe(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
799
struct ps2dev *ps2dev = &atkbd->ps2dev;
drivers/input/keyboard/atkbd.c
814
if (atkbd_skip_getid(atkbd)) {
drivers/input/keyboard/atkbd.c
815
atkbd->id = 0xab83;
drivers/input/keyboard/atkbd.c
836
atkbd->id = 0xabba;
drivers/input/keyboard/atkbd.c
843
atkbd->id = (param[0] << 8) | param[1];
drivers/input/keyboard/atkbd.c
845
if (atkbd->id == 0xaca1 && atkbd->translated) {
drivers/input/keyboard/atkbd.c
857
atkbd_deactivate(atkbd);
drivers/input/keyboard/atkbd.c
868
static int atkbd_select_set(struct atkbd *atkbd, int target_set, int allow_extra)
drivers/input/keyboard/atkbd.c
870
struct ps2dev *ps2dev = &atkbd->ps2dev;
drivers/input/keyboard/atkbd.c
873
atkbd->extra = false;
drivers/input/keyboard/atkbd.c
880
if (atkbd->translated)
drivers/input/keyboard/atkbd.c
883
if (atkbd->id == 0xaca1) {
drivers/input/keyboard/atkbd.c
892
atkbd->extra = true;
drivers/input/keyboard/atkbd.c
906
atkbd->id = param[0] << 8 | param[1];
drivers/input/keyboard/atkbd.c
929
static int atkbd_reset_state(struct atkbd *atkbd)
drivers/input/keyboard/atkbd.c
931
struct ps2dev *ps2dev = &atkbd->ps2dev;
drivers/input/keyboard/atkbd.c
959
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
961
atkbd_disable(atkbd);
drivers/input/keyboard/atkbd.c
962
ps2_command(&atkbd->ps2dev, NULL, ATKBD_CMD_RESET_DEF);
drivers/input/keyboard/atkbd.c
970
struct atkbd *atkbd = atkbd_from_serio(serio);
drivers/input/keyboard/atkbd.c
972
atkbd_disable(atkbd);
drivers/input/keyboard/atkbd.c
974
input_unregister_device(atkbd->dev);
drivers/input/keyboard/atkbd.c
982
cancel_delayed_work_sync(&atkbd->event_work);
drivers/input/keyboard/atkbd.c
986
kfree(atkbd);
drivers/input/keyboard/atkbd.c
992
static void atkbd_apply_forced_release_keylist(struct atkbd *atkbd, const void *data)
drivers/input/keyboard/atkbd.c
997
if (atkbd->set == 2)
drivers/input/keyboard/atkbd.c
999
__set_bit(keys[i], atkbd->force_release_mask);