Lines Matching +full:lock +full:- +full:less
1 .. _usb-urb:
6 :Revised: 2000-Dec-05
7 :Again: 2002-Jul-06
8 :Again: 2005-Sep-19
9 :Again: 2017-Mar-29
14 The USB subsystem now has a substantial section at :ref:`usb-hostside-api`
26 - An URB consists of all relevant information to execute any USB transaction
29 - Execution of an URB is inherently an asynchronous operation, i.e. the
33 - Transfers for one URB can be canceled with :c:func:`usb_unlink_urb`
36 - Each URB has a completion handler, which is called after the action
38 context-pointer for passing information to the completion handler.
40 - Each endpoint for a device logically supports a queue of requests.
127 - For ISO there are two startup behaviors: Specified start_frame or ASAP.
128 - For ASAP set ``URB_ISO_ASAP`` in transfer_flags.
147 - Out of memory (``-ENOMEM``)
148 - Unplugged device (``-ENODEV``)
149 - Stalled endpoint (``-EPIPE``)
150 - Too many queued ISO transfers (``-EAGAIN``)
151 - Too many requested ISO frames (``-EFBIG``)
152 - Invalid INT interval (``-EINVAL``)
153 - More than one packet for INT (``-EINVAL``)
155 After submission, ``urb->status`` is ``-EINPROGRESS``; however, you should
160 multi-buffering, to get seamless ISO streaming.
185 they will get a ``-EPERM`` error. Thus you can be sure that when
191 cause a memory-access violation. The driver is responsible for avoiding this,
192 which often means some sort of lock will be needed to prevent the URB
196 completion handler, the handler must not take any lock that is held
198 is to increment the URB's reference count while holding the lock, then
199 drop the lock and call usb_unlink_urb or usb_kill_urb, and then
219 handler, you should have a look at ``urb->status`` to detect any USB errors.
243 have to set ``urb->interval`` to say how often to make transfers; it's
253 The :c:func:`usb_submit_urb` call modifies ``urb->interval`` to the implemented
254 interval value that is less than or equal to the requested interval value. If
255 ``URB_ISO_ASAP`` scheduling is used, ``urb->start_frame`` is also updated.
283 The :c:func:`usb_submit_urb` call modifies ``urb->interval`` to the implemented
284 interval value that is less than or equal to the requested interval value.