Lines Matching refs:rx
665 struct zd_usb_rx *rx; in rx_urb_complete() local
688 rx = &usb->rx; in rx_urb_complete()
690 tasklet_schedule(&rx->reset_timer_tasklet); in rx_urb_complete()
692 if (length%rx->usb_packet_size > rx->usb_packet_size-4) { in rx_urb_complete()
695 ZD_ASSERT(length <= ARRAY_SIZE(rx->fragment)); in rx_urb_complete()
696 spin_lock(&rx->lock); in rx_urb_complete()
697 memcpy(rx->fragment, buffer, length); in rx_urb_complete()
698 rx->fragment_length = length; in rx_urb_complete()
699 spin_unlock(&rx->lock); in rx_urb_complete()
703 spin_lock(&rx->lock); in rx_urb_complete()
704 if (rx->fragment_length > 0) { in rx_urb_complete()
706 ZD_ASSERT(length + rx->fragment_length <= in rx_urb_complete()
707 ARRAY_SIZE(rx->fragment)); in rx_urb_complete()
709 memcpy(rx->fragment+rx->fragment_length, buffer, length); in rx_urb_complete()
710 handle_rx_packet(usb, rx->fragment, in rx_urb_complete()
711 rx->fragment_length + length); in rx_urb_complete()
712 rx->fragment_length = 0; in rx_urb_complete()
713 spin_unlock(&rx->lock); in rx_urb_complete()
715 spin_unlock(&rx->lock); in rx_urb_complete()
761 struct zd_usb_rx *rx = &usb->rx; in __zd_usb_enable_rx() local
777 spin_lock_irq(&rx->lock); in __zd_usb_enable_rx()
778 if (rx->urbs) { in __zd_usb_enable_rx()
779 spin_unlock_irq(&rx->lock); in __zd_usb_enable_rx()
783 rx->urbs = urbs; in __zd_usb_enable_rx()
784 rx->urbs_count = RX_URBS_COUNT; in __zd_usb_enable_rx()
785 spin_unlock_irq(&rx->lock); in __zd_usb_enable_rx()
798 spin_lock_irq(&rx->lock); in __zd_usb_enable_rx()
799 rx->urbs = NULL; in __zd_usb_enable_rx()
800 rx->urbs_count = 0; in __zd_usb_enable_rx()
801 spin_unlock_irq(&rx->lock); in __zd_usb_enable_rx()
813 struct zd_usb_rx *rx = &usb->rx; in zd_usb_enable_rx() local
815 mutex_lock(&rx->setup_mutex); in zd_usb_enable_rx()
817 mutex_unlock(&rx->setup_mutex); in zd_usb_enable_rx()
830 struct zd_usb_rx *rx = &usb->rx; in __zd_usb_disable_rx() local
832 spin_lock_irqsave(&rx->lock, flags); in __zd_usb_disable_rx()
833 urbs = rx->urbs; in __zd_usb_disable_rx()
834 count = rx->urbs_count; in __zd_usb_disable_rx()
835 spin_unlock_irqrestore(&rx->lock, flags); in __zd_usb_disable_rx()
845 spin_lock_irqsave(&rx->lock, flags); in __zd_usb_disable_rx()
846 rx->urbs = NULL; in __zd_usb_disable_rx()
847 rx->urbs_count = 0; in __zd_usb_disable_rx()
848 spin_unlock_irqrestore(&rx->lock, flags); in __zd_usb_disable_rx()
853 struct zd_usb_rx *rx = &usb->rx; in zd_usb_disable_rx() local
855 mutex_lock(&rx->setup_mutex); in zd_usb_disable_rx()
857 mutex_unlock(&rx->setup_mutex); in zd_usb_disable_rx()
859 tasklet_kill(&rx->reset_timer_tasklet); in zd_usb_disable_rx()
860 cancel_delayed_work_sync(&rx->idle_work); in zd_usb_disable_rx()
866 struct zd_usb_rx *rx = &usb->rx; in zd_usb_reset_rx() local
869 mutex_lock(&rx->setup_mutex); in zd_usb_reset_rx()
871 spin_lock_irqsave(&rx->lock, flags); in zd_usb_reset_rx()
872 do_reset = rx->urbs != NULL; in zd_usb_reset_rx()
873 spin_unlock_irqrestore(&rx->lock, flags); in zd_usb_reset_rx()
880 mutex_unlock(&rx->setup_mutex); in zd_usb_reset_rx()
1142 container_of(work, struct zd_usb, rx.idle_work.work); in zd_rx_idle_timer_handler()
1163 struct zd_usb_rx *rx = &usb->rx; in zd_usb_reset_rx_idle_timer() local
1165 mod_delayed_work(zd_workqueue, &rx->idle_work, ZD_RX_IDLE_INTERVAL); in zd_usb_reset_rx_idle_timer()
1181 struct zd_usb_rx *rx = &usb->rx; in init_usb_rx() local
1183 spin_lock_init(&rx->lock); in init_usb_rx()
1184 mutex_init(&rx->setup_mutex); in init_usb_rx()
1186 rx->usb_packet_size = 512; in init_usb_rx()
1188 rx->usb_packet_size = 64; in init_usb_rx()
1190 ZD_ASSERT(rx->fragment_length == 0); in init_usb_rx()
1191 INIT_DELAYED_WORK(&rx->idle_work, zd_rx_idle_timer_handler); in init_usb_rx()
1192 rx->reset_timer_tasklet.func = zd_usb_reset_rx_idle_timer_tasklet; in init_usb_rx()
1193 rx->reset_timer_tasklet.data = (unsigned long)usb; in init_usb_rx()