Lines Matching refs:rx_list
78 } rx_list; member
578 list_add_tail(&lb->link, &priv->rx_list.head); in ps3_vuart_queue_rx_bytes()
579 priv->rx_list.bytes_held += bytes; in ps3_vuart_queue_rx_bytes()
610 spin_lock_irqsave(&priv->rx_list.lock, flags); in ps3_vuart_read()
614 while (priv->rx_list.bytes_held < bytes) { in ps3_vuart_read()
621 bytes - priv->rx_list.bytes_held); in ps3_vuart_read()
622 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_read()
627 list_for_each_entry_safe(lb, n, &priv->rx_list.head, link) { in ps3_vuart_read()
633 priv->rx_list.bytes_held -= bytes_read; in ps3_vuart_read()
640 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_read()
652 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_read()
677 if (priv->rx_list.work.trigger) { in ps3_vuart_read_async()
685 spin_lock_irqsave(&priv->rx_list.lock, flags); in ps3_vuart_read_async()
686 if (priv->rx_list.bytes_held >= bytes) { in ps3_vuart_read_async()
689 schedule_work(&priv->rx_list.work.work); in ps3_vuart_read_async()
690 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_read_async()
694 priv->rx_list.work.trigger = bytes; in ps3_vuart_read_async()
695 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_read_async()
706 to_port_priv(dev)->rx_list.work.trigger = 0; in ps3_vuart_cancel_async()
787 spin_lock_irqsave(&priv->rx_list.lock, flags); in ps3_vuart_handle_interrupt_rx()
791 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_handle_interrupt_rx()
795 if (priv->rx_list.work.trigger && priv->rx_list.bytes_held in ps3_vuart_handle_interrupt_rx()
796 >= priv->rx_list.work.trigger) { in ps3_vuart_handle_interrupt_rx()
798 __func__, __LINE__, priv->rx_list.work.trigger); in ps3_vuart_handle_interrupt_rx()
799 priv->rx_list.work.trigger = 0; in ps3_vuart_handle_interrupt_rx()
800 schedule_work(&priv->rx_list.work.work); in ps3_vuart_handle_interrupt_rx()
803 spin_unlock_irqrestore(&priv->rx_list.lock, flags); in ps3_vuart_handle_interrupt_rx()
1031 INIT_LIST_HEAD(&priv->rx_list.head); in ps3_vuart_probe()
1032 spin_lock_init(&priv->rx_list.lock); in ps3_vuart_probe()
1034 INIT_WORK(&priv->rx_list.work.work, ps3_vuart_work); in ps3_vuart_probe()
1035 priv->rx_list.work.trigger = 0; in ps3_vuart_probe()
1036 priv->rx_list.work.dev = dev; in ps3_vuart_probe()