Home
last modified time | relevance | path

Searched full:urbs (Results 1 – 25 of 205) sorted by relevance

123456789

/linux/drivers/gpu/drm/udl/
H A Dudl_main.c124 * Need to ensure a channel is selected before submitting URBs
167 urb->transfer_buffer_length = udl->urbs.size; /* reset to actual */ in udl_urb_completion()
169 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_urb_completion()
170 list_add_tail(&unode->entry, &udl->urbs.list); in udl_urb_completion()
171 udl->urbs.available++; in udl_urb_completion()
172 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_urb_completion()
174 wake_up(&udl->urbs.sleep); in udl_urb_completion()
182 DRM_DEBUG("Waiting for completes and freeing all render urbs\n"); in udl_free_urb_list()
185 while (udl->urbs.count) { in udl_free_urb_list()
186 spin_lock_irq(&udl->urbs.lock); in udl_free_urb_list()
[all …]
/linux/Documentation/driver-api/usb/
H A Danchors.rst9 driver has to keep track of the URBs it has submitted
12 keeping track of URBs and provides methods to deal with
13 multiple URBs.
25 Once it has no more URBs associated with it, the anchor can be
28 Association and disassociation of URBs with anchors
31 An association of URBs to an anchor is made by an explicit
35 all URBs associated with an anchor.
38 Operations on multitudes of URBs
44 This function kills all URBs associated with an anchor. The URBs
51 All URBs of an anchor are unanchored en masse.
[all …]
H A Ddma.rst21 - URBs have an additional "transfer_dma" field, as well as a transfer_flags
27 don't manage dma mappings for URBs.
98 into URBs::
109 to submit URBs in PIO way as long as the page in scatterlists is not in the
H A Dcallbacks.rst8 structure and through the completion handler of URBs a driver submits.
106 If you are called due to a physical disconnection, all your URBs will be
123 outstanding URBs to complete, and save any device state you need to
124 restore. No more URBs may be submitted until the post_reset method
/linux/drivers/usb/usbip/
H A Dstub_rx.c208 * process coming urbs. Even if the urb is unlinked, its completion
262 ret = usb_unlink_urb(priv->urbs[i]); in stub_recv_cmd_unlink()
264 dev_err(&priv->urbs[i]->dev->dev, in stub_recv_cmd_unlink()
456 ret = usbip_recv_xbuff(ud, priv->urbs[i]); in stub_recv_xbuff()
512 * a single SG request into several URBs and map in stub_recv_cmd_submit()
519 * several URBs. Later, priv->sgl is used by in stub_recv_cmd_submit()
521 * reassemble the divied URBs. in stub_recv_cmd_submit()
538 priv->urbs = kmalloc_objs(*priv->urbs, num_urbs); in stub_recv_cmd_submit()
539 if (!priv->urbs) in stub_recv_cmd_submit()
547 priv->urbs[0] = usb_alloc_urb(np, GFP_KERNEL); in stub_recv_cmd_submit()
[all …]
H A Dstub_tx.c76 * If the server breaks single SG request into the several URBs, the in stub_complete()
77 * URBs must be reassembled before sending completed URB to the vhci. in stub_complete()
78 * Don't wake up the tx thread until all the URBs are completed. in stub_complete()
162 struct urb *urb = priv->urbs[0]; in stub_send_ret_submit()
210 actual_length += priv->urbs[i]->actual_length; in stub_send_ret_submit()
226 * URBs because the server's HCD doesn't support SG, in stub_send_ret_submit()
232 priv->urbs[i]->transfer_buffer; in stub_send_ret_submit()
234 priv->urbs[i]->actual_length; in stub_send_ret_submit()
/linux/drivers/net/can/usb/
H A Ducan.c261 /* Context Information for transmission URBs */
861 static void ucan_cleanup_rx_urbs(struct ucan_priv *up, struct urb **urbs) in ucan_cleanup_rx_urbs() argument
866 if (urbs[i]) { in ucan_cleanup_rx_urbs()
867 usb_unanchor_urb(urbs[i]); in ucan_cleanup_rx_urbs()
870 urbs[i]->transfer_buffer, in ucan_cleanup_rx_urbs()
871 urbs[i]->transfer_dma); in ucan_cleanup_rx_urbs()
872 usb_free_urb(urbs[i]); in ucan_cleanup_rx_urbs()
876 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_cleanup_rx_urbs()
880 struct urb **urbs) in ucan_prepare_and_anchor_rx_urbs() argument
928 ucan_submit_rx_urbs(struct ucan_priv * up,struct urb ** urbs) ucan_submit_rx_urbs() argument
967 struct urb *urbs[UCAN_MAX_RX_URBS]; ucan_open() local
[all...]
/linux/sound/usb/caiaq/
H A Daudio.c676 struct urb **urbs; in alloc_urbs() local
684 urbs = kmalloc_objs(*urbs, N_URBS); in alloc_urbs()
685 if (!urbs) { in alloc_urbs()
691 urbs[i] = usb_alloc_urb(FRAMES_PER_URB, GFP_KERNEL); in alloc_urbs()
692 if (!urbs[i]) { in alloc_urbs()
694 return urbs; in alloc_urbs()
697 urbs[i]->transfer_buffer = in alloc_urbs()
700 if (!urbs[i]->transfer_buffer) { in alloc_urbs()
702 return urbs; in alloc_urbs()
707 &urbs[i]->iso_frame_desc[frame]; in alloc_urbs()
[all …]
/linux/drivers/net/wireless/purelifi/plfxlc/
H A Dusb.c203 struct urb **urbs; in __lf_x_usb_enable_rx() local
207 urbs = kzalloc_objs(struct urb *, RX_URBS_COUNT); in __lf_x_usb_enable_rx()
208 if (!urbs) in __lf_x_usb_enable_rx()
212 urbs[i] = alloc_rx_urb(usb); in __lf_x_usb_enable_rx()
213 if (!urbs[i]) in __lf_x_usb_enable_rx()
221 if (rx->urbs) { in __lf_x_usb_enable_rx()
226 rx->urbs = urbs; in __lf_x_usb_enable_rx()
231 r = usb_submit_urb(urbs[i], GFP_KERNEL); in __lf_x_usb_enable_rx()
240 usb_kill_urb(urbs[i]); in __lf_x_usb_enable_rx()
242 rx->urbs = NULL; in __lf_x_usb_enable_rx()
[all …]
/linux/sound/usb/line6/
H A Dpcm.c96 Unlink all currently active URBs.
106 usb_unlink_urb(pcms->urbs[i]); in line6_unlink_audio_urbs()
112 Wait until unlinking of all currently active URBs has been finished.
134 "timeout: still %d active urbs..\n", alive); in line6_wait_clear_audio_urbs()
192 /* Submit all currently available URBs */ in line6_stream_start()
204 /* stop a PCM stream; this doesn't sync with the unlinked URBs */
454 if (pcms->urbs == NULL) in cleanup_urbs()
458 if (pcms->urbs[i]) { in cleanup_urbs()
459 usb_kill_urb(pcms->urbs[i]); in cleanup_urbs()
460 usb_free_urb(pcms->urbs[i]); in cleanup_urbs()
[all …]
H A Dcapture.c36 urb_in = line6pcm->in.urbs[index]; in submit_audio_in_urb()
65 Submit all currently available capture URBs.
154 if (urb == line6pcm->in.urbs[index]) in audio_in_callback()
258 line6pcm->in.urbs = kzalloc_objs(struct urb *, line6->iso_buffers); in line6_create_audio_in_urbs()
259 if (line6pcm->in.urbs == NULL) in line6_create_audio_in_urbs()
262 /* create audio URBs and fill in constant values: */ in line6_create_audio_in_urbs()
267 urb = line6pcm->in.urbs[i] = in line6_create_audio_in_urbs()
H A Dpcm.h88 /* allocated URBs */
89 struct urb **urbs; member
117 /* Bit mask of active URBs */
120 /* Bit mask of URBs currently being unlinked */
H A Dplayback.c163 urb_out = line6pcm->out.urbs[index]; in submit_audio_out_urb()
283 Submit all currently available playback URBs.
321 if (urb == line6pcm->out.urbs[index]) in audio_out_callback()
407 line6pcm->out.urbs = kzalloc_objs(struct urb *, line6->iso_buffers); in line6_create_audio_out_urbs()
408 if (line6pcm->out.urbs == NULL) in line6_create_audio_out_urbs()
411 /* create audio URBs and fill in constant values: */ in line6_create_audio_out_urbs()
416 urb = line6pcm->out.urbs[i] = in line6_create_audio_out_urbs()
/linux/drivers/media/usb/gspca/
H A Dbenq.c77 /* create 4 URBs - 2 on endpoint 0x83 and 2 on 0x082 */ in sd_start()
79 #error "Not enough URBs in the gspca table" in sd_start()
164 /* scan both received URBs */ in sd_isoc_irq()
191 * The images are received in URBs of different endpoints in sd_isoc_irq()
193 * Image pieces in URBs of ep 0x83 are continuated in URBs of in sd_isoc_irq()
195 * The packets in the URBs of endpoint 0x83 start with: in sd_isoc_irq()
228 /* resubmit the URBs */ in sd_isoc_irq()
/linux/drivers/video/fbdev/
H A Dudlfb.c81 /* dlfb keeps a list of urbs for efficient bulk transfers */
412 * rendering can be done directly to output buffers (e.g. USB URBs).
1753 /* When non-active we'll update virtual framebuffer, but no new urbs */ in dlfb_usb_disconnect()
1756 /* this function will wait for all in-flight urbs to complete */ in dlfb_usb_disconnect()
1799 urb->transfer_buffer_length = dlfb->urbs.size; /* reset to actual */ in dlfb_urb_completion()
1801 spin_lock_irqsave(&dlfb->urbs.lock, flags); in dlfb_urb_completion()
1802 list_add_tail(&unode->entry, &dlfb->urbs.list); in dlfb_urb_completion()
1803 dlfb->urbs.available++; in dlfb_urb_completion()
1804 spin_unlock_irqrestore(&dlfb->urbs.lock, flags); in dlfb_urb_completion()
1806 up(&dlfb->urbs
[all...]
H A Dsmscufx.c96 struct urb_list urbs; member
132 /* ufx keeps a list of urbs for efficient bulk transfers */
1090 up(&unode->dev->urbs.limit_sem); in ufx_release_urb_work()
1721 if (dev->urbs.count > 0) in ufx_usb_probe()
1744 /* When non-active we'll update virtual framebuffer, but no new urbs */ in ufx_usb_disconnect()
1753 /* this function will wait for all in-flight urbs to complete */ in ufx_usb_disconnect()
1754 if (dev->urbs.count > 0) in ufx_usb_disconnect()
1790 urb->transfer_buffer_length = dev->urbs.size; /* reset to actual */ in ufx_urb_completion()
1792 spin_lock_irqsave(&dev->urbs.lock, flags); in ufx_urb_completion()
1793 list_add_tail(&unode->entry, &dev->urbs.list); in ufx_urb_completion()
[all …]
/linux/sound/usb/
H A Dendpoint.c53 * There are functions to activate and deactivate the streaming URBs and
72 * only the first user will effectively start the URBs, and only the last
73 * one to stop it will tear the URBs down again.
454 * Send output urbs that have been prepared previously. URBs are dequeued
459 * The reason why the functionality of sending and preparing URBs is separated
538 * complete callback for urbs
990 * wait until all urbs are processed.
1010 "timeout: still %d active urbs on EP #%x\n", in wait_clear_urbs()
1031 * Stop active urbs
[all...]
H A Dmidi.c125 } urbs[OUTPUT_URBS]; member
155 struct urb *urbs[INPUT_URBS]; member
270 urb_index = context - ep->urbs; in snd_usbmidi_out_urb_complete()
305 urb = ep->urbs[urb_index].urb; in snd_usbmidi_do_output()
349 if (atomic_read(&in->urbs[j]->use_count)) in snd_usbmidi_error_timer()
351 in->urbs[j]->dev = umidi->dev; in snd_usbmidi_error_timer()
352 snd_usbmidi_submit_urb(in->urbs[j], GFP_ATOMIC); in snd_usbmidi_error_timer()
369 if (ep->urbs[0].urb) in send_bulk_static_data()
370 err = usb_bulk_msg(ep->umidi->dev, ep->urbs[0].urb->pipe, in send_bulk_static_data()
1243 * currently active URBs, s in snd_usbmidi_output_drain()
[all...]
H A Dcard.h9 #define SYNC_URBS 4 /* always four urbs for sync */
100 unsigned int nurbs; /* # urbs */
101 unsigned long active_mask; /* bitmask of active urbs */
102 unsigned long unlink_mask; /* bitmask of unlinked urbs */
103 atomic_t submitted_urbs; /* currently submitted urbs */
104 char *syncbuf; /* sync buffer for all sync URBs */
/linux/drivers/usb/core/
H A Durb.c106 * for urbs.
123 * This can be called to have access to URBs which are to be executed
242 * URBs may be submitted in interrupt context.
260 * interrupt and isochronous urbs, as part of successful URB submission
262 * (normally some power of two units). And for isochronous urbs,
295 * URBs may be submitted to endpoints before previous ones complete, to
597 * This routine cancels an in-progress request. URBs complete only once
633 * Host Controller Drivers (HCDs) place all the URBs for a particular
638 * will not restart until all its unlinked URBs have been fully retired,
658 * unlinking all pending URBs at the first fault.
[all …]
H A Dmessage.c364 * users are forced to abuse this routine by using it to submit URBs for
454 if (io->urbs) { in sg_clean()
456 usb_free_urb(io->urbs[io->entries]); in sg_clean()
457 kfree(io->urbs); in sg_clean()
458 io->urbs = NULL; in sg_clean()
473 * device driver code (like this routine) unlink queued urbs first, in sg_complete()
499 /* the previous urbs, and this one, completed already. in sg_complete()
500 * unlink pending urbs so they won't rx/tx bad data. in sg_complete()
505 if (!io->urbs[i]) in sg_complete()
508 usb_block_urb(io->urbs[ in sg_complete()
[all...]
/linux/drivers/usb/misc/
H A Dusbtest.c90 * urbs and buffers are allocated dynamically,
115 /* set up all urbs so they can be used with either bulk or interrupt */
247 * These just package urbs as requests that can be easily canceled.
1220 /* allocate and init the urbs we'll queue. in test_ctrl_queue()
1385 /* queue the urbs */ in test_ctrl_queue()
1479 /* we can't unlink urbs while they're completing in unlink1()
1531 struct urb **urbs; member
1541 if (urb == ctx->urbs[ctx->num - 4] || urb == ctx->urbs[ctx->num - 2]) { in unlink_queued_callback()
1574 /* Allocate and init the urbs we'll queue */ in unlink_queued()
1575 ctx.urbs = kzalloc_objs(struct urb *, num); in unlink_queued()
[all …]
/linux/drivers/net/wireless/zydas/zd1211rw/
H A Dzd_usb.c750 struct urb **urbs; in __zd_usb_enable_rx() local
755 urbs = kzalloc_objs(struct urb *, RX_URBS_COUNT); in __zd_usb_enable_rx()
756 if (!urbs) in __zd_usb_enable_rx()
759 urbs[i] = alloc_rx_urb(usb); in __zd_usb_enable_rx()
760 if (!urbs[i]) in __zd_usb_enable_rx()
766 if (rx->urbs) { in __zd_usb_enable_rx()
771 rx->urbs = urbs; in __zd_usb_enable_rx()
776 r = usb_submit_urb(urbs[i], GFP_KERNEL); in __zd_usb_enable_rx()
784 usb_kill_urb(urbs[i]); in __zd_usb_enable_rx()
787 rx->urbs = NULL; in __zd_usb_enable_rx()
[all …]
/linux/drivers/media/usb/au0828/
H A Dau0828-dvb.c176 if (dev->urbs[i]) { in stop_urb_transfer()
177 usb_kill_urb(dev->urbs[i]); in stop_urb_transfer()
179 kfree(dev->urbs[i]->transfer_buffer); in stop_urb_transfer()
181 usb_free_urb(dev->urbs[i]); in stop_urb_transfer()
202 dev->urbs[i] = usb_alloc_urb(0, GFP_KERNEL); in start_urb_transfer()
203 if (!dev->urbs[i]) in start_urb_transfer()
206 purb = dev->urbs[i]; in start_urb_transfer()
216 dev->urbs[i] = NULL; in start_urb_transfer()
236 ret = usb_submit_urb(dev->urbs[i], GFP_ATOMIC); in start_urb_transfer()
/linux/drivers/usb/atm/
H A Dusbatm.c38 * - unlink all active send urbs of a vcc that is being closed.
105 "Number of urbs used for reception (range: 0-"
111 "Number of urbs used for transmission (range: 0-"
193 ** urbs **
938 /* submit all rx URBs */ in usbatm_atm_init()
940 usbatm_submit_urb(instance->urbs[i]); in usbatm_atm_init()
1021 size = struct_size(instance, urbs, in usbatm_usb_probe()
1120 /* initialize urbs */ in usbatm_usb_probe()
1135 instance->urbs[i] = urb; in usbatm_usb_probe()
1157 /* put all tx URBs on the list of spares */ in usbatm_usb_probe()
[all …]

123456789