Home
last modified time | relevance | path

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

123

/linux-6.12.1/Documentation/core-api/
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-6.12.1/lib/
Dtest_hmm.c127 static int dmirror_bounce_init(struct dmirror_bounce *bounce, in dmirror_bounce_init() argument
131 bounce->addr = addr; in dmirror_bounce_init()
132 bounce->size = size; in dmirror_bounce_init()
133 bounce->cpages = 0; in dmirror_bounce_init()
134 bounce->ptr = vmalloc(size); in dmirror_bounce_init()
135 if (!bounce->ptr) in dmirror_bounce_init()
155 static void dmirror_bounce_fini(struct dmirror_bounce *bounce) in dmirror_bounce_fini() argument
157 vfree(bounce->ptr); in dmirror_bounce_fini()
361 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_read() argument
366 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_read()
[all …]
/linux-6.12.1/arch/s390/mm/
Dmaccess.c153 void *bounce = ptr; in xlate_dev_mem_ptr() local
165 bounce = (void *)__get_free_page(GFP_ATOMIC); in xlate_dev_mem_ptr()
166 if (!bounce) in xlate_dev_mem_ptr()
172 memcpy(bounce, ptr, size); in xlate_dev_mem_ptr()
176 memcpy(bounce, ptr, size); in xlate_dev_mem_ptr()
178 memcpy(bounce, ptr, size); in xlate_dev_mem_ptr()
183 return bounce; in xlate_dev_mem_ptr()
/linux-6.12.1/drivers/gpu/drm/
Ddrm_cache.c230 char bounce[MEMCPY_BOUNCE_SIZE]; in memcpy_fallback() local
235 memcpy_fromio(bounce, _src, MEMCPY_BOUNCE_SIZE); in memcpy_fallback()
236 memcpy_toio(_dst, bounce, MEMCPY_BOUNCE_SIZE); in memcpy_fallback()
242 memcpy_fromio(bounce, _src, MEMCPY_BOUNCE_SIZE); in memcpy_fallback()
243 memcpy_toio(_dst, bounce, MEMCPY_BOUNCE_SIZE); in memcpy_fallback()
/linux-6.12.1/drivers/gpu/drm/vmwgfx/
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()
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-6.12.1/drivers/char/
Dmem.c106 char *bounce; in read_mem() local
130 bounce = kmalloc(PAGE_SIZE, GFP_KERNEL); in read_mem()
131 if (!bounce) in read_mem()
159 probe = copy_from_kernel_nofault(bounce, ptr, sz); in read_mem()
164 remaining = copy_to_user(buf, bounce, sz); in read_mem()
177 kfree(bounce); in read_mem()
183 kfree(bounce); in read_mem()
/linux-6.12.1/Documentation/i2c/
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-6.12.1/fs/bcachefs/
Dio_read.c153 BUG_ON(!rbio->bounce); in promote_start()
211 (*rbio)->bounce = true; in __promote_alloc()
279 bool *bounce, in promote_alloc() argument
314 *bounce = true; in promote_alloc()
356 BUG_ON(rbio->bounce && !rbio->split); in bch2_rbio_free()
362 if (rbio->bounce) in bch2_rbio_free()
583 if (rbio->bounce) { in __bch2_read_endio()
632 if (rbio->bounce) { in __bch2_read_endio()
665 if (!rbio->bounce && (rbio->flags & BCH_READ_USER_MAPPED)) { in __bch2_read_endio()
849 bool bounce = false, read_full = false, narrow_crcs = false; in __bch2_read_extent() local
[all …]
Dio_write_types.h29 bounce:1,
Dcompress.c84 goto bounce; in __bio_map_or_bounce()
88 goto bounce; in __bio_map_or_bounce()
99 goto bounce; in __bio_map_or_bounce()
114 bounce: in __bio_map_or_bounce()
Dio_write.c420 n->bounce = false; in bch2_submit_wbio_replicas()
676 if (wbio->bounce) in bch2_write_endio()
742 wbio->bounce = true; in bch2_write_bio_alloc()
901 bool bounce = false; in bch2_write_extent() local
924 bounce = true; in bch2_write_extent()
939 bounce = true; in bch2_write_extent()
957 BUG_ON(op->compression_opt && !bounce); in bch2_write_extent()
973 if (bounce) { in bch2_write_extent()
1090 if (to_wbio(dst)->bounce) in bch2_write_extent()
/linux-6.12.1/drivers/misc/eeprom/
Dat25.c205 u8 *bounce; in at25_ee_write() local
218 bounce = kmalloc(buf_size + at25->addrlen + 1, GFP_KERNEL); in at25_ee_write()
219 if (!bounce) in at25_ee_write()
231 u8 *cp = bounce; in at25_ee_write()
268 status = spi_write(at25->spi, bounce, in at25_ee_write()
315 kfree(bounce); in at25_ee_write()
/linux-6.12.1/fs/erofs/
Ddecompressor_deflate.c8 u8 bounce[PAGE_SIZE]; member
147 dctx.bounce = strm->bounce; in z_erofs_deflate_decompress()
Ddecompressor_zstd.c7 u8 bounce[PAGE_SIZE]; member
178 dctx.bounce = strm->bounce; in z_erofs_zstd_decompress()
Ddecompressor_lzma.c8 u8 bounce[PAGE_SIZE]; member
192 dctx.bounce = strm->bounce; in z_erofs_lzma_decompress()
Dcompress.h90 void *bounce; /* bounce buffer for inplace I/Os */ member
/linux-6.12.1/block/
Dbounce.c210 bool bounce = false; in __blk_queue_bounce() local
217 bounce = true; in __blk_queue_bounce()
219 if (!bounce) in __blk_queue_bounce()
/linux-6.12.1/Documentation/devicetree/bindings/leds/
Dleds-el15203000.txt20 - bounce pattern
21 - inversed bounce pattern
/linux-6.12.1/kernel/module/
Dsysfs.c40 char bounce[MODULE_SECT_READ_SIZE + 1]; in module_sect_read() local
54 wrote = scnprintf(bounce, sizeof(bounce), "0x%px\n", in module_sect_read()
58 memcpy(buf, bounce, count); in module_sect_read()
/linux-6.12.1/drivers/gpu/drm/sun4i/
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-6.12.1/drivers/block/
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()
1221 BUG_ON(info->bounce); in blkif_free_ring()
1238 if (info->bounce) in blkif_free_ring()
1259 if (info->bounce) in blkif_free_ring()
[all …]
/linux-6.12.1/drivers/mtd/nand/raw/
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-6.12.1/drivers/media/usb/go7007/
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-6.12.1/Documentation/leds/
Dleds-el15203000.rst114 Inverted bounce mode for Pipe LED::

123