Symbol: gb_tty
drivers/staging/greybus/uart.c
120
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
132
struct gb_tty *gb_tty = gb_connection_get_data(connection);
drivers/staging/greybus/uart.c
137
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
144
gb_tty->ctrlin = serial_state->control;
drivers/staging/greybus/uart.c
152
struct gb_tty *gb_tty = gb_connection_get_data(connection);
drivers/staging/greybus/uart.c
160
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
170
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
171
gb_tty->credits += incoming_credits;
drivers/staging/greybus/uart.c
172
if (gb_tty->credits > GB_UART_FIRMWARE_CREDITS) {
drivers/staging/greybus/uart.c
173
gb_tty->credits -= incoming_credits;
drivers/staging/greybus/uart.c
176
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
179
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
185
if (!gb_tty->close_pending)
drivers/staging/greybus/uart.c
186
schedule_work(&gb_tty->tx_work);
drivers/staging/greybus/uart.c
191
tty_port_tty_wakeup(&gb_tty->port);
drivers/staging/greybus/uart.c
193
if (gb_tty->credits == GB_UART_FIRMWARE_CREDITS)
drivers/staging/greybus/uart.c
194
complete(&gb_tty->credits_complete);
drivers/staging/greybus/uart.c
202
struct gb_tty *gb_tty = gb_connection_get_data(connection);
drivers/staging/greybus/uart.c
217
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
228
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
233
gb_tty = container_of(work, struct gb_tty, tx_work);
drivers/staging/greybus/uart.c
234
request = gb_tty->buffer;
drivers/staging/greybus/uart.c
237
if (gb_tty->close_pending)
drivers/staging/greybus/uart.c
240
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
241
send_size = gb_tty->buffer_payload_max;
drivers/staging/greybus/uart.c
242
if (send_size > gb_tty->credits)
drivers/staging/greybus/uart.c
243
send_size = gb_tty->credits;
drivers/staging/greybus/uart.c
245
send_size = kfifo_out_peek(&gb_tty->write_fifo,
drivers/staging/greybus/uart.c
249
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
253
gb_tty->credits -= send_size;
drivers/staging/greybus/uart.c
254
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
257
ret = gb_operation_sync(gb_tty->connection,
drivers/staging/greybus/uart.c
262
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
264
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
265
gb_tty->credits += send_size;
drivers/staging/greybus/uart.c
266
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
267
if (!gb_tty->close_pending)
drivers/staging/greybus/uart.c
272
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
273
ret = kfifo_out(&gb_tty->write_fifo, &request->data[0],
drivers/staging/greybus/uart.c
275
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
277
tty_port_tty_wakeup(&gb_tty->port);
drivers/staging/greybus/uart.c
281
static int send_line_coding(struct gb_tty *tty)
drivers/staging/greybus/uart.c
288
static int send_control(struct gb_tty *gb_tty, u8 control)
drivers/staging/greybus/uart.c
293
return gb_operation_sync(gb_tty->connection,
drivers/staging/greybus/uart.c
298
static int send_break(struct gb_tty *gb_tty, u8 state)
drivers/staging/greybus/uart.c
303
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
309
return gb_operation_sync(gb_tty->connection, GB_UART_TYPE_SEND_BREAK,
drivers/staging/greybus/uart.c
313
static int gb_uart_wait_for_all_credits(struct gb_tty *gb_tty)
drivers/staging/greybus/uart.c
317
if (gb_tty->credits == GB_UART_FIRMWARE_CREDITS)
drivers/staging/greybus/uart.c
320
ret = wait_for_completion_timeout(&gb_tty->credits_complete,
drivers/staging/greybus/uart.c
323
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
331
static int gb_uart_flush(struct gb_tty *gb_tty, u8 flags)
drivers/staging/greybus/uart.c
336
return gb_operation_sync(gb_tty->connection, GB_UART_TYPE_FLUSH_FIFOS,
drivers/staging/greybus/uart.c
340
static struct gb_tty *get_gb_by_minor(unsigned int minor)
drivers/staging/greybus/uart.c
342
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
345
gb_tty = idr_find(&tty_minors, minor);
drivers/staging/greybus/uart.c
346
if (gb_tty) {
drivers/staging/greybus/uart.c
347
mutex_lock(&gb_tty->mutex);
drivers/staging/greybus/uart.c
348
if (gb_tty->disconnected) {
drivers/staging/greybus/uart.c
349
mutex_unlock(&gb_tty->mutex);
drivers/staging/greybus/uart.c
350
gb_tty = NULL;
drivers/staging/greybus/uart.c
352
tty_port_get(&gb_tty->port);
drivers/staging/greybus/uart.c
353
mutex_unlock(&gb_tty->mutex);
drivers/staging/greybus/uart.c
357
return gb_tty;
drivers/staging/greybus/uart.c
360
static int alloc_minor(struct gb_tty *gb_tty)
drivers/staging/greybus/uart.c
365
minor = idr_alloc(&tty_minors, gb_tty, 0, GB_NUM_MINORS, GFP_KERNEL);
drivers/staging/greybus/uart.c
368
gb_tty->minor = minor;
drivers/staging/greybus/uart.c
372
static void release_minor(struct gb_tty *gb_tty)
drivers/staging/greybus/uart.c
374
int minor = gb_tty->minor;
drivers/staging/greybus/uart.c
376
gb_tty->minor = 0; /* Maybe should use an invalid value instead */
drivers/staging/greybus/uart.c
384
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
387
gb_tty = get_gb_by_minor(tty->index);
drivers/staging/greybus/uart.c
388
if (!gb_tty)
drivers/staging/greybus/uart.c
395
tty->driver_data = gb_tty;
drivers/staging/greybus/uart.c
398
tty_port_put(&gb_tty->port);
drivers/staging/greybus/uart.c
404
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
406
return tty_port_open(&gb_tty->port, tty, file);
drivers/staging/greybus/uart.c
411
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
413
tty_port_close(&gb_tty->port, tty, file);
drivers/staging/greybus/uart.c
418
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
420
tty_port_put(&gb_tty->port);
drivers/staging/greybus/uart.c
425
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
427
tty_port_hangup(&gb_tty->port);
drivers/staging/greybus/uart.c
432
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
434
count = kfifo_in_spinlocked(&gb_tty->write_fifo, buf, count,
drivers/staging/greybus/uart.c
435
&gb_tty->write_lock);
drivers/staging/greybus/uart.c
436
if (count && !gb_tty->close_pending)
drivers/staging/greybus/uart.c
437
schedule_work(&gb_tty->tx_work);
drivers/staging/greybus/uart.c
444
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
448
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
449
room = kfifo_avail(&gb_tty->write_fifo);
drivers/staging/greybus/uart.c
450
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
461
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
465
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
466
chars = kfifo_len(&gb_tty->write_fifo);
drivers/staging/greybus/uart.c
467
if (gb_tty->credits < GB_UART_FIRMWARE_CREDITS)
drivers/staging/greybus/uart.c
468
chars += GB_UART_FIRMWARE_CREDITS - gb_tty->credits;
drivers/staging/greybus/uart.c
469
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
476
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
478
return send_break(gb_tty, state ? 1 : 0);
drivers/staging/greybus/uart.c
485
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
487
u8 newctrl = gb_tty->ctrlout;
drivers/staging/greybus/uart.c
499
gb_tty->clocal = ((termios->c_cflag & CLOCAL) != 0);
drivers/staging/greybus/uart.c
502
newline.rate = gb_tty->line_coding.rate;
drivers/staging/greybus/uart.c
508
if (newctrl != gb_tty->ctrlout) {
drivers/staging/greybus/uart.c
509
gb_tty->ctrlout = newctrl;
drivers/staging/greybus/uart.c
510
send_control(gb_tty, newctrl);
drivers/staging/greybus/uart.c
518
if (memcmp(&gb_tty->line_coding, &newline, sizeof(newline))) {
drivers/staging/greybus/uart.c
519
memcpy(&gb_tty->line_coding, &newline, sizeof(newline));
drivers/staging/greybus/uart.c
520
send_line_coding(gb_tty);
drivers/staging/greybus/uart.c
526
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
528
return (gb_tty->ctrlout & GB_UART_CTRL_DTR ? TIOCM_DTR : 0) |
drivers/staging/greybus/uart.c
529
(gb_tty->ctrlout & GB_UART_CTRL_RTS ? TIOCM_RTS : 0) |
drivers/staging/greybus/uart.c
530
(gb_tty->ctrlin & GB_UART_CTRL_DSR ? TIOCM_DSR : 0) |
drivers/staging/greybus/uart.c
531
(gb_tty->ctrlin & GB_UART_CTRL_RI ? TIOCM_RI : 0) |
drivers/staging/greybus/uart.c
532
(gb_tty->ctrlin & GB_UART_CTRL_DCD ? TIOCM_CD : 0) |
drivers/staging/greybus/uart.c
539
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
540
u8 newctrl = gb_tty->ctrlout;
drivers/staging/greybus/uart.c
548
if (gb_tty->ctrlout == newctrl)
drivers/staging/greybus/uart.c
551
gb_tty->ctrlout = newctrl;
drivers/staging/greybus/uart.c
552
return send_control(gb_tty, newctrl);
drivers/staging/greybus/uart.c
557
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
569
gb_tty->ctrlout &= ~GB_UART_CTRL_RTS;
drivers/staging/greybus/uart.c
570
retval = send_control(gb_tty, gb_tty->ctrlout);
drivers/staging/greybus/uart.c
576
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
588
gb_tty->ctrlout |= GB_UART_CTRL_RTS;
drivers/staging/greybus/uart.c
589
retval = send_control(gb_tty, gb_tty->ctrlout);
drivers/staging/greybus/uart.c
596
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
598
ss->line = gb_tty->minor;
drivers/staging/greybus/uart.c
599
mutex_lock(&gb_tty->port.mutex);
drivers/staging/greybus/uart.c
600
ss->close_delay = jiffies_to_msecs(gb_tty->port.close_delay) / 10;
drivers/staging/greybus/uart.c
602
gb_tty->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ?
drivers/staging/greybus/uart.c
604
jiffies_to_msecs(gb_tty->port.closing_wait) / 10;
drivers/staging/greybus/uart.c
605
mutex_unlock(&gb_tty->port.mutex);
drivers/staging/greybus/uart.c
613
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
623
mutex_lock(&gb_tty->port.mutex);
drivers/staging/greybus/uart.c
625
if ((close_delay != gb_tty->port.close_delay) ||
drivers/staging/greybus/uart.c
626
(closing_wait != gb_tty->port.closing_wait))
drivers/staging/greybus/uart.c
629
gb_tty->port.close_delay = close_delay;
drivers/staging/greybus/uart.c
630
gb_tty->port.closing_wait = closing_wait;
drivers/staging/greybus/uart.c
632
mutex_unlock(&gb_tty->port.mutex);
drivers/staging/greybus/uart.c
636
static int wait_serial_change(struct gb_tty *gb_tty, unsigned long arg)
drivers/staging/greybus/uart.c
647
spin_lock_irq(&gb_tty->read_lock);
drivers/staging/greybus/uart.c
648
old = gb_tty->oldcount;
drivers/staging/greybus/uart.c
649
new = gb_tty->iocount;
drivers/staging/greybus/uart.c
650
gb_tty->oldcount = new;
drivers/staging/greybus/uart.c
651
spin_unlock_irq(&gb_tty->read_lock);
drivers/staging/greybus/uart.c
660
add_wait_queue(&gb_tty->wioctl, &wait);
drivers/staging/greybus/uart.c
663
remove_wait_queue(&gb_tty->wioctl, &wait);
drivers/staging/greybus/uart.c
664
if (gb_tty->disconnected) {
drivers/staging/greybus/uart.c
679
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
681
icount->dsr = gb_tty->iocount.dsr;
drivers/staging/greybus/uart.c
682
icount->rng = gb_tty->iocount.rng;
drivers/staging/greybus/uart.c
683
icount->dcd = gb_tty->iocount.dcd;
drivers/staging/greybus/uart.c
684
icount->frame = gb_tty->iocount.frame;
drivers/staging/greybus/uart.c
685
icount->overrun = gb_tty->iocount.overrun;
drivers/staging/greybus/uart.c
686
icount->parity = gb_tty->iocount.parity;
drivers/staging/greybus/uart.c
687
icount->brk = gb_tty->iocount.brk;
drivers/staging/greybus/uart.c
695
struct gb_tty *gb_tty = tty->driver_data;
drivers/staging/greybus/uart.c
699
return wait_serial_change(gb_tty, arg);
drivers/staging/greybus/uart.c
707
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
710
gb_tty = container_of(port, struct gb_tty, port);
drivers/staging/greybus/uart.c
711
newctrl = gb_tty->ctrlout;
drivers/staging/greybus/uart.c
718
gb_tty->ctrlout = newctrl;
drivers/staging/greybus/uart.c
719
send_control(gb_tty, newctrl);
drivers/staging/greybus/uart.c
725
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
727
gb_tty = container_of(port, struct gb_tty, port);
drivers/staging/greybus/uart.c
729
return gbphy_runtime_get_sync(gb_tty->gbphy_dev);
drivers/staging/greybus/uart.c
734
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
738
gb_tty = container_of(port, struct gb_tty, port);
drivers/staging/greybus/uart.c
740
gb_tty->close_pending = true;
drivers/staging/greybus/uart.c
742
cancel_work_sync(&gb_tty->tx_work);
drivers/staging/greybus/uart.c
744
spin_lock_irqsave(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
745
kfifo_reset_out(&gb_tty->write_fifo);
drivers/staging/greybus/uart.c
746
spin_unlock_irqrestore(&gb_tty->write_lock, flags);
drivers/staging/greybus/uart.c
748
if (gb_tty->credits == GB_UART_FIRMWARE_CREDITS)
drivers/staging/greybus/uart.c
751
ret = gb_uart_flush(gb_tty, GB_SERIAL_FLAG_FLUSH_TRANSMITTER);
drivers/staging/greybus/uart.c
753
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
757
gb_uart_wait_for_all_credits(gb_tty);
drivers/staging/greybus/uart.c
76
struct gb_tty *gb_tty = gb_connection_get_data(connection);
drivers/staging/greybus/uart.c
760
gb_tty->close_pending = false;
drivers/staging/greybus/uart.c
762
gbphy_runtime_put_autosuspend(gb_tty->gbphy_dev);
drivers/staging/greybus/uart.c
767
struct gb_tty *gb_tty = container_of(port, struct gb_tty, port);
drivers/staging/greybus/uart.c
769
if (gb_tty->minor != GB_NUM_MINORS)
drivers/staging/greybus/uart.c
77
struct tty_port *port = &gb_tty->port;
drivers/staging/greybus/uart.c
770
release_minor(gb_tty);
drivers/staging/greybus/uart.c
771
kfifo_free(&gb_tty->write_fifo);
drivers/staging/greybus/uart.c
772
kfree(gb_tty->buffer);
drivers/staging/greybus/uart.c
773
kfree(gb_tty);
drivers/staging/greybus/uart.c
809
struct gb_tty *gb_tty;
drivers/staging/greybus/uart.c
826
gb_tty = kzalloc_obj(*gb_tty);
drivers/staging/greybus/uart.c
827
if (!gb_tty) {
drivers/staging/greybus/uart.c
832
tty_port_init(&gb_tty->port);
drivers/staging/greybus/uart.c
833
gb_tty->port.ops = &gb_port_ops;
drivers/staging/greybus/uart.c
834
gb_tty->minor = GB_NUM_MINORS;
drivers/staging/greybus/uart.c
836
gb_tty->buffer_payload_max = max_payload -
drivers/staging/greybus/uart.c
839
gb_tty->buffer = kzalloc(gb_tty->buffer_payload_max, GFP_KERNEL);
drivers/staging/greybus/uart.c
840
if (!gb_tty->buffer) {
drivers/staging/greybus/uart.c
845
INIT_WORK(&gb_tty->tx_work, gb_uart_tx_write_work);
drivers/staging/greybus/uart.c
847
retval = kfifo_alloc(&gb_tty->write_fifo, GB_UART_WRITE_FIFO_SIZE,
drivers/staging/greybus/uart.c
85
dev_err(&gb_tty->gbphy_dev->dev,
drivers/staging/greybus/uart.c
852
gb_tty->credits = GB_UART_FIRMWARE_CREDITS;
drivers/staging/greybus/uart.c
853
init_completion(&gb_tty->credits_complete);
drivers/staging/greybus/uart.c
855
minor = alloc_minor(gb_tty);
drivers/staging/greybus/uart.c
867
gb_tty->minor = minor;
drivers/staging/greybus/uart.c
868
spin_lock_init(&gb_tty->write_lock);
drivers/staging/greybus/uart.c
869
spin_lock_init(&gb_tty->read_lock);
drivers/staging/greybus/uart.c
870
init_waitqueue_head(&gb_tty->wioctl);
drivers/staging/greybus/uart.c
871
mutex_init(&gb_tty->mutex);
drivers/staging/greybus/uart.c
873
gb_tty->connection = connection;
drivers/staging/greybus/uart.c
874
gb_tty->gbphy_dev = gbphy_dev;
drivers/staging/greybus/uart.c
875
gb_connection_set_data(connection, gb_tty);
drivers/staging/greybus/uart.c
876
gb_gbphy_set_data(gbphy_dev, gb_tty);
drivers/staging/greybus/uart.c
882
retval = send_control(gb_tty, gb_tty->ctrlout);
drivers/staging/greybus/uart.c
887
gb_tty->line_coding.rate = cpu_to_le32(9600);
drivers/staging/greybus/uart.c
888
gb_tty->line_coding.format = GB_SERIAL_1_STOP_BITS;
drivers/staging/greybus/uart.c
889
gb_tty->line_coding.parity = GB_SERIAL_NO_PARITY;
drivers/staging/greybus/uart.c
890
gb_tty->line_coding.data_bits = 8;
drivers/staging/greybus/uart.c
891
retval = send_line_coding(gb_tty);
drivers/staging/greybus/uart.c
899
tty_dev = tty_port_register_device(&gb_tty->port, gb_tty_driver, minor,
drivers/staging/greybus/uart.c
912
tty_port_put(&gb_tty->port);
drivers/staging/greybus/uart.c
921
struct gb_tty *gb_tty = gb_gbphy_get_data(gbphy_dev);
drivers/staging/greybus/uart.c
922
struct gb_connection *connection = gb_tty->connection;
drivers/staging/greybus/uart.c
929
mutex_lock(&gb_tty->mutex);
drivers/staging/greybus/uart.c
930
gb_tty->disconnected = true;
drivers/staging/greybus/uart.c
932
wake_up_all(&gb_tty->wioctl);
drivers/staging/greybus/uart.c
933
mutex_unlock(&gb_tty->mutex);
drivers/staging/greybus/uart.c
935
tty_port_tty_vhangup(&gb_tty->port);
drivers/staging/greybus/uart.c
938
tty_unregister_device(gb_tty_driver, gb_tty->minor);
drivers/staging/greybus/uart.c
943
tty_port_put(&gb_tty->port);
drivers/staging/greybus/uart.c
95
dev_err(&gb_tty->gbphy_dev->dev,