Symbol: n_hdlc
drivers/tty/n_hdlc.c
148
static struct n_hdlc *n_hdlc_alloc(void);
drivers/tty/n_hdlc.c
156
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
159
while ((buf = n_hdlc_buf_get(&n_hdlc->rx_buf_list)))
drivers/tty/n_hdlc.c
160
n_hdlc_buf_put(&n_hdlc->rx_free_buf_list, buf);
drivers/tty/n_hdlc.c
165
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
168
while ((buf = n_hdlc_buf_get(&n_hdlc->tx_buf_list)))
drivers/tty/n_hdlc.c
169
n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, buf);
drivers/tty/n_hdlc.c
191
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
202
cancel_work_sync(&n_hdlc->write_work);
drivers/tty/n_hdlc.c
204
n_hdlc_free_buf_list(&n_hdlc->rx_free_buf_list);
drivers/tty/n_hdlc.c
205
n_hdlc_free_buf_list(&n_hdlc->tx_free_buf_list);
drivers/tty/n_hdlc.c
206
n_hdlc_free_buf_list(&n_hdlc->rx_buf_list);
drivers/tty/n_hdlc.c
207
n_hdlc_free_buf_list(&n_hdlc->tx_buf_list);
drivers/tty/n_hdlc.c
208
kfree(n_hdlc);
drivers/tty/n_hdlc.c
219
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
224
if (n_hdlc) {
drivers/tty/n_hdlc.c
229
n_hdlc = n_hdlc_alloc();
drivers/tty/n_hdlc.c
230
if (!n_hdlc) {
drivers/tty/n_hdlc.c
235
INIT_WORK(&n_hdlc->write_work, n_hdlc_tty_write_work);
drivers/tty/n_hdlc.c
236
n_hdlc->tty_for_write_work = tty;
drivers/tty/n_hdlc.c
237
tty->disc_data = n_hdlc;
drivers/tty/n_hdlc.c
259
static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
drivers/tty/n_hdlc.c
265
scoped_guard(spinlock_irqsave, &n_hdlc->tx_buf_list.spinlock) {
drivers/tty/n_hdlc.c
266
if (n_hdlc->tbusy) {
drivers/tty/n_hdlc.c
267
n_hdlc->woke_up = true;
drivers/tty/n_hdlc.c
270
n_hdlc->tbusy = true;
drivers/tty/n_hdlc.c
271
n_hdlc->woke_up = false;
drivers/tty/n_hdlc.c
274
tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
drivers/tty/n_hdlc.c
284
n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf);
drivers/tty/n_hdlc.c
296
n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, tbuf);
drivers/tty/n_hdlc.c
302
tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
drivers/tty/n_hdlc.c
310
n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf);
drivers/tty/n_hdlc.c
319
scoped_guard(spinlock_irqsave, &n_hdlc->tx_buf_list.spinlock)
drivers/tty/n_hdlc.c
320
n_hdlc->tbusy = false;
drivers/tty/n_hdlc.c
322
if (n_hdlc->woke_up)
drivers/tty/n_hdlc.c
334
struct n_hdlc *n_hdlc = container_of(work, struct n_hdlc, write_work);
drivers/tty/n_hdlc.c
335
struct tty_struct *tty = n_hdlc->tty_for_write_work;
drivers/tty/n_hdlc.c
337
n_hdlc_send_frames(n_hdlc, tty);
drivers/tty/n_hdlc.c
348
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
350
schedule_work(&n_hdlc->write_work);
drivers/tty/n_hdlc.c
366
register struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
377
buf = n_hdlc_buf_get(&n_hdlc->rx_free_buf_list);
drivers/tty/n_hdlc.c
383
if (n_hdlc->rx_buf_list.count < MAX_RX_BUF_COUNT)
drivers/tty/n_hdlc.c
397
n_hdlc_buf_put(&n_hdlc->rx_buf_list, buf);
drivers/tty/n_hdlc.c
421
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
443
rbuf = n_hdlc_buf_get(&n_hdlc->rx_buf_list);
drivers/tty/n_hdlc.c
492
if (n_hdlc->rx_free_buf_list.count > DEFAULT_RX_BUF_COUNT)
drivers/tty/n_hdlc.c
495
n_hdlc_buf_put(&n_hdlc->rx_free_buf_list, rbuf);
drivers/tty/n_hdlc.c
513
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
532
tbuf = n_hdlc_buf_get(&n_hdlc->tx_free_buf_list);
drivers/tty/n_hdlc.c
557
n_hdlc_buf_put(&n_hdlc->tx_buf_list, tbuf);
drivers/tty/n_hdlc.c
558
n_hdlc_send_frames(n_hdlc, tty);
drivers/tty/n_hdlc.c
576
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
586
scoped_guard(spinlock_irqsave, &n_hdlc->rx_buf_list.spinlock) {
drivers/tty/n_hdlc.c
587
buf = list_first_entry_or_null(&n_hdlc->rx_buf_list.list,
drivers/tty/n_hdlc.c
600
scoped_guard(spinlock_irqsave, &n_hdlc->tx_buf_list.spinlock) {
drivers/tty/n_hdlc.c
601
buf = list_first_entry_or_null(&n_hdlc->tx_buf_list.list,
drivers/tty/n_hdlc.c
634
struct n_hdlc *n_hdlc = tty->disc_data;
drivers/tty/n_hdlc.c
645
if (!list_empty(&n_hdlc->rx_buf_list.list))
drivers/tty/n_hdlc.c
652
!list_empty(&n_hdlc->tx_free_buf_list.list))
drivers/tty/n_hdlc.c
680
static struct n_hdlc *n_hdlc_alloc(void)
drivers/tty/n_hdlc.c
682
struct n_hdlc *n_hdlc = kzalloc_obj(*n_hdlc);
drivers/tty/n_hdlc.c
684
if (!n_hdlc)
drivers/tty/n_hdlc.c
687
spin_lock_init(&n_hdlc->rx_free_buf_list.spinlock);
drivers/tty/n_hdlc.c
688
spin_lock_init(&n_hdlc->tx_free_buf_list.spinlock);
drivers/tty/n_hdlc.c
689
spin_lock_init(&n_hdlc->rx_buf_list.spinlock);
drivers/tty/n_hdlc.c
690
spin_lock_init(&n_hdlc->tx_buf_list.spinlock);
drivers/tty/n_hdlc.c
692
INIT_LIST_HEAD(&n_hdlc->rx_free_buf_list.list);
drivers/tty/n_hdlc.c
693
INIT_LIST_HEAD(&n_hdlc->tx_free_buf_list.list);
drivers/tty/n_hdlc.c
694
INIT_LIST_HEAD(&n_hdlc->rx_buf_list.list);
drivers/tty/n_hdlc.c
695
INIT_LIST_HEAD(&n_hdlc->tx_buf_list.list);
drivers/tty/n_hdlc.c
697
n_hdlc_alloc_buf(&n_hdlc->rx_free_buf_list, DEFAULT_RX_BUF_COUNT, "rx");
drivers/tty/n_hdlc.c
698
n_hdlc_alloc_buf(&n_hdlc->tx_free_buf_list, DEFAULT_TX_BUF_COUNT, "tx");
drivers/tty/n_hdlc.c
700
return n_hdlc;