| /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/drivers/misc/eeprom/ |
| H A D | at25.c | 93 u8 *bounce __free(kfree) = kmalloc(min(count, io_limit), GFP_KERNEL); in at25_ee_read() 101 if (!bounce) in at25_ee_read() 120 SPI_MEM_OP_DATA_IN(segment, bounce, 1)); in at25_ee_read() 132 memcpy(buf, bounce, segment); in at25_ee_read() 153 u8 *bounce __free(kfree) = kmalloc(len, GFP_KERNEL); in fm25_aux_read() 157 if (!bounce) in fm25_aux_read() 163 SPI_MEM_OP_DATA_IN(len, bounce, 1)); in fm25_aux_read() 170 memcpy(buf, bounce, len); in fm25_aux_read() 214 u8 *bounce __free(kfree) = kmalloc(1, GFP_KERNEL); in at25_wait_ready() 218 if (!bounce) in at25_wait_ready() [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() 364 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_read() argument 369 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_read() [all …]
|
| /linux/arch/s390/mm/ |
| H A D | maccess.c | 154 void *bounce = ptr; in xlate_dev_mem_ptr() local 166 bounce = (void *)__get_free_page(GFP_ATOMIC); in xlate_dev_mem_ptr() 167 if (!bounce) in xlate_dev_mem_ptr() 173 memcpy(bounce, ptr, size); in xlate_dev_mem_ptr() 177 memcpy(bounce, ptr, size); in xlate_dev_mem_ptr() 179 memcpy(bounce, ptr, size); in xlate_dev_mem_ptr() 184 return bounce; in xlate_dev_mem_ptr()
|
| /linux/drivers/gpu/drm/ |
| H A D | drm_cache.c | 227 char bounce[MEMCPY_BOUNCE_SIZE]; in memcpy_fallback() local 232 memcpy_fromio(bounce, _src, MEMCPY_BOUNCE_SIZE); in memcpy_fallback() 233 memcpy_toio(_dst, bounce, MEMCPY_BOUNCE_SIZE); in memcpy_fallback() 239 memcpy_fromio(bounce, _src, MEMCPY_BOUNCE_SIZE); in memcpy_fallback() 240 memcpy_toio(_dst, bounce, MEMCPY_BOUNCE_SIZE); in memcpy_fallback()
|
| /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()
|
| H A D | vmwgfx_devcaps.c | 56 static int vmw_fill_compat_cap(struct vmw_private *dev_priv, void *bounce, in vmw_fill_compat_cap() argument 60 (struct svga_3d_compat_cap *) bounce; in vmw_fill_compat_cap()
|
| /linux/drivers/char/ |
| H A D | mem.c | 88 char *bounce; in read_mem() local 112 bounce = kmalloc(PAGE_SIZE, GFP_KERNEL); in read_mem() 113 if (!bounce) in read_mem() 141 probe = copy_from_kernel_nofault(bounce, ptr, sz); in read_mem() 146 remaining = copy_to_user(buf, bounce, sz); in read_mem() 159 kfree(bounce); in read_mem() 165 kfree(bounce); in read_mem()
|
| /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_lzma.c | 8 u8 bounce[PAGE_SIZE]; member 186 dctx.bounce = strm->bounce; in z_erofs_lzma_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 | compress.h | 69 void *bounce; /* bounce buffer for inplace I/Os */ member
|
| H A D | decompressor.c | 402 memcpy(dctx->bounce, *src, dctx->inbuf_sz); in z_erofs_stream_switch_bufs() 403 *src = dctx->bounce; in z_erofs_stream_switch_bufs()
|
| /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/Documentation/devicetree/bindings/leds/ |
| H A D | leds-el15203000.txt | 20 - bounce pattern 21 - inversed bounce pattern
|
| /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/drivers/gpu/drm/sun4i/ |
| H A D | sun6i_mipi_dsi.c | 886 u8 *bounce; in sun6i_dsi_dcs_write_long() local 892 bounce = kzalloc(ALIGN(msg->tx_len + sizeof(crc), 4), GFP_KERNEL); in sun6i_dsi_dcs_write_long() 893 if (!bounce) in sun6i_dsi_dcs_write_long() 896 memcpy(bounce, msg->tx_buf, msg->tx_len); in sun6i_dsi_dcs_write_long() 899 crc = sun6i_dsi_crc_compute(bounce, msg->tx_len); in sun6i_dsi_dcs_write_long() 900 memcpy((u8 *)bounce + msg->tx_len, &crc, sizeof(crc)); in sun6i_dsi_dcs_write_long() 903 regmap_bulk_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(1), bounce, DIV_ROUND_UP(len, 4)); in sun6i_dsi_dcs_write_long() 905 kfree(bounce); in sun6i_dsi_dcs_write_long()
|
| /linux/drivers/mtd/nand/raw/ |
| H A D | r852.c | 174 int bounce = 0; in r852_do_dma() local 193 bounce = 1; in r852_do_dma() 195 if (!bounce) { in r852_do_dma() 200 bounce = 1; in r852_do_dma() 203 if (bounce) { in r852_do_dma() 223 if (do_read && bounce) in r852_do_dma()
|
| /linux/drivers/media/usb/go7007/ |
| H A D | go7007-driver.c | 82 void *bounce; in go7007_load_encoder() local 97 bounce = kmemdup(fw_entry->data + 16, fw_len, GFP_KERNEL); in go7007_load_encoder() 98 if (bounce == NULL) { in go7007_load_encoder() 105 go->boot_fw = bounce; in go7007_load_encoder()
|
| /linux/arch/loongarch/kvm/intc/ |
| H A D | eiointc.c | 142 data = s->bounce[index]; in loongarch_eiointc_read() 261 old = s->bounce[index]; in loongarch_eiointc_write() 262 s->bounce[index] = (old & ~mask) | data; in loongarch_eiointc_write() 487 p = (void *)s->bounce + offset * 4; in kvm_eiointc_regs_access()
|
| /linux/arch/loongarch/include/asm/ |
| H A D | kvm_eiointc.h | 67 u64 bounce[EIOINTC_IRQS_U64_NUMS]; member
|
| /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_migrate.c | 2377 void *bounce; in xe_migrate_access_memory() local 2381 bounce = kmalloc(XE_CACHELINE_BYTES, GFP_KERNEL); in xe_migrate_access_memory() 2382 if (!bounce) in xe_migrate_access_memory() 2398 bounce, in xe_migrate_access_memory() 2404 memcpy(bounce + ptr_offset, buf + buf_offset, copy_bytes); in xe_migrate_access_memory() 2408 bounce, in xe_migrate_access_memory() 2413 memcpy(buf + buf_offset, bounce + ptr_offset, in xe_migrate_access_memory() 2422 kfree(bounce); in xe_migrate_access_memory()
|
| /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()
|