Home
last modified time | relevance | path

Searched refs:bounce (Results 1 – 25 of 53) sorted by relevance

123

/linux/Documentation/core-api/
H A Dswiotlb.rst13 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 Dat25.c93 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 Dtest_hmm.c129 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 Dmaccess.c154 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 Ddrm_cache.c227 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 Dvmwgfx_ioctl.c131 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 Dvmwgfx_devcaps.c56 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 Dmem.c88 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 Ddma-considerations.rst49 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 Ddecompressor_deflate.c8 u8 bounce[PAGE_SIZE]; member
141 dctx.bounce = strm->bounce; in __z_erofs_deflate_decompress()
H A Ddecompressor_lzma.c8 u8 bounce[PAGE_SIZE]; member
186 dctx.bounce = strm->bounce; in z_erofs_lzma_decompress()
H A Ddecompressor_zstd.c7 u8 bounce[PAGE_SIZE]; member
173 dctx.bounce = strm->bounce; in z_erofs_zstd_decompress()
H A Dcompress.h69 void *bounce; /* bounce buffer for inplace I/Os */ member
H A Ddecompressor.c402 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 Dsysfs.c32 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 Dleds-el15203000.txt20 - bounce pattern
21 - inversed bounce pattern
/linux/drivers/block/
H A Dxen-blkfront.c220 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 Dsun6i_mipi_dsi.c886 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 Dr852.c174 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 Dgo7007-driver.c82 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 Deiointc.c142 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 Dkvm_eiointc.h67 u64 bounce[EIOINTC_IRQS_U64_NUMS]; member
/linux/Documentation/leds/
H A Dleds-el15203000.rst114 Inverted bounce mode for Pipe LED::
/linux/drivers/gpu/drm/xe/
H A Dxe_migrate.c2377 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 Dvfpmodule.c775 goto bounce; in vfp_support_entry()
803 bounce: regs->ARM_pc += 4; in vfp_support_entry()

123