Symbol: sunkbd
drivers/input/keyboard/sunkbd.c
100
schedule_work(&sunkbd->tq);
drivers/input/keyboard/sunkbd.c
101
sunkbd->reset = -1;
drivers/input/keyboard/sunkbd.c
105
sunkbd->layout = -1;
drivers/input/keyboard/sunkbd.c
112
if (!sunkbd->enabled)
drivers/input/keyboard/sunkbd.c
115
if (sunkbd->keycode[data & SUNKBD_KEY]) {
drivers/input/keyboard/sunkbd.c
116
input_report_key(sunkbd->dev,
drivers/input/keyboard/sunkbd.c
117
sunkbd->keycode[data & SUNKBD_KEY],
drivers/input/keyboard/sunkbd.c
119
input_sync(sunkbd->dev);
drivers/input/keyboard/sunkbd.c
138
struct sunkbd *sunkbd = input_get_drvdata(dev);
drivers/input/keyboard/sunkbd.c
144
serio_write(sunkbd->serio, SUNKBD_CMD_SETLED);
drivers/input/keyboard/sunkbd.c
145
serio_write(sunkbd->serio,
drivers/input/keyboard/sunkbd.c
157
serio_write(sunkbd->serio, SUNKBD_CMD_NOCLICK - value);
drivers/input/keyboard/sunkbd.c
161
serio_write(sunkbd->serio, SUNKBD_CMD_BELLOFF - value);
drivers/input/keyboard/sunkbd.c
176
static int sunkbd_initialize(struct sunkbd *sunkbd)
drivers/input/keyboard/sunkbd.c
178
sunkbd->reset = -2;
drivers/input/keyboard/sunkbd.c
179
serio_write(sunkbd->serio, SUNKBD_CMD_RESET);
drivers/input/keyboard/sunkbd.c
180
wait_event_interruptible_timeout(sunkbd->wait, sunkbd->reset >= 0, HZ);
drivers/input/keyboard/sunkbd.c
181
if (sunkbd->reset < 0)
drivers/input/keyboard/sunkbd.c
184
sunkbd->type = sunkbd->reset;
drivers/input/keyboard/sunkbd.c
186
if (sunkbd->type == 4) { /* Type 4 keyboard */
drivers/input/keyboard/sunkbd.c
187
sunkbd->layout = -2;
drivers/input/keyboard/sunkbd.c
188
serio_write(sunkbd->serio, SUNKBD_CMD_LAYOUT);
drivers/input/keyboard/sunkbd.c
189
wait_event_interruptible_timeout(sunkbd->wait,
drivers/input/keyboard/sunkbd.c
190
sunkbd->layout >= 0, HZ / 4);
drivers/input/keyboard/sunkbd.c
191
if (sunkbd->layout < 0)
drivers/input/keyboard/sunkbd.c
193
if (sunkbd->layout & SUNKBD_LAYOUT_5_MASK)
drivers/input/keyboard/sunkbd.c
194
sunkbd->type = 5;
drivers/input/keyboard/sunkbd.c
205
static void sunkbd_set_leds_beeps(struct sunkbd *sunkbd)
drivers/input/keyboard/sunkbd.c
207
serio_write(sunkbd->serio, SUNKBD_CMD_SETLED);
drivers/input/keyboard/sunkbd.c
208
serio_write(sunkbd->serio,
drivers/input/keyboard/sunkbd.c
209
(!!test_bit(LED_CAPSL, sunkbd->dev->led) << 3) |
drivers/input/keyboard/sunkbd.c
210
(!!test_bit(LED_SCROLLL, sunkbd->dev->led) << 2) |
drivers/input/keyboard/sunkbd.c
211
(!!test_bit(LED_COMPOSE, sunkbd->dev->led) << 1) |
drivers/input/keyboard/sunkbd.c
212
!!test_bit(LED_NUML, sunkbd->dev->led));
drivers/input/keyboard/sunkbd.c
213
serio_write(sunkbd->serio,
drivers/input/keyboard/sunkbd.c
214
SUNKBD_CMD_NOCLICK - !!test_bit(SND_CLICK, sunkbd->dev->snd));
drivers/input/keyboard/sunkbd.c
215
serio_write(sunkbd->serio,
drivers/input/keyboard/sunkbd.c
216
SUNKBD_CMD_BELLOFF - !!test_bit(SND_BELL, sunkbd->dev->snd));
drivers/input/keyboard/sunkbd.c
227
struct sunkbd *sunkbd = container_of(work, struct sunkbd, tq);
drivers/input/keyboard/sunkbd.c
234
wait_event_interruptible_timeout(sunkbd->wait,
drivers/input/keyboard/sunkbd.c
235
sunkbd->reset >= 0 || !sunkbd->enabled,
drivers/input/keyboard/sunkbd.c
238
if (sunkbd->reset >= 0 && sunkbd->enabled)
drivers/input/keyboard/sunkbd.c
239
sunkbd_set_leds_beeps(sunkbd);
drivers/input/keyboard/sunkbd.c
242
static void sunkbd_enable(struct sunkbd *sunkbd, bool enable)
drivers/input/keyboard/sunkbd.c
244
scoped_guard(serio_pause_rx, sunkbd->serio)
drivers/input/keyboard/sunkbd.c
245
sunkbd->enabled = enable;
drivers/input/keyboard/sunkbd.c
248
wake_up_interruptible(&sunkbd->wait);
drivers/input/keyboard/sunkbd.c
249
cancel_work_sync(&sunkbd->tq);
drivers/input/keyboard/sunkbd.c
260
struct sunkbd *sunkbd;
drivers/input/keyboard/sunkbd.c
265
sunkbd = kzalloc_obj(*sunkbd);
drivers/input/keyboard/sunkbd.c
267
if (!sunkbd || !input_dev)
drivers/input/keyboard/sunkbd.c
270
sunkbd->serio = serio;
drivers/input/keyboard/sunkbd.c
271
sunkbd->dev = input_dev;
drivers/input/keyboard/sunkbd.c
272
init_waitqueue_head(&sunkbd->wait);
drivers/input/keyboard/sunkbd.c
273
INIT_WORK(&sunkbd->tq, sunkbd_reinit);
drivers/input/keyboard/sunkbd.c
274
snprintf(sunkbd->phys, sizeof(sunkbd->phys), "%s/input0", serio->phys);
drivers/input/keyboard/sunkbd.c
276
serio_set_drvdata(serio, sunkbd);
drivers/input/keyboard/sunkbd.c
282
if (sunkbd_initialize(sunkbd) < 0) {
drivers/input/keyboard/sunkbd.c
287
snprintf(sunkbd->name, sizeof(sunkbd->name),
drivers/input/keyboard/sunkbd.c
288
"Sun Type %d keyboard", sunkbd->type);
drivers/input/keyboard/sunkbd.c
289
memcpy(sunkbd->keycode, sunkbd_keycode, sizeof(sunkbd->keycode));
drivers/input/keyboard/sunkbd.c
291
input_dev->name = sunkbd->name;
drivers/input/keyboard/sunkbd.c
292
input_dev->phys = sunkbd->phys;
drivers/input/keyboard/sunkbd.c
295
input_dev->id.product = sunkbd->type;
drivers/input/keyboard/sunkbd.c
299
input_set_drvdata(input_dev, sunkbd);
drivers/input/keyboard/sunkbd.c
309
input_dev->keycode = sunkbd->keycode;
drivers/input/keyboard/sunkbd.c
313
__set_bit(sunkbd->keycode[i], input_dev->keybit);
drivers/input/keyboard/sunkbd.c
316
sunkbd_enable(sunkbd, true);
drivers/input/keyboard/sunkbd.c
318
err = input_register_device(sunkbd->dev);
drivers/input/keyboard/sunkbd.c
324
fail4: sunkbd_enable(sunkbd, false);
drivers/input/keyboard/sunkbd.c
328
kfree(sunkbd);
drivers/input/keyboard/sunkbd.c
338
struct sunkbd *sunkbd = serio_get_drvdata(serio);
drivers/input/keyboard/sunkbd.c
340
sunkbd_enable(sunkbd, false);
drivers/input/keyboard/sunkbd.c
341
input_unregister_device(sunkbd->dev);
drivers/input/keyboard/sunkbd.c
344
kfree(sunkbd);
drivers/input/keyboard/sunkbd.c
78
struct sunkbd *sunkbd = serio_get_drvdata(serio);
drivers/input/keyboard/sunkbd.c
80
if (sunkbd->reset <= -1) {
drivers/input/keyboard/sunkbd.c
85
sunkbd->reset = data;
drivers/input/keyboard/sunkbd.c
86
wake_up_interruptible(&sunkbd->wait);
drivers/input/keyboard/sunkbd.c
90
if (sunkbd->layout == -1) {
drivers/input/keyboard/sunkbd.c
91
sunkbd->layout = data;
drivers/input/keyboard/sunkbd.c
92
wake_up_interruptible(&sunkbd->wait);
drivers/input/keyboard/sunkbd.c
99
if (sunkbd->enabled)