| /linux/Documentation/core-api/ |
| H A D | swiotlb.rst | 13 memory buffer. This approach is generically called "bounce buffering", and the 14 temporary memory buffer is called a "bounce buffer". 20 if bounce buffering is necessary. If so, the DMA layer manages the allocation, 21 freeing, and sync'ing of bounce buffers. Since the DMA attributes are per 22 device, some devices in a system may use bounce buffering while others do not. 24 Because the CPU copies data between the bounce buffer and the original target 25 memory buffer, doing bounce buffering is slower than doing DMA directly to the 33 only provide 32-bit DMA addresses. By allocating bounce buffer memory below 41 to force all DMA I/O to use bounce buffers, and the bounce buffer memory is set 42 up as unencrypted. The host does DMA I/O to/from the bounce buffer memory, and [all …]
|
| /linux/lib/ |
| H A D | test_hmm.c | 129 static int dmirror_bounce_init(struct dmirror_bounce *bounce, in dmirror_bounce_init() argument 133 bounce->addr = addr; in dmirror_bounce_init() 134 bounce->size = size; in dmirror_bounce_init() 135 bounce->cpages = 0; in dmirror_bounce_init() 136 bounce->ptr = vmalloc(size); in dmirror_bounce_init() 137 if (!bounce->ptr) in dmirror_bounce_init() 157 static void dmirror_bounce_fini(struct dmirror_bounce *bounce) in dmirror_bounce_fini() argument 159 vfree(bounce->ptr); in dmirror_bounce_fini() 487 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_read() argument 492 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_read() [all …]
|
| /linux/drivers/gpu/drm/vmwgfx/ |
| H A D | vmwgfx_ioctl.c | 131 void *bounce = NULL; in vmw_get_cap_3d_ioctl() local 149 bounce = vzalloc(size); in vmw_get_cap_3d_ioctl() 150 if (unlikely(bounce == NULL)) { in vmw_get_cap_3d_ioctl() 155 ret = vmw_devcaps_copy(dev_priv, vmw_fp->gb_aware, bounce, size); in vmw_get_cap_3d_ioctl() 159 ret = copy_to_user(buffer, bounce, size); in vmw_get_cap_3d_ioctl() 163 vfree(bounce); in vmw_get_cap_3d_ioctl()
|
| /linux/Documentation/i2c/ |
| H A D | dma-considerations.rst | 49 bounce buffer. But you don't need to care about that detail, just use the 50 returned buffer. If NULL is returned, the threshold was not met or a bounce 54 function ensures a potentially used bounce buffer is freed:: 62 The bounce buffer handling from the core is generic and simple. It will always 63 allocate a new bounce buffer. If you want a more sophisticated handling (e.g.
|
| /linux/fs/erofs/ |
| H A D | decompressor_deflate.c | 8 u8 bounce[PAGE_SIZE]; member 141 dctx.bounce = strm->bounce; in __z_erofs_deflate_decompress()
|
| H A D | decompressor_zstd.c | 7 u8 bounce[PAGE_SIZE]; member 173 dctx.bounce = strm->bounce; in z_erofs_zstd_decompress()
|
| H A D | decompressor_lzma.c | 9 u8 bounce[PAGE_SIZE]; member 197 dctx.bounce = strm->bounce; in z_erofs_lzma_decompress()
|
| H A D | decompressor.c | 372 memcpy(dctx->bounce, *src, dctx->inbuf_sz); in z_erofs_stream_switch_bufs() 373 *src = dctx->bounce; in z_erofs_stream_switch_bufs()
|
| /linux/Documentation/devicetree/bindings/leds/ |
| H A D | leds-el15203000.txt | 20 - bounce pattern 21 - inversed bounce pattern
|
| /linux/kernel/module/ |
| H A D | sysfs.c | 32 char bounce[MODULE_SECT_READ_SIZE + 1]; in module_sect_read() local 46 wrote = scnprintf(bounce, sizeof(bounce), "0x%px\n", in module_sect_read() 50 memcpy(buf, bounce, count); in module_sect_read()
|
| /linux/drivers/block/ |
| H A D | xen-blkfront.c | 220 unsigned int bounce:1; member 321 if (info->bounce) { in fill_grant_buffer() 341 if (info->bounce) in fill_grant_buffer() 387 if (info->bounce) in get_grant() 411 if (!info->bounce) { in get_indirect_grant() 714 .need_copy = rq_data_dir(req) && info->bounce, in blkif_queue_rw_req() 1001 "bounce buffer:", info->bounce ? "enabled" : "disabled;"); in xlvbd_flush() 1220 BUG_ON(info->bounce); in blkif_free_ring() 1237 if (info->bounce) in blkif_free_ring() 1258 if (info->bounce) in blkif_free_ring() [all …]
|
| /linux/arch/loongarch/include/asm/ |
| H A D | kvm_eiointc.h | 67 u64 bounce[EIOINTC_IRQS_U64_NUMS]; member
|
| /linux/arch/loongarch/kvm/intc/ |
| H A D | eiointc.c | 146 data = s->bounce[index]; in loongarch_eiointc_read() 265 old = s->bounce[index]; in loongarch_eiointc_write() 266 s->bounce[index] = (old & ~mask) | data; in loongarch_eiointc_write() 491 p = (void *)s->bounce + offset * 4; in kvm_eiointc_regs_access()
|
| /linux/Documentation/leds/ |
| H A D | leds-el15203000.rst | 114 Inverted bounce mode for Pipe LED::
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_oa_types.h | 171 void *bounce; member
|
| H A D | xe_oa.c | 333 xe_map_memcpy_from(stream->oa->xe, stream->oa_buffer.bounce, in xe_oa_copy_to_user() 335 return copy_to_user(dst, stream->oa_buffer.bounce, len); in xe_oa_copy_to_user() 721 kfree(stream->oa_buffer.bounce); in xe_oa_free_oa_buffer() 919 stream->oa_buffer.bounce = kmalloc(stream->oa_buffer.format->size, GFP_KERNEL); in xe_oa_alloc_oa_buffer() 920 if (!stream->oa_buffer.bounce) { in xe_oa_alloc_oa_buffer()
|
| /linux/kernel/dma/ |
| H A D | Kconfig | 90 int "Default SWIOTLB bounce buffer size in MB" 95 Sets the default size of the software IO TLB (SWIOTLB) bounce buffer 112 bool "Dynamic allocation of DMA bounce buffers"
|
| /linux/arch/arm/vfp/ |
| H A D | vfpmodule.c | 775 goto bounce; in vfp_support_entry() 803 bounce: regs->ARM_pc += 4; in vfp_support_entry()
|
| /linux/Documentation/virt/hyperv/ |
| H A D | coco.rst | 214 Linux kernel DMA APIs, and so bounce buffering through decrypted swiotlb 220 equivalent of bounce buffering between encrypted and decrypted memory is 222 DMA APIs, and is bounce buffered through swiotlb memory implicitly like in 271 provides bounce-buffering, and although the data is not encrypted, the backing
|
| /linux/Documentation/driver-api/usb/ |
| H A D | dma.rst | 83 This may force your callers to do some bounce buffering, copying from
|
| /linux/fs/notify/fanotify/ |
| H A D | fanotify_user.c | 560 unsigned char bounce[FANOTIFY_INLINE_FH_LEN], *fh_buf; in copy_fid_info_to_user() local 623 memcpy(bounce, fh_buf, fh_len); in copy_fid_info_to_user() 624 fh_buf = bounce; in copy_fid_info_to_user()
|
| /linux/drivers/gpu/drm/ttm/ |
| H A D | ttm_bo.c | 1120 bounce: in ttm_bo_validate() 1126 goto bounce; in ttm_bo_validate()
|
| /linux/drivers/net/ |
| H A D | xen-netfront.c | 181 bool bounce; member 757 * If the backend is not trusted bounce all data to zeroed pages to in xennet_start_xmit() 761 if (np->bounce || unlikely(PAGE_SIZE - offset < ETH_HLEN)) { in xennet_start_xmit() 2282 info->bounce = !xennet_trusted || in talk_to_netback() 2452 if (np->bounce) in xennet_connect()
|
| /linux/drivers/usb/dwc3/ |
| H A D | gadget.c | 1276 * @use_bounce_buffer: set to use bounce buffer in dwc3_prepare_one_trb() 3588 * We use bounce buffer for requests that needs extra TRB or OUT ZLP. If in dwc3_gadget_ep_reclaim_completed_trb() 3589 * this TRB points to the bounce buffer address, it's a MPS alignment in dwc3_gadget_ep_reclaim_completed_trb() 4873 dwc->bounce = dma_alloc_coherent(dwc->sysdev, DWC3_BOUNCE_SIZE, in dwc3_gadget_exit() 4875 if (!dwc->bounce) { in dwc3_gadget_exit() 4957 dma_free_coherent(dwc->sysdev, DWC3_BOUNCE_SIZE, dwc->bounce, 4985 dma_free_coherent(dwc->sysdev, DWC3_BOUNCE_SIZE, dwc->bounce,
|
| /linux/Documentation/filesystems/ |
| H A D | fscrypt.rst | 1500 (which cannot be modified) into bounce buffers. Then, the 1501 ciphertext in the bounce buffers is written to the storage backend. 1506 the filesystem already uses bounce buffers for writes for other 1508 bounce buffers. UBIFS optimizes this case by encrypting the data 1509 in-place in its existing bounce buffers. 1514 scheduling of decryption work, and no bounce buffers are used.
|