serport
struct serport *serport = tty->disc_data;
kfree(serport);
struct serport *serport = tty->disc_data;
guard(spinlock_irqsave)(&serport->lock);
if (!test_bit(SERPORT_ACTIVE, &serport->flags))
serio_interrupt(serport->serio, cp[i], ch_flags);
struct serport *serport = tty->disc_data;
if (test_and_set_bit(SERPORT_BUSY, &serport->flags))
serport->serio = serio = kzalloc_obj(*serio);
serio->id = serport->id;
serio->port_data = serport;
serio_register_port(serport->serio);
wait_event_interruptible(serport->wait, test_bit(SERPORT_DEAD, &serport->flags));
serio_unregister_port(serport->serio);
serport->serio = NULL;
clear_bit(SERPORT_DEAD, &serport->flags);
clear_bit(SERPORT_BUSY, &serport->flags);
struct serport *serport = tty->disc_data;
serport->id.proto = type & 0x000000ff;
serport->id.id = (type & 0x0000ff00) >> 8;
serport->id.extra = (type & 0x00ff0000) >> 16;
struct serport *serport = tty->disc_data;
scoped_guard(spinlock_irqsave, &serport->lock)
set_bit(SERPORT_DEAD, &serport->flags);
wake_up_interruptible(&serport->wait);
struct serport *serport = tty->disc_data;
guard(spinlock_irqsave)(&serport->lock);
if (test_bit(SERPORT_ACTIVE, &serport->flags))
serio_drv_write_wakeup(serport->serio);
struct serport *serport = serio->port_data;
return -(serport->tty->ops->write(serport->tty, &data, 1) != 1);
struct serport *serport = serio->port_data;
guard(spinlock_irqsave)(&serport->lock);
set_bit(SERPORT_ACTIVE, &serport->flags);
struct serport *serport = serio->port_data;
guard(spinlock_irqsave)(&serport->lock);
clear_bit(SERPORT_ACTIVE, &serport->flags);
struct serport *serport;
serport = kzalloc_obj(*serport);
if (!serport)
serport->tty = tty;
spin_lock_init(&serport->lock);
init_waitqueue_head(&serport->wait);
tty->disc_data = serport;
tty = tty_init_dev(serport->tty_drv, serport->tty_idx);
serport->tty = tty;
ret = tty->ops->open(serport->tty, NULL);
tty_unlock(serport->tty);
set_bit(SERPORT_ACTIVE, &serport->flags);
tty_release_struct(tty, serport->tty_idx);
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
clear_bit(SERPORT_ACTIVE, &serport->flags);
tty_release_struct(tty, serport->tty_idx);
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport;
ctrl = serdev_controller_alloc(host, parent, sizeof(struct serport));
serport = serdev_controller_get_drvdata(ctrl);
serport->port = port;
serport->tty_idx = idx;
serport->tty_drv = drv;
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct serport *serport = serdev_controller_get_drvdata(ctrl);
if (!serport)
if (!test_bit(SERPORT_ACTIVE, &serport->flags))
struct serport *serport = serdev_controller_get_drvdata(ctrl);
test_bit(SERPORT_ACTIVE, &serport->flags))
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
if (!test_bit(SERPORT_ACTIVE, &serport->flags))
return tty->ops->write(serport->tty, data, len);
struct serport *serport = serdev_controller_get_drvdata(ctrl);
struct tty_struct *tty = serport->tty;
struct serport *serport = serdev_controller_get_drvdata(ctrl);