Lines Matching refs:serio

17 #include <linux/serio.h>
154 struct serio *serio;
179 struct serio *serio);
194 struct serio *serio))
215 struct serio *port))
366 static int i8042_kbd_write(struct serio *port, unsigned char c)
387 static int i8042_aux_write(struct serio *serio, unsigned char c)
389 struct i8042_port *port = serio->port_data;
402 static void i8042_port_close(struct serio *serio)
408 if (serio == i8042_ports[I8042_AUX_PORT_NO].serio) {
437 * i8042_start() is called by serio core when port is about to finish
441 static int i8042_start(struct serio *serio)
443 struct i8042_port *port = serio->port_data;
445 device_set_wakeup_capable(&serio->dev, true);
455 serio == i8042_ports[I8042_KBD_PORT_NO].serio) {
456 device_set_wakeup_enable(&serio->dev, true);
467 * i8042_stop() marks serio port as non-existing so i8042_interrupt
469 * The function is called by serio core as part of unregister procedure.
471 static void i8042_stop(struct serio *serio)
473 struct i8042_port *port = serio->port_data;
477 port->serio = NULL;
482 * our serio port before we return from this function.
497 struct serio *serio)
508 if (i8042_platform_filter && i8042_platform_filter(data, str, serio)) {
525 struct serio *serio;
563 * rest assume that the data came from the same serio last byte
594 serio = port->exists ? port->serio : NULL;
601 filtered = i8042_filter(data, str, serio);
605 if (likely(serio && !filtered))
606 serio_interrupt(serio, data, dfl);
1215 } else if (i8042_ports[I8042_AUX_PORT_NO].serio)
1218 if (i8042_ports[I8042_KBD_PORT_NO].serio)
1238 /* Set up serio interrupts for system wakeup. */
1240 struct serio *serio = i8042_ports[i].serio;
1242 if (serio && device_may_wakeup(&serio->dev))
1263 struct serio *serio = i8042_ports[i].serio;
1265 if (serio && device_may_wakeup(&serio->dev))
1329 struct serio *serio;
1332 serio = kzalloc(sizeof(struct serio), GFP_KERNEL);
1333 if (!serio)
1336 serio->id.type = i8042_direct ? SERIO_8042 : SERIO_8042_XL;
1337 serio->write = i8042_dumbkbd ? NULL : i8042_kbd_write;
1338 serio->start = i8042_start;
1339 serio->stop = i8042_stop;
1340 serio->close = i8042_port_close;
1341 serio->ps2_cmd_mutex = &i8042_mutex;
1342 serio->port_data = port;
1343 serio->dev.parent = &i8042_platform_device->dev;
1344 strscpy(serio->name, "i8042 KBD port", sizeof(serio->name));
1345 strscpy(serio->phys, I8042_KBD_PHYS_DESC, sizeof(serio->phys));
1346 strscpy(serio->firmware_id, i8042_kbd_firmware_id,
1347 sizeof(serio->firmware_id));
1348 set_primary_fwnode(&serio->dev, i8042_kbd_fwnode);
1350 port->serio = serio;
1358 struct serio *serio;
1362 serio = kzalloc(sizeof(struct serio), GFP_KERNEL);
1363 if (!serio)
1366 serio->id.type = SERIO_8042;
1367 serio->write = i8042_aux_write;
1368 serio->start = i8042_start;
1369 serio->stop = i8042_stop;
1370 serio->ps2_cmd_mutex = &i8042_mutex;
1371 serio->port_data = port;
1372 serio->dev.parent = &i8042_platform_device->dev;
1374 strscpy(serio->name, "i8042 AUX port", sizeof(serio->name));
1375 strscpy(serio->phys, I8042_AUX_PHYS_DESC, sizeof(serio->phys));
1376 strscpy(serio->firmware_id, i8042_aux_firmware_id,
1377 sizeof(serio->firmware_id));
1378 serio->close = i8042_port_close;
1380 snprintf(serio->name, sizeof(serio->name), "i8042 AUX%d port", idx);
1381 snprintf(serio->phys, sizeof(serio->phys), I8042_MUX_PHYS_DESC, idx + 1);
1382 strscpy(serio->firmware_id, i8042_aux_firmware_id,
1383 sizeof(serio->firmware_id));
1386 port->serio = serio;
1395 kfree(i8042_ports[I8042_KBD_PORT_NO].serio);
1396 i8042_ports[I8042_KBD_PORT_NO].serio = NULL;
1404 kfree(i8042_ports[i].serio);
1405 i8042_ports[i].serio = NULL;
1414 struct serio *serio = i8042_ports[i].serio;
1416 if (!serio)
1419 printk(KERN_INFO "serio: %s at %#lx,%#lx irq %d\n",
1420 serio->name,
1424 serio_register_port(serio);
1433 if (i8042_ports[i].serio) {
1434 serio_unregister_port(i8042_ports[i].serio);
1435 i8042_ports[i].serio = NULL;
1523 struct serio *serio = to_serio_port(dev);
1524 struct i8042_port *port = serio->port_data;
1526 if (serio != i8042_ports[I8042_KBD_PORT_NO].serio)
1573 * Ok, everything is ready, let's register all serio ports