Lines Matching refs:driver
2 /* ePAPR hypervisor byte channel device driver
8 * This driver support three distinct interfaces, all of which are related to
11 * 1) An early-console (udbg) driver. This provides early console output
15 * 2) A normal console driver. Output is sent to the byte channel designated
16 * for stdout in the device tree. The console driver is for handling kernel
19 * 3) A tty driver, which is used to handle user-space input and output. The
333 pr_info("ehv-bc: registered console driver for byte channel %u\n",
535 * This is actually a contract between the driver and the tty layer outlining
536 * how much write room the driver can guarantee will be sent OR BUFFERED. This
537 * driver MUST honor the return value.
556 * so the driver should stop sending it data. The easiest way to do this is to
575 * tty layer's input buffers now have more room, so the driver can resume
597 * TTY driver operations
739 .driver = {
748 * ehv_bc_init - ePAPR hypervisor byte channel driver initialization
750 * This function is called when this driver is loaded.
754 struct tty_driver *driver;
759 pr_info("ePAPR hypervisor byte channel driver\n");
777 driver = tty_alloc_driver(count, TTY_DRIVER_REAL_RAW |
779 if (IS_ERR(driver)) {
780 ret = PTR_ERR(driver);
784 driver->driver_name = "ehv-bc";
785 driver->name = ehv_bc_console.name;
786 driver->type = TTY_DRIVER_TYPE_CONSOLE;
787 driver->subtype = SYSTEM_TYPE_CONSOLE;
788 driver->init_termios = tty_std_termios;
789 tty_set_operations(driver, &ehv_bc_ops);
791 ret = tty_register_driver(driver);
793 pr_err("ehv-bc: could not register tty driver (ret=%i)\n", ret);
797 ehv_bc_driver = driver;
801 pr_err("ehv-bc: could not register platform driver (ret=%i)\n",
810 tty_unregister_driver(driver);
812 tty_driver_kref_put(driver);