serio_raw 44 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw; serio_raw 62 drivers/input/serio/serio_raw.c static struct serio_raw *serio_raw_locate(int minor) serio_raw 64 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw; serio_raw 66 drivers/input/serio/serio_raw.c list_for_each_entry(serio_raw, &serio_raw_list, node) { serio_raw 67 drivers/input/serio/serio_raw.c if (serio_raw->dev.minor == minor) serio_raw 68 drivers/input/serio/serio_raw.c return serio_raw; serio_raw 76 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw; serio_raw 84 drivers/input/serio/serio_raw.c serio_raw = serio_raw_locate(iminor(inode)); serio_raw 85 drivers/input/serio/serio_raw.c if (!serio_raw) { serio_raw 90 drivers/input/serio/serio_raw.c if (serio_raw->dead) { serio_raw 101 drivers/input/serio/serio_raw.c client->serio_raw = serio_raw; serio_raw 104 drivers/input/serio/serio_raw.c kref_get(&serio_raw->kref); serio_raw 106 drivers/input/serio/serio_raw.c serio_pause_rx(serio_raw->serio); serio_raw 107 drivers/input/serio/serio_raw.c list_add_tail(&client->node, &serio_raw->client_list); serio_raw 108 drivers/input/serio/serio_raw.c serio_continue_rx(serio_raw->serio); serio_raw 117 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = serio_raw 118 drivers/input/serio/serio_raw.c container_of(kref, struct serio_raw, kref); serio_raw 120 drivers/input/serio/serio_raw.c put_device(&serio_raw->serio->dev); serio_raw 121 drivers/input/serio/serio_raw.c kfree(serio_raw); serio_raw 127 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = client->serio_raw; serio_raw 129 drivers/input/serio/serio_raw.c serio_pause_rx(serio_raw->serio); serio_raw 131 drivers/input/serio/serio_raw.c serio_continue_rx(serio_raw->serio); serio_raw 135 drivers/input/serio/serio_raw.c kref_put(&serio_raw->kref, serio_raw_free); serio_raw 140 drivers/input/serio/serio_raw.c static bool serio_raw_fetch_byte(struct serio_raw *serio_raw, char *c) serio_raw 144 drivers/input/serio/serio_raw.c serio_pause_rx(serio_raw->serio); serio_raw 146 drivers/input/serio/serio_raw.c empty = serio_raw->head == serio_raw->tail; serio_raw 148 drivers/input/serio/serio_raw.c *c = serio_raw->queue[serio_raw->tail]; serio_raw 149 drivers/input/serio/serio_raw.c serio_raw->tail = (serio_raw->tail + 1) % SERIO_RAW_QUEUE_LEN; serio_raw 152 drivers/input/serio/serio_raw.c serio_continue_rx(serio_raw->serio); serio_raw 161 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = client->serio_raw; serio_raw 167 drivers/input/serio/serio_raw.c if (serio_raw->dead) serio_raw 170 drivers/input/serio/serio_raw.c if (serio_raw->head == serio_raw->tail && serio_raw 177 drivers/input/serio/serio_raw.c while (read < count && serio_raw_fetch_byte(serio_raw, &c)) { serio_raw 187 drivers/input/serio/serio_raw.c error = wait_event_interruptible(serio_raw->wait, serio_raw 188 drivers/input/serio/serio_raw.c serio_raw->head != serio_raw->tail || serio_raw 189 drivers/input/serio/serio_raw.c serio_raw->dead); serio_raw 202 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = client->serio_raw; serio_raw 210 drivers/input/serio/serio_raw.c if (serio_raw->dead) { serio_raw 224 drivers/input/serio/serio_raw.c if (serio_write(serio_raw->serio, c)) { serio_raw 242 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = client->serio_raw; serio_raw 245 drivers/input/serio/serio_raw.c poll_wait(file, &serio_raw->wait, wait); serio_raw 247 drivers/input/serio/serio_raw.c mask = serio_raw->dead ? EPOLLHUP | EPOLLERR : EPOLLOUT | EPOLLWRNORM; serio_raw 248 drivers/input/serio/serio_raw.c if (serio_raw->head != serio_raw->tail) serio_raw 273 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = serio_get_drvdata(serio); serio_raw 275 drivers/input/serio/serio_raw.c unsigned int head = serio_raw->head; serio_raw 278 drivers/input/serio/serio_raw.c serio_raw->queue[head] = data; serio_raw 280 drivers/input/serio/serio_raw.c if (likely(head != serio_raw->tail)) { serio_raw 281 drivers/input/serio/serio_raw.c serio_raw->head = head; serio_raw 282 drivers/input/serio/serio_raw.c list_for_each_entry(client, &serio_raw->client_list, node) serio_raw 284 drivers/input/serio/serio_raw.c wake_up_interruptible(&serio_raw->wait); serio_raw 293 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw; serio_raw 296 drivers/input/serio/serio_raw.c serio_raw = kzalloc(sizeof(struct serio_raw), GFP_KERNEL); serio_raw 297 drivers/input/serio/serio_raw.c if (!serio_raw) { serio_raw 302 drivers/input/serio/serio_raw.c snprintf(serio_raw->name, sizeof(serio_raw->name), serio_raw 304 drivers/input/serio/serio_raw.c kref_init(&serio_raw->kref); serio_raw 305 drivers/input/serio/serio_raw.c INIT_LIST_HEAD(&serio_raw->client_list); serio_raw 306 drivers/input/serio/serio_raw.c init_waitqueue_head(&serio_raw->wait); serio_raw 308 drivers/input/serio/serio_raw.c serio_raw->serio = serio; serio_raw 311 drivers/input/serio/serio_raw.c serio_set_drvdata(serio, serio_raw); serio_raw 321 drivers/input/serio/serio_raw.c list_add_tail(&serio_raw->node, &serio_raw_list); serio_raw 324 drivers/input/serio/serio_raw.c serio_raw->dev.minor = PSMOUSE_MINOR; serio_raw 325 drivers/input/serio/serio_raw.c serio_raw->dev.name = serio_raw->name; serio_raw 326 drivers/input/serio/serio_raw.c serio_raw->dev.parent = &serio->dev; serio_raw 327 drivers/input/serio/serio_raw.c serio_raw->dev.fops = &serio_raw_fops; serio_raw 329 drivers/input/serio/serio_raw.c err = misc_register(&serio_raw->dev); serio_raw 331 drivers/input/serio/serio_raw.c serio_raw->dev.minor = MISC_DYNAMIC_MINOR; serio_raw 332 drivers/input/serio/serio_raw.c err = misc_register(&serio_raw->dev); serio_raw 343 drivers/input/serio/serio_raw.c serio->phys, serio_raw->name, serio_raw->dev.minor); serio_raw 347 drivers/input/serio/serio_raw.c list_del_init(&serio_raw->node); serio_raw 352 drivers/input/serio/serio_raw.c kref_put(&serio_raw->kref, serio_raw_free); serio_raw 358 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = serio_get_drvdata(serio); serio_raw 361 drivers/input/serio/serio_raw.c if (!drv || !serio_raw) { serio_raw 378 drivers/input/serio/serio_raw.c static void serio_raw_hangup(struct serio_raw *serio_raw) serio_raw 382 drivers/input/serio/serio_raw.c serio_pause_rx(serio_raw->serio); serio_raw 383 drivers/input/serio/serio_raw.c list_for_each_entry(client, &serio_raw->client_list, node) serio_raw 385 drivers/input/serio/serio_raw.c serio_continue_rx(serio_raw->serio); serio_raw 387 drivers/input/serio/serio_raw.c wake_up_interruptible(&serio_raw->wait); serio_raw 393 drivers/input/serio/serio_raw.c struct serio_raw *serio_raw = serio_get_drvdata(serio); serio_raw 395 drivers/input/serio/serio_raw.c misc_deregister(&serio_raw->dev); serio_raw 398 drivers/input/serio/serio_raw.c serio_raw->dead = true; serio_raw 399 drivers/input/serio/serio_raw.c list_del_init(&serio_raw->node); serio_raw 402 drivers/input/serio/serio_raw.c serio_raw_hangup(serio_raw); serio_raw 405 drivers/input/serio/serio_raw.c kref_put(&serio_raw->kref, serio_raw_free);