Symbol: n_hdlc
drivers/tty/n_hdlc.c
155
static struct n_hdlc *n_hdlc_alloc(void);
drivers/tty/n_hdlc.c
163
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
166
while ((buf = n_hdlc_buf_get(&n_hdlc->rx_buf_list)))
drivers/tty/n_hdlc.c
167
n_hdlc_buf_put(&n_hdlc->rx_free_buf_list, buf);
drivers/tty/n_hdlc.c
172
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
175
while ((buf = n_hdlc_buf_get(&n_hdlc->tx_buf_list)))
drivers/tty/n_hdlc.c
176
n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, buf);
drivers/tty/n_hdlc.c
198
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
209
cancel_work_sync(&n_hdlc->write_work);
drivers/tty/n_hdlc.c
211
n_hdlc_free_buf_list(&n_hdlc->rx_free_buf_list);
drivers/tty/n_hdlc.c
212
n_hdlc_free_buf_list(&n_hdlc->tx_free_buf_list);
drivers/tty/n_hdlc.c
213
n_hdlc_free_buf_list(&n_hdlc->rx_buf_list);
drivers/tty/n_hdlc.c
214
n_hdlc_free_buf_list(&n_hdlc->tx_buf_list);
drivers/tty/n_hdlc.c
215
kfree(n_hdlc);
drivers/tty/n_hdlc.c
226
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
231
if (n_hdlc) {
drivers/tty/n_hdlc.c
236
n_hdlc = n_hdlc_alloc();
drivers/tty/n_hdlc.c
237
if (!n_hdlc) {
drivers/tty/n_hdlc.c
242
INIT_WORK(&n_hdlc->write_work, n_hdlc_tty_write_work);
drivers/tty/n_hdlc.c
243
n_hdlc->tty_for_write_work = tty;
drivers/tty/n_hdlc.c
244
tty->disc_data = n_hdlc;
drivers/tty/n_hdlc.c
266
static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
drivers/tty/n_hdlc.c
272
scoped_guard(spinlock_irqsave, &n_hdlc->tx_buf_list.spinlock) {
drivers/tty/n_hdlc.c
273
if (n_hdlc->tbusy) {
drivers/tty/n_hdlc.c
274
n_hdlc->woke_up = true;
drivers/tty/n_hdlc.c
277
n_hdlc->tbusy = true;
drivers/tty/n_hdlc.c
278
n_hdlc->woke_up = false;
drivers/tty/n_hdlc.c
281
tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
drivers/tty/n_hdlc.c
291
n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf);
drivers/tty/n_hdlc.c
303
n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, tbuf);
drivers/tty/n_hdlc.c
309
tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
drivers/tty/n_hdlc.c
317
n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf);
drivers/tty/n_hdlc.c
326
scoped_guard(spinlock_irqsave, &n_hdlc->tx_buf_list.spinlock)
drivers/tty/n_hdlc.c
327
n_hdlc->tbusy = false;
drivers/tty/n_hdlc.c
329
if (n_hdlc->woke_up)
drivers/tty/n_hdlc.c
341
struct n_hdlc *n_hdlc = container_of(work, struct n_hdlc, write_work);
drivers/tty/n_hdlc.c
342
struct tty_struct *tty = n_hdlc->tty_for_write_work;
drivers/tty/n_hdlc.c
344
n_hdlc_send_frames(n_hdlc, tty);
drivers/tty/n_hdlc.c
355
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
357
schedule_work(&n_hdlc->write_work);
drivers/tty/n_hdlc.c
373
register struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
384
buf = n_hdlc_buf_get(&n_hdlc->rx_free_buf_list);
drivers/tty/n_hdlc.c
390
if (n_hdlc->rx_buf_list.count < MAX_RX_BUF_COUNT)
drivers/tty/n_hdlc.c
404
n_hdlc_buf_put(&n_hdlc->rx_buf_list, buf);
drivers/tty/n_hdlc.c
428
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
450
rbuf = n_hdlc_buf_get(&n_hdlc->rx_buf_list);
drivers/tty/n_hdlc.c
499
if (n_hdlc->rx_free_buf_list.count > DEFAULT_RX_BUF_COUNT)
drivers/tty/n_hdlc.c
502
n_hdlc_buf_put(&n_hdlc->rx_free_buf_list, rbuf);
drivers/tty/n_hdlc.c
520
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
539
tbuf = n_hdlc_buf_get(&n_hdlc->tx_free_buf_list);
drivers/tty/n_hdlc.c
564
n_hdlc_buf_put(&n_hdlc->tx_buf_list, tbuf);
drivers/tty/n_hdlc.c
565
n_hdlc_send_frames(n_hdlc, tty);
drivers/tty/n_hdlc.c
583
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
593
scoped_guard(spinlock_irqsave, &n_hdlc->rx_buf_list.spinlock) {
drivers/tty/n_hdlc.c
594
buf = list_first_entry_or_null(&n_hdlc->rx_buf_list.list,
drivers/tty/n_hdlc.c
607
scoped_guard(spinlock_irqsave, &n_hdlc->tx_buf_list.spinlock) {
drivers/tty/n_hdlc.c
608
buf = list_first_entry_or_null(&n_hdlc->tx_buf_list.list,
drivers/tty/n_hdlc.c
641
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
652
if (!list_empty(&n_hdlc->rx_buf_list.list))
drivers/tty/n_hdlc.c
659
!list_empty(&n_hdlc->tx_free_buf_list.list))
drivers/tty/n_hdlc.c
687
static struct n_hdlc *n_hdlc_alloc(void)
drivers/tty/n_hdlc.c
689
struct n_hdlc *n_hdlc = kzalloc_obj(*n_hdlc);
drivers/tty/n_hdlc.c
691
if (!n_hdlc)
drivers/tty/n_hdlc.c
694
spin_lock_init(&n_hdlc->rx_free_buf_list.spinlock);
drivers/tty/n_hdlc.c
695
spin_lock_init(&n_hdlc->tx_free_buf_list.spinlock);
drivers/tty/n_hdlc.c
696
spin_lock_init(&n_hdlc->rx_buf_list.spinlock);
drivers/tty/n_hdlc.c
697
spin_lock_init(&n_hdlc->tx_buf_list.spinlock);
drivers/tty/n_hdlc.c
699
INIT_LIST_HEAD(&n_hdlc->rx_free_buf_list.list);
drivers/tty/n_hdlc.c
700
INIT_LIST_HEAD(&n_hdlc->tx_free_buf_list.list);
drivers/tty/n_hdlc.c
701
INIT_LIST_HEAD(&n_hdlc->rx_buf_list.list);
drivers/tty/n_hdlc.c
702
INIT_LIST_HEAD(&n_hdlc->tx_buf_list.list);
drivers/tty/n_hdlc.c
704
n_hdlc_alloc_buf(&n_hdlc->rx_free_buf_list, DEFAULT_RX_BUF_COUNT, "rx");
drivers/tty/n_hdlc.c
705
n_hdlc_alloc_buf(&n_hdlc->tx_free_buf_list, DEFAULT_TX_BUF_COUNT, "tx");
drivers/tty/n_hdlc.c
707
return n_hdlc;