| /linux/Documentation/userspace-api/media/v4l/ |
| H A D | mmap.rst | 18 Streaming is an I/O method where only pointers to buffers are exchanged 20 mapping is primarily intended to map buffers in device memory into the 24 drivers support streaming as well, allocating buffers in DMA-able main 27 A driver can support many sets of buffers. Each set is identified by a 32 To allocate device buffers applications call the 34 of buffers and buffer type, for example ``V4L2_BUF_TYPE_VIDEO_CAPTURE``. 35 This ioctl can also be used to change the number of buffers or to free 36 the allocated memory, provided none of the buffers are still mapped. 38 Before applications can access the buffers they must map them into their 40 location of the buffers in device memory can be determined with the [all …]
|
| H A D | userp.rst | 19 methods. Buffers (planes) are allocated by the application itself, and 26 No buffers (planes) are allocated beforehand, consequently they are not 27 indexed and cannot be queried like mapped buffers with the 51 :ref:`VIDIOC_QBUF <VIDIOC_QBUF>` ioctl. Although buffers are commonly 60 Filled or displayed buffers are dequeued with the 66 Applications must take care not to free buffers without dequeuing. 67 Firstly, the buffers remain locked for longer, wasting physical memory. 73 buffers, to start capturing and enter the read loop. Here the 76 and enqueue buffers, when enough buffers are stacked up output is 78 buffers it must wait until an empty buffer can be dequeued and reused. [all …]
|
| H A D | capture.c.rst | 52 struct buffer *buffers; 92 if (-1 == read(fd, buffers[0].start, buffers[0].length)) { 107 process_image(buffers[0].start, buffers[0].length); 133 process_image(buffers[buf.index].start, buf.bytesused); 161 if (buf.m.userptr == (unsigned long)buffers[i].start 162 && buf.length == buffers[i].length) 269 buf.m.userptr = (unsigned long)buffers[i].start; 270 buf.length = buffers[i].length; 288 free(buffers[0].start); 293 if (-1 == munmap(buffers[i].start, buffers[i].length)) [all …]
|
| H A D | dev-encoder.rst | 158 desired size of ``CAPTURE`` buffers; the encoder may adjust it to 170 adjusted size of ``CAPTURE`` buffers. 308 coded video. It does *not* set the rate at which buffers arrive on the 366 buffers to be aligned to 1920x1088 for codecs with 16x16 macroblock 376 7. Allocate buffers for both ``OUTPUT`` and ``CAPTURE`` via 382 requested number of buffers to allocate; greater than zero. 394 actual number of buffers allocated. 398 The actual number of allocated buffers may differ from the ``count`` 404 To allocate more than the minimum number of OUTPUT buffers (for pipeline 406 control to get the minimum number of buffers required, and pass the [all …]
|
| H A D | vidioc-reqbufs.rst | 36 Memory mapped buffers are located in device memory and must be allocated 38 space. User buffers are allocated by applications themselves, and this 40 to setup some internal structures. Similarly, DMABUF buffers are 45 To allocate device buffers applications initialize all fields of the 48 the desired number of buffers, ``memory`` must be set to the requested 51 allocate the requested number of buffers and it stores the actual number 54 number is also possible when the driver requires more buffers to 56 buffers, one displayed and one filled by the application. 62 buffers. Note that if any buffers are still mapped or exported via DMABUF, 66 If ``V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS`` is set, then these buffers are [all …]
|
| H A D | dmabuf.rst | 10 The DMABUF framework provides a generic method for sharing buffers 19 exporting V4L2 buffers as DMABUF file descriptors. 25 importing DMA buffers through DMABUF file descriptors is supported is 29 This I/O method is dedicated to sharing DMA buffers between different 31 DRM). Buffers (planes) are allocated by a driver on behalf of an 32 application. Next, these buffers are exported to the application as file 63 buffers, every plane can be associated with a different DMABUF 64 descriptor. Although buffers are commonly cycled, applications can pass 121 Captured or displayed buffers are dequeued with the 129 buffers, to start capturing and enter the read loop. Here the [all …]
|
| H A D | vidioc-create-bufs.rst | 13 VIDIOC_CREATE_BUFS - Create buffers for Memory Mapped or User Pointer or DMA Buffer I/O 34 This ioctl is used to create buffers for :ref:`memory mapped <mmap>` 38 over buffers is required. This ioctl can be called multiple times to 39 create buffers of different sizes. 41 To allocate the device buffers applications must initialize the relevant 43 ``count`` field must be set to the number of requested buffers, the 47 The ``format`` field specifies the image format that the buffers must be 54 sizes (for multi-planar formats) will be used for the allocated buffers. 58 The buffers created by this ioctl will have as minimum size the size 68 will attempt to allocate up to the requested number of buffers and store [all …]
|
| H A D | dev-stateless-decoder.rst | 101 destination buffers parsed/decoded from the bytestream. 168 to obtain up-to-date information about the buffers size and layout. 170 6. Allocate source (bytestream) buffers via :c:func:`VIDIOC_REQBUFS` on 176 requested number of buffers to allocate; greater than zero. 187 actual number of buffers allocated. 190 minimum of required number of ``OUTPUT`` buffers for the given format and 192 to get the actual number of buffers allocated. 194 7. Allocate destination (raw format) buffers via :c:func:`VIDIOC_REQBUFS` on the 200 requested number of buffers to allocate; greater than zero. The client 201 is responsible for deducing the minimum number of buffers required [all …]
|
| H A D | vidioc-streamon.rst | 43 Capture hardware is disabled and no input buffers are filled (if there 44 are any empty buffers in the incoming queue) until ``VIDIOC_STREAMON`` 51 If ``VIDIOC_STREAMON`` fails then any already queued buffers will remain 55 in progress, unlocks any user pointer buffers locked in physical memory, 56 and it removes all buffers from the incoming and outgoing queues. That 63 If buffers have been queued with :ref:`VIDIOC_QBUF` and 65 ``VIDIOC_STREAMON``, then those queued buffers will also be removed from 77 but ``VIDIOC_STREAMOFF`` will return queued buffers to their starting 95 The buffer ``type`` is not supported, or no buffers have been
|
| /linux/lib/xz/ |
| H A D | xz_dec_test.c | 41 * Input and output buffers. The input buffer is used as a temporary safe 48 * Structure to pass the input and output buffers to the XZ decoder. 51 static struct xz_buf buffers = { variable 74 buffers.in_pos = 0; in xz_dec_test_open() 75 buffers.in_size = 0; in xz_dec_test_open() 76 buffers.out_pos = 0; in xz_dec_test_open() 119 while ((remaining > 0 || buffers.out_pos == buffers.out_size) in xz_dec_test_write() 121 if (buffers.in_pos == buffers.in_size) { in xz_dec_test_write() 122 buffers.in_pos = 0; in xz_dec_test_write() 123 buffers.in_size = min(remaining, sizeof(buffer_in)); in xz_dec_test_write() [all …]
|
| /linux/drivers/media/pci/ivtv/ |
| H A D | ivtv-queue.c | 35 q->buffers = 0; in ivtv_queue_init() 53 q->buffers++; in ivtv_enqueue() 68 q->buffers--; in ivtv_dequeue() 82 from->buffers--; in ivtv_queue_move_buf() 88 to->buffers++; in ivtv_queue_move_buf() 93 /* Move 'needed_bytes' worth of buffers from queue 'from' into queue 'to'. 94 If 'needed_bytes' == 0, then move all buffers from 'from' into 'to'. 95 If 'steal' != NULL, then buffers may also taken from that queue if 99 also cleared if buffers need to be taken from the 'steal' queue and 107 -ENOMEM is returned if the buffers could not be obtained, 0 if all [all …]
|
| /linux/drivers/media/platform/qcom/iris/ |
| H A D | iris_buffer.c | 296 struct iris_buffers *buffers = &inst->buffers[buffer_type]; in iris_fill_internal_buf_info() local 298 buffers->size = inst->core->iris_platform_data->get_vpu_buffer_size(inst, buffer_type); in iris_fill_internal_buf_info() 299 buffers->min_count = iris_vpu_buf_count(inst, buffer_type); in iris_fill_internal_buf_info() 338 struct iris_buffers *buffers = &inst->buffers[buffer_type]; in iris_create_internal_buffer() local 342 if (!buffers->size) in iris_create_internal_buffer() 352 buffer->buffer_size = buffers->size; in iris_create_internal_buffer() 362 list_add_tail(&buffer->list, &buffers->list); in iris_create_internal_buffer() 371 struct iris_buffers *buffers; in iris_create_internal_buffers() local 394 buffers = &inst->buffers[internal_buf_type[i]]; in iris_create_internal_buffers() 395 for (j = 0; j < buffers->min_count; j++) { in iris_create_internal_buffers() [all …]
|
| /linux/Documentation/userspace-api/media/dvb/ |
| H A D | dmx-reqbufs.rst | 38 Memory mapped buffers are located in device memory and must be allocated 40 space. User buffers are allocated by applications themselves, and this 42 to setup some internal structures. Similarly, DMABUF buffers are 47 To allocate device buffers applications initialize all fields of the 49 to the desired number of buffers, and ``size`` to the size of each 53 attempt to allocate the requested number of buffers and it stores the actual 55 number is also possible when the driver requires more buffers to 63 buffers, however this cannot succeed when any buffers are still mapped. 64 A ``count`` value of zero frees all buffers, after aborting or finishing
|
| /linux/drivers/net/ethernet/intel/idpf/ |
| H A D | idpf_controlq_setup.c | 24 * idpf_ctlq_alloc_bufs - Allocate Control Queue (CQ) buffers 29 * queue, allocate DMA buffers 36 /* Do not allocate DMA buffers for transmit queues */ in idpf_ctlq_alloc_bufs() 41 * allocate the mapped buffers for the event processing in idpf_ctlq_alloc_bufs() 47 /* allocate the mapped buffers (except for the last one) */ in idpf_ctlq_alloc_bufs() 85 * This assumes the posted send buffers have already been cleaned 99 * Free the DMA buffers for RX queues, and DMA buffer header for both RX and TX 100 * queues. The upper layers are expected to manage freeing of TX DMA buffers 109 /* free DMA buffers for rx queues*/ in idpf_ctlq_free_bufs() 131 * Free the memory used by the ring, buffers and other related structures [all …]
|
| /linux/fs/ |
| H A D | buffer.c | 85 * Returns if the folio has dirty or writeback buffers. If all the buffers 87 * any of the buffers are locked, it is assumed they are locked for IO. 199 * Folio lock protects the buffers. Callers that cannot block in __find_get_block_slow() 232 /* we might be here because some of the buffers on this page are in __find_get_block_slow() 235 * elsewhere, don't buffer_error if we had some unmapped buffers in __find_get_block_slow() 424 * If a page's buffers are under async readin (end_buffer_async_read 426 * control could lock one of the buffers after it has completed 427 * but while some of the other buffers have not completed. This 432 * The page comes unlocked when it has no locked buffer_async buffers 436 * the buffers. [all …]
|
| /linux/Documentation/userspace-api/media/mediactl/ |
| H A D | request-api.rst | 21 on the media pipeline, reconfigure it for the next frame, queue the buffers to 28 specific buffers. This allows user-space to schedule several tasks ("requests") 59 instead of being immediately applied, and buffers queued to a request do not 65 Once the configuration and buffers of the request are specified, it can be 72 output buffers, not for capture buffers. Attempting to add a capture buffer 77 buffers are processed. Media controller drivers do a best effort implementation 82 It is not allowed to mix queuing requests with directly queuing buffers: 99 once all its associated buffers are available for dequeuing and all the 102 dequeue its buffers: buffers that are available halfway through a request can 135 to queue many such buffers in advance. It can also take advantage of requests' [all …]
|
| /linux/include/media/ |
| H A D | videobuf2-core.h | 27 * enum vb2_memory - type of memory model used to make the buffers visible 32 * @VB2_MEMORY_MMAP: The buffers are allocated by the Kernel and it is 34 * also used when the user is using the buffers via 36 * @VB2_MEMORY_USERPTR: The buffers was allocated in userspace and it is 38 * @VB2_MEMORY_DMABUF: The buffers are passed to userspace via DMA buffer. 278 * queued_entry: entry on the queued buffers list, which holds 279 * all buffers queued from userspace 280 * done_entry: entry on the list that stores all buffers ready 335 * twice: if the original number of requested buffers 338 * buffers t [all...] |
| /linux/drivers/iio/buffer/ |
| H A D | industrialio-hw-consumer.c | 19 * @buffers: hardware buffers list head. 23 struct list_head buffers; member 58 list_for_each_entry(buf, &hwc->buffers, head) { in iio_hw_consumer_get_buffer() 72 list_add_tail(&buf->head, &hwc->buffers); in iio_hw_consumer_get_buffer() 94 INIT_LIST_HEAD(&hwc->buffers); in iio_hw_consumer_alloc() 116 list_for_each_entry(buf, &hwc->buffers, head) in iio_hw_consumer_alloc() 134 list_for_each_entry_safe(buf, n, &hwc->buffers, head) in iio_hw_consumer_free() 183 list_for_each_entry(buf, &hwc->buffers, head) { in iio_hw_consumer_enable() 192 list_for_each_entry_continue_reverse(buf, &hwc->buffers, head) in iio_hw_consumer_enable() 206 list_for_each_entry(buf, &hwc->buffers, head) in iio_hw_consumer_disable()
|
| /linux/drivers/staging/media/starfive/camss/ |
| H A D | stf-capture.c | 79 struct stf_v_buf *output = &cap->buffers; in stf_init_addrs() 113 struct stf_v_buf *output = &cap->buffers; in stf_cap_s_cfg() 138 struct stf_v_buf *output = &cap->buffers; in stf_cap_s_cleanup() 244 cap->buffers.state = STF_OUTPUT_OFF; in stf_capture_init() 245 cap->buffers.buf[0] = NULL; in stf_capture_init() 246 cap->buffers.buf[1] = NULL; in stf_capture_init() 247 cap->buffers.active_buf = 0; in stf_capture_init() 248 atomic_set(&cap->buffers.frame_skip, 4); in stf_capture_init() 249 INIT_LIST_HEAD(&cap->buffers.pending_bufs); in stf_capture_init() 250 INIT_LIST_HEAD(&cap->buffers.ready_bufs); in stf_capture_init() [all …]
|
| /linux/Documentation/admin-guide/media/ |
| H A D | cafe_ccic.rst | 37 buffers until the time comes to transfer data. If this option is set, 38 then worst-case-sized buffers will be allocated at module load time. 42 - dma_buf_size: The size of DMA buffers to allocate. Note that this 43 option is only consulted for load-time allocation; when buffers are 48 buffers. Normally, the driver tries to use three buffers; on faster 51 - min_buffers: The minimum number of streaming I/O buffers that the driver 56 - max_buffers: The maximum number of streaming I/O buffers; default is
|
| /linux/drivers/android/ |
| H A D | binder_alloc.h | 22 * @entry: entry alloc->buffers 39 * Bookkeeping structure for binder transaction buffers 86 * @buffers: list of all buffers for this proc 87 * @free_buffers: rb tree of buffers available for allocation 89 * @allocated_buffers: rb tree of allocated buffers sorted by address 90 * @free_async_space: VA space available for async buffers. This is 103 * buffers. It is normally initialized during binder_init() and binder_mmap() 104 * calls. The address space is used for both user-visible buffers and for 105 * struct binder_buffer objects used to track the user buffers 111 struct list_head buffers; member
|
| /linux/drivers/media/pci/cx18/ |
| H A D | cx18-queue.c | 242 /* Reset MDL id's and move all buffers back to the stream's buf_pool */ in cx18_unload_queues() 272 * Attach buffers to MDLs, give the MDLs ids, and add MDLs to q_free in cx18_load_queues() 274 * Excess buffers are left in buf_pool and/or on an MDL in q_idle in cx18_load_queues() 301 * case of a non-integral number of buffers to meet in cx18_load_queues() 313 /* Not enough buffers for this MDL; we won't use it */ in cx18_load_queues() 337 if (s->buffers == 0) in cx18_stream_alloc() 340 CX18_DEBUG_INFO("Allocate %s stream: %d x %d buffers (%d.%02d kB total)\n", in cx18_stream_alloc() 341 s->name, s->buffers, s->buf_size, in cx18_stream_alloc() 342 s->buffers * s->buf_size / 1024, in cx18_stream_alloc() 343 (s->buffers * s->buf_size * 100 / 1024) % 100); in cx18_stream_alloc() [all …]
|
| /linux/drivers/gpu/drm/xen/ |
| H A D | xen_drm_front.h | 27 * DOC: Driver modes of operation in terms of display buffers used 31 * host and guest environments, display buffers can be allocated by either 36 * DOC: Buffers allocated by the frontend driver 38 * In this mode of operation driver allocates buffers from system memory. 43 * buffers from the frontend driver. 47 * DOC: Buffers allocated by the backend 53 * requirements for display buffers it is possible to allocate such buffers 94 /* display buffers */
|
| /linux/Documentation/arch/x86/ |
| H A D | mds.rst | 10 on internal buffers in Intel CPUs. The variants are: 21 buffers are partitioned between Hyper-Threads so cross thread forwarding is 25 MFBDS leaks Fill Buffer Entries. Fill buffers are used internally to manage 27 to a memory or I/O operation. Fill buffers can forward data to a load 31 be exploited under certain conditions. Fill buffers are shared between 74 thread case (SMT off): Force the CPU to clear the affected buffers. 78 the affected CPU buffers when the VERW instruction is executed. 107 hope that it might actually clear the buffers. The state is reflected 142 When transitioning from kernel to user space the CPU buffers are flushed 153 Interrupts returning to kernel don't clear CPUs buffers since the [all …]
|
| /linux/drivers/media/common/videobuf2/ |
| H A D | videobuf2-core.c | 389 * CAPTURE (aka "destination", bit 30 is 1) buffers. in __setup_offsets() 458 * video buffer memory for all buffers/planes on the queue and initializes the 460 * @first_index: index of the first created buffer, all newly allocated buffers 463 * Returns the number of buffers successfully allocated. 476 * Ensure that the number of already queue + the number of buffers already in __vb2_queue_alloc() 488 /* Try to find free space for less buffers */ in __vb2_queue_alloc() 492 /* If there is no space left to allocate buffers return 0 to indicate the error */ in __vb2_queue_alloc() 549 dprintk(q, 3, "allocated %d buffers, %d plane(s) each\n", in __vb2_queue_alloc() 557 * buffers in a given queue 569 /* Free MMAP buffers or release USERPTR buffers */ in __vb2_free_mem() [all …]
|