| /kernel/linux/linux-6.6/drivers/gpu/drm/udl/ |
| D | udl_main.c | 95 * Need to ensure a channel is selected before submitting URBs 138 urb->transfer_buffer_length = udl->urbs.size; /* reset to actual */ in udl_urb_completion() 140 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_urb_completion() 141 list_add_tail(&unode->entry, &udl->urbs.list); in udl_urb_completion() 142 udl->urbs.available++; in udl_urb_completion() 143 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_urb_completion() 145 wake_up(&udl->urbs.sleep); in udl_urb_completion() 154 DRM_DEBUG("Waiting for completes and freeing all render urbs\n"); in udl_free_urb_list() 157 while (udl->urbs.count) { in udl_free_urb_list() 158 spin_lock_irq(&udl->urbs.lock); in udl_free_urb_list() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/udl/ |
| D | udl_main.c | 97 * Need to ensure a channel is selected before submitting URBs 127 up(&unode->dev->urbs.limit_sem); in udl_release_urb_work() 146 urb->transfer_buffer_length = udl->urbs.size; /* reset to actual */ in udl_urb_completion() 148 spin_lock_irqsave(&udl->urbs.lock, flags); in udl_urb_completion() 149 list_add_tail(&unode->entry, &udl->urbs.list); in udl_urb_completion() 150 udl->urbs.available++; in udl_urb_completion() 151 spin_unlock_irqrestore(&udl->urbs.lock, flags); in udl_urb_completion() 162 up(&udl->urbs.limit_sem); in udl_urb_completion() 168 int count = udl->urbs.count; in udl_free_urb_list() 173 DRM_DEBUG("Waiting for completes and freeing all render urbs\n"); in udl_free_urb_list() [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/usb/ |
| D | anchors.rst | 9 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 52 This function unlinks all URBs associated with an anchor. The URBs [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/usb/ |
| D | anchors.rst | 9 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 52 This function unlinks all URBs associated with an anchor. The URBs [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/usbip/ |
| D | stub_rx.c | 199 * process coming urbs. Even if the urb is unlinked, its completion 253 ret = usb_unlink_urb(priv->urbs[i]); in stub_recv_cmd_unlink() 255 dev_err(&priv->urbs[i]->dev->dev, in stub_recv_cmd_unlink() 447 ret = usbip_recv_xbuff(ud, priv->urbs[i]); in stub_recv_xbuff() 502 * a single SG request into several URBs and map in stub_recv_cmd_submit() 509 * several URBs. Later, priv->sgl is used by in stub_recv_cmd_submit() 511 * reassemble the divied URBs. in stub_recv_cmd_submit() 528 priv->urbs = kmalloc_array(num_urbs, sizeof(*priv->urbs), GFP_KERNEL); in stub_recv_cmd_submit() 529 if (!priv->urbs) in stub_recv_cmd_submit() 537 priv->urbs[0] = usb_alloc_urb(np, GFP_KERNEL); in stub_recv_cmd_submit() [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/usbip/ |
| D | stub_rx.c | 199 * process coming urbs. Even if the urb is unlinked, its completion 253 ret = usb_unlink_urb(priv->urbs[i]); in stub_recv_cmd_unlink() 255 dev_err(&priv->urbs[i]->dev->dev, in stub_recv_cmd_unlink() 447 ret = usbip_recv_xbuff(ud, priv->urbs[i]); in stub_recv_xbuff() 502 * a single SG request into several URBs and map in stub_recv_cmd_submit() 509 * several URBs. Later, priv->sgl is used by in stub_recv_cmd_submit() 511 * reassemble the divied URBs. in stub_recv_cmd_submit() 528 priv->urbs = kmalloc_array(num_urbs, sizeof(*priv->urbs), GFP_KERNEL); in stub_recv_cmd_submit() 529 if (!priv->urbs) in stub_recv_cmd_submit() 537 priv->urbs[0] = usb_alloc_urb(np, GFP_KERNEL); in stub_recv_cmd_submit() [all …]
|
| /kernel/linux/linux-6.6/sound/usb/caiaq/ |
| D | audio.c | 700 struct urb **urbs; in alloc_urbs() local 708 urbs = kmalloc_array(N_URBS, sizeof(*urbs), GFP_KERNEL); in alloc_urbs() 709 if (!urbs) { in alloc_urbs() 715 urbs[i] = usb_alloc_urb(FRAMES_PER_URB, GFP_KERNEL); in alloc_urbs() 716 if (!urbs[i]) { in alloc_urbs() 718 return urbs; in alloc_urbs() 721 urbs[i]->transfer_buffer = in alloc_urbs() 724 if (!urbs[i]->transfer_buffer) { in alloc_urbs() 726 return urbs; in alloc_urbs() 731 &urbs[i]->iso_frame_desc[frame]; in alloc_urbs() [all …]
|
| /kernel/linux/linux-5.10/sound/usb/caiaq/ |
| D | audio.c | 700 struct urb **urbs; in alloc_urbs() local 708 urbs = kmalloc_array(N_URBS, sizeof(*urbs), GFP_KERNEL); in alloc_urbs() 709 if (!urbs) { in alloc_urbs() 715 urbs[i] = usb_alloc_urb(FRAMES_PER_URB, GFP_KERNEL); in alloc_urbs() 716 if (!urbs[i]) { in alloc_urbs() 718 return urbs; in alloc_urbs() 721 urbs[i]->transfer_buffer = in alloc_urbs() 724 if (!urbs[i]->transfer_buffer) { in alloc_urbs() 726 return urbs; in alloc_urbs() 731 &urbs[i]->iso_frame_desc[frame]; in alloc_urbs() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/can/usb/ |
| D | ucan.c | 261 /* Context Information for transmission URBs */ 860 static void ucan_cleanup_rx_urbs(struct ucan_priv *up, struct urb **urbs) in ucan_cleanup_rx_urbs() argument 865 if (urbs[i]) { in ucan_cleanup_rx_urbs() 866 usb_unanchor_urb(urbs[i]); in ucan_cleanup_rx_urbs() 869 urbs[i]->transfer_buffer, in ucan_cleanup_rx_urbs() 870 urbs[i]->transfer_dma); in ucan_cleanup_rx_urbs() 871 usb_free_urb(urbs[i]); in ucan_cleanup_rx_urbs() 875 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_cleanup_rx_urbs() 879 struct urb **urbs) in ucan_prepare_and_anchor_rx_urbs() argument 883 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_prepare_and_anchor_rx_urbs() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/can/usb/ |
| D | ucan.c | 259 /* Context Information for transmission URBs */ 858 static void ucan_cleanup_rx_urbs(struct ucan_priv *up, struct urb **urbs) in ucan_cleanup_rx_urbs() argument 863 if (urbs[i]) { in ucan_cleanup_rx_urbs() 864 usb_unanchor_urb(urbs[i]); in ucan_cleanup_rx_urbs() 867 urbs[i]->transfer_buffer, in ucan_cleanup_rx_urbs() 868 urbs[i]->transfer_dma); in ucan_cleanup_rx_urbs() 869 usb_free_urb(urbs[i]); in ucan_cleanup_rx_urbs() 873 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_cleanup_rx_urbs() 877 struct urb **urbs) in ucan_prepare_and_anchor_rx_urbs() argument 881 memset(urbs, 0, sizeof(*urbs) * UCAN_MAX_RX_URBS); in ucan_prepare_and_anchor_rx_urbs() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/purelifi/plfxlc/ |
| D | usb.c | 203 struct urb **urbs; in __lf_x_usb_enable_rx() local 207 urbs = kcalloc(RX_URBS_COUNT, sizeof(struct urb *), GFP_KERNEL); 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 …]
|
| /kernel/linux/linux-5.10/sound/usb/ |
| D | endpoint.c | 30 * There are functions to activate and deactivate the streaming URBs and 49 * only the first user will effectively start the URBs, and only the last 50 * one to stop it will tear the URBs down again. 321 * Send output urbs that have been prepared previously. URBs are dequeued 326 * The reason why the functionality of sending and preparing URBs is separated 331 * driven by dedicated sync endpoints, URBs are immediately re-submitted 379 * complete callback for urbs 535 * wait until all urbs are processed. 552 "timeout: still %d active urbs on EP #%x\n", in wait_clear_urbs() 574 * unlink active urbs. [all …]
|
| /kernel/linux/linux-6.6/drivers/media/usb/gspca/ |
| D | benq.c | 77 /* 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()
|
| /kernel/linux/linux-5.10/drivers/media/usb/gspca/ |
| D | benq.c | 77 /* 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()
|
| /kernel/linux/linux-5.10/sound/usb/line6/ |
| D | pcm.c | 96 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() 193 /* Submit all currently available URBs */ in line6_stream_start() 206 /* stop a PCM stream; this doesn't sync with the unlinked URBs */ 456 if (pcms->urbs == NULL) in cleanup_urbs() 460 if (pcms->urbs[i]) { in cleanup_urbs() 461 usb_kill_urb(pcms->urbs[i]); in cleanup_urbs() 462 usb_free_urb(pcms->urbs[i]); in cleanup_urbs() [all …]
|
| D | capture.c | 36 urb_in = line6pcm->in.urbs[index]; in submit_audio_in_urb() 65 Submit all currently available capture URBs. 156 if (urb == line6pcm->in.urbs[index]) in audio_in_callback() 262 line6pcm->in.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *), in line6_create_audio_in_urbs() 264 if (line6pcm->in.urbs == NULL) in line6_create_audio_in_urbs() 267 /* create audio URBs and fill in constant values: */ in line6_create_audio_in_urbs() 272 urb = line6pcm->in.urbs[i] = in line6_create_audio_in_urbs()
|
| /kernel/linux/linux-6.6/sound/usb/line6/ |
| D | pcm.c | 96 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() 193 /* Submit all currently available URBs */ in line6_stream_start() 206 /* stop a PCM stream; this doesn't sync with the unlinked URBs */ 456 if (pcms->urbs == NULL) in cleanup_urbs() 460 if (pcms->urbs[i]) { in cleanup_urbs() 461 usb_kill_urb(pcms->urbs[i]); in cleanup_urbs() 462 usb_free_urb(pcms->urbs[i]); in cleanup_urbs() [all …]
|
| D | capture.c | 36 urb_in = line6pcm->in.urbs[index]; in submit_audio_in_urb() 65 Submit all currently available capture URBs. 156 if (urb == line6pcm->in.urbs[index]) in audio_in_callback() 262 line6pcm->in.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *), in line6_create_audio_in_urbs() 264 if (line6pcm->in.urbs == NULL) in line6_create_audio_in_urbs() 267 /* create audio URBs and fill in constant values: */ in line6_create_audio_in_urbs() 272 urb = line6pcm->in.urbs[i] = in line6_create_audio_in_urbs()
|
| /kernel/linux/linux-6.6/drivers/video/fbdev/ |
| D | udlfb.c | 81 /* dlfb keeps a list of urbs for efficient bulk transfers */ 410 * rendering can be done directly to output buffers (e.g. USB URBs). 1793 /* When non-active we'll update virtual framebuffer, but no new urbs */ in dlfb_usb_disconnect() 1796 /* this function will wait for all in-flight urbs to complete */ in dlfb_usb_disconnect() 1839 urb->transfer_buffer_length = dlfb->urbs.size; /* reset to actual */ in dlfb_urb_completion() 1841 spin_lock_irqsave(&dlfb->urbs.lock, flags); in dlfb_urb_completion() 1842 list_add_tail(&unode->entry, &dlfb->urbs.list); in dlfb_urb_completion() 1843 dlfb->urbs.available++; in dlfb_urb_completion() 1844 spin_unlock_irqrestore(&dlfb->urbs.lock, flags); in dlfb_urb_completion() 1846 up(&dlfb->urbs.limit_sem); in dlfb_urb_completion() [all …]
|
| D | smscufx.c | 96 struct urb_list urbs; member 132 /* ufx keeps a list of urbs for efficient bulk transfers */ 1142 up(&unode->dev->urbs.limit_sem); in ufx_release_urb_work() 1756 if (dev->urbs.count > 0) in ufx_usb_probe() 1779 /* When non-active we'll update virtual framebuffer, but no new urbs */ in ufx_usb_disconnect() 1788 /* this function will wait for all in-flight urbs to complete */ in ufx_usb_disconnect() 1789 if (dev->urbs.count > 0) in ufx_usb_disconnect() 1825 urb->transfer_buffer_length = dev->urbs.size; /* reset to actual */ in ufx_urb_completion() 1827 spin_lock_irqsave(&dev->urbs.lock, flags); in ufx_urb_completion() 1828 list_add_tail(&unode->entry, &dev->urbs.list); in ufx_urb_completion() [all …]
|
| /kernel/linux/linux-5.10/drivers/video/fbdev/ |
| D | udlfb.c | 81 /* dlfb keeps a list of urbs for efficient bulk transfers */ 407 * rendering can be done directly to output buffers (e.g. USB URBs). 1800 /* When non-active we'll update virtual framebuffer, but no new urbs */ in dlfb_usb_disconnect() 1803 /* this function will wait for all in-flight urbs to complete */ in dlfb_usb_disconnect() 1846 urb->transfer_buffer_length = dlfb->urbs.size; /* reset to actual */ in dlfb_urb_completion() 1848 spin_lock_irqsave(&dlfb->urbs.lock, flags); in dlfb_urb_completion() 1849 list_add_tail(&unode->entry, &dlfb->urbs.list); in dlfb_urb_completion() 1850 dlfb->urbs.available++; in dlfb_urb_completion() 1851 spin_unlock_irqrestore(&dlfb->urbs.lock, flags); in dlfb_urb_completion() 1853 up(&dlfb->urbs.limit_sem); in dlfb_urb_completion() [all …]
|
| D | smscufx.c | 96 struct urb_list urbs; member 132 /* ufx keeps a list of urbs for efficient bulk transfers */ 1141 up(&unode->dev->urbs.limit_sem); in ufx_release_urb_work() 1755 if (dev->urbs.count > 0) in ufx_usb_probe() 1778 /* When non-active we'll update virtual framebuffer, but no new urbs */ in ufx_usb_disconnect() 1787 /* this function will wait for all in-flight urbs to complete */ in ufx_usb_disconnect() 1788 if (dev->urbs.count > 0) in ufx_usb_disconnect() 1824 urb->transfer_buffer_length = dev->urbs.size; /* reset to actual */ in ufx_urb_completion() 1826 spin_lock_irqsave(&dev->urbs.lock, flags); in ufx_urb_completion() 1827 list_add_tail(&unode->entry, &dev->urbs.list); in ufx_urb_completion() [all …]
|
| /kernel/linux/linux-6.6/sound/usb/ |
| D | endpoint.c | 53 * 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. 446 * Send output urbs that have been prepared previously. URBs are dequeued 451 * The reason why the functionality of sending and preparing URBs is separated 531 * complete callback for urbs 984 * wait until all urbs are processed. 1004 "timeout: still %d active urbs on EP #%x\n", in wait_clear_urbs() 1025 * Stop active urbs 1062 * release an endpoint's urbs [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/core/ |
| D | urb.c | 106 * 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 596 * 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 …]
|
| /kernel/linux/linux-6.6/drivers/usb/core/ |
| D | urb.c | 107 * for urbs. 124 * This can be called to have access to URBs which are to be executed 243 * URBs may be submitted in interrupt context. 261 * interrupt and isochronous urbs, as part of successful URB submission 263 * (normally some power of two units). And for isochronous urbs, 296 * URBs may be submitted to endpoints before previous ones complete, to 592 * This routine cancels an in-progress request. URBs complete only once 629 * Host Controller Drivers (HCDs) place all the URBs for a particular 634 * will not restart until all its unlinked URBs have been fully retired, 654 * unlinking all pending URBs at the first fault. [all …]
|