sunkbd 81 drivers/input/keyboard/sunkbd.c struct sunkbd *sunkbd = serio_get_drvdata(serio); sunkbd 83 drivers/input/keyboard/sunkbd.c if (sunkbd->reset <= -1) { sunkbd 88 drivers/input/keyboard/sunkbd.c sunkbd->reset = data; sunkbd 89 drivers/input/keyboard/sunkbd.c wake_up_interruptible(&sunkbd->wait); sunkbd 93 drivers/input/keyboard/sunkbd.c if (sunkbd->layout == -1) { sunkbd 94 drivers/input/keyboard/sunkbd.c sunkbd->layout = data; sunkbd 95 drivers/input/keyboard/sunkbd.c wake_up_interruptible(&sunkbd->wait); sunkbd 102 drivers/input/keyboard/sunkbd.c schedule_work(&sunkbd->tq); sunkbd 103 drivers/input/keyboard/sunkbd.c sunkbd->reset = -1; sunkbd 107 drivers/input/keyboard/sunkbd.c sunkbd->layout = -1; sunkbd 114 drivers/input/keyboard/sunkbd.c if (!sunkbd->enabled) sunkbd 117 drivers/input/keyboard/sunkbd.c if (sunkbd->keycode[data & SUNKBD_KEY]) { sunkbd 118 drivers/input/keyboard/sunkbd.c input_report_key(sunkbd->dev, sunkbd 119 drivers/input/keyboard/sunkbd.c sunkbd->keycode[data & SUNKBD_KEY], sunkbd 121 drivers/input/keyboard/sunkbd.c input_sync(sunkbd->dev); sunkbd 140 drivers/input/keyboard/sunkbd.c struct sunkbd *sunkbd = input_get_drvdata(dev); sunkbd 146 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, SUNKBD_CMD_SETLED); sunkbd 147 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, sunkbd 159 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, SUNKBD_CMD_NOCLICK - value); sunkbd 163 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, SUNKBD_CMD_BELLOFF - value); sunkbd 178 drivers/input/keyboard/sunkbd.c static int sunkbd_initialize(struct sunkbd *sunkbd) sunkbd 180 drivers/input/keyboard/sunkbd.c sunkbd->reset = -2; sunkbd 181 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, SUNKBD_CMD_RESET); sunkbd 182 drivers/input/keyboard/sunkbd.c wait_event_interruptible_timeout(sunkbd->wait, sunkbd->reset >= 0, HZ); sunkbd 183 drivers/input/keyboard/sunkbd.c if (sunkbd->reset < 0) sunkbd 186 drivers/input/keyboard/sunkbd.c sunkbd->type = sunkbd->reset; sunkbd 188 drivers/input/keyboard/sunkbd.c if (sunkbd->type == 4) { /* Type 4 keyboard */ sunkbd 189 drivers/input/keyboard/sunkbd.c sunkbd->layout = -2; sunkbd 190 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, SUNKBD_CMD_LAYOUT); sunkbd 191 drivers/input/keyboard/sunkbd.c wait_event_interruptible_timeout(sunkbd->wait, sunkbd 192 drivers/input/keyboard/sunkbd.c sunkbd->layout >= 0, HZ / 4); sunkbd 193 drivers/input/keyboard/sunkbd.c if (sunkbd->layout < 0) sunkbd 195 drivers/input/keyboard/sunkbd.c if (sunkbd->layout & SUNKBD_LAYOUT_5_MASK) sunkbd 196 drivers/input/keyboard/sunkbd.c sunkbd->type = 5; sunkbd 209 drivers/input/keyboard/sunkbd.c struct sunkbd *sunkbd = container_of(work, struct sunkbd, tq); sunkbd 211 drivers/input/keyboard/sunkbd.c wait_event_interruptible_timeout(sunkbd->wait, sunkbd->reset >= 0, HZ); sunkbd 213 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, SUNKBD_CMD_SETLED); sunkbd 214 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, sunkbd 215 drivers/input/keyboard/sunkbd.c (!!test_bit(LED_CAPSL, sunkbd->dev->led) << 3) | sunkbd 216 drivers/input/keyboard/sunkbd.c (!!test_bit(LED_SCROLLL, sunkbd->dev->led) << 2) | sunkbd 217 drivers/input/keyboard/sunkbd.c (!!test_bit(LED_COMPOSE, sunkbd->dev->led) << 1) | sunkbd 218 drivers/input/keyboard/sunkbd.c !!test_bit(LED_NUML, sunkbd->dev->led)); sunkbd 219 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, sunkbd 220 drivers/input/keyboard/sunkbd.c SUNKBD_CMD_NOCLICK - !!test_bit(SND_CLICK, sunkbd->dev->snd)); sunkbd 221 drivers/input/keyboard/sunkbd.c serio_write(sunkbd->serio, sunkbd 222 drivers/input/keyboard/sunkbd.c SUNKBD_CMD_BELLOFF - !!test_bit(SND_BELL, sunkbd->dev->snd)); sunkbd 225 drivers/input/keyboard/sunkbd.c static void sunkbd_enable(struct sunkbd *sunkbd, bool enable) sunkbd 227 drivers/input/keyboard/sunkbd.c serio_pause_rx(sunkbd->serio); sunkbd 228 drivers/input/keyboard/sunkbd.c sunkbd->enabled = enable; sunkbd 229 drivers/input/keyboard/sunkbd.c serio_continue_rx(sunkbd->serio); sunkbd 239 drivers/input/keyboard/sunkbd.c struct sunkbd *sunkbd; sunkbd 244 drivers/input/keyboard/sunkbd.c sunkbd = kzalloc(sizeof(struct sunkbd), GFP_KERNEL); sunkbd 246 drivers/input/keyboard/sunkbd.c if (!sunkbd || !input_dev) sunkbd 249 drivers/input/keyboard/sunkbd.c sunkbd->serio = serio; sunkbd 250 drivers/input/keyboard/sunkbd.c sunkbd->dev = input_dev; sunkbd 251 drivers/input/keyboard/sunkbd.c init_waitqueue_head(&sunkbd->wait); sunkbd 252 drivers/input/keyboard/sunkbd.c INIT_WORK(&sunkbd->tq, sunkbd_reinit); sunkbd 253 drivers/input/keyboard/sunkbd.c snprintf(sunkbd->phys, sizeof(sunkbd->phys), "%s/input0", serio->phys); sunkbd 255 drivers/input/keyboard/sunkbd.c serio_set_drvdata(serio, sunkbd); sunkbd 261 drivers/input/keyboard/sunkbd.c if (sunkbd_initialize(sunkbd) < 0) { sunkbd 266 drivers/input/keyboard/sunkbd.c snprintf(sunkbd->name, sizeof(sunkbd->name), sunkbd 267 drivers/input/keyboard/sunkbd.c "Sun Type %d keyboard", sunkbd->type); sunkbd 268 drivers/input/keyboard/sunkbd.c memcpy(sunkbd->keycode, sunkbd_keycode, sizeof(sunkbd->keycode)); sunkbd 270 drivers/input/keyboard/sunkbd.c input_dev->name = sunkbd->name; sunkbd 271 drivers/input/keyboard/sunkbd.c input_dev->phys = sunkbd->phys; sunkbd 274 drivers/input/keyboard/sunkbd.c input_dev->id.product = sunkbd->type; sunkbd 278 drivers/input/keyboard/sunkbd.c input_set_drvdata(input_dev, sunkbd); sunkbd 288 drivers/input/keyboard/sunkbd.c input_dev->keycode = sunkbd->keycode; sunkbd 292 drivers/input/keyboard/sunkbd.c __set_bit(sunkbd->keycode[i], input_dev->keybit); sunkbd 295 drivers/input/keyboard/sunkbd.c sunkbd_enable(sunkbd, true); sunkbd 297 drivers/input/keyboard/sunkbd.c err = input_register_device(sunkbd->dev); sunkbd 303 drivers/input/keyboard/sunkbd.c fail4: sunkbd_enable(sunkbd, false); sunkbd 307 drivers/input/keyboard/sunkbd.c kfree(sunkbd); sunkbd 317 drivers/input/keyboard/sunkbd.c struct sunkbd *sunkbd = serio_get_drvdata(serio); sunkbd 319 drivers/input/keyboard/sunkbd.c sunkbd_enable(sunkbd, false); sunkbd 320 drivers/input/keyboard/sunkbd.c input_unregister_device(sunkbd->dev); sunkbd 323 drivers/input/keyboard/sunkbd.c kfree(sunkbd);