Home
last modified time | relevance | path

Searched full:sg (Results 1 – 25 of 1228) sorted by relevance

12345678910>>...50

/Linux-v6.1/tools/virtio/linux/
Dscatterlist.h14 #define sg_is_chain(sg) ((sg)->page_link & 0x01) argument
15 #define sg_is_last(sg) ((sg)->page_link & 0x02) argument
16 #define sg_chain_ptr(sg) \ argument
17 ((struct scatterlist *) ((sg)->page_link & ~0x03))
20 * sg_assign_page - Assign a given page to an SG entry
21 * @sg: SG entry
25 * Assign page to sg entry. Also see sg_set_page(), the most commonly used
29 static inline void sg_assign_page(struct scatterlist *sg, struct page *page) in sg_assign_page() argument
31 unsigned long page_link = sg->page_link & 0x3; in sg_assign_page()
39 BUG_ON(sg_is_chain(sg)); in sg_assign_page()
[all …]
/Linux-v6.1/include/linux/
Dscatterlist.h26 * to get bus addresses of each of the SG entries and their lengths.
27 * You should only work with the number of sg entries dma_map_sg
28 * returns, or alternatively stop on the first sg_dma_len(sg) which
31 #define sg_dma_address(sg) ((sg)->dma_address) argument
34 #define sg_dma_len(sg) ((sg)->dma_length) argument
36 #define sg_dma_len(sg) ((sg)->length) argument
52 * Notes on SG table design.
55 * the page pointer AND encode information about the sg table as well. The two
58 * If bit 0 is set, then the page_link contains a pointer to the next sg
59 * table list. Otherwise the next entry is at sg + 1.
[all …]
/Linux-v6.1/Documentation/scsi/
Dscsi-generic.rst4 Notes on Linux SCSI Generic (sg) driver
11 The SCSI Generic driver (sg) is one of the four "high level" SCSI device
12 drivers along with sd, st and sr (disk, tape and CDROM respectively). Sg
15 Thus sg is used for scanners, CD writers and reading audio CDs digitally
23 Major versions of the sg driver
25 There are three major versions of sg found in the linux kernel (lk):
26 - sg version 1 (original) from 1992 to early 1999 (lk 2.2.5) .
28 - sg version 2 from lk 2.2.6 in the 2.2 series. It is based on
30 - sg version 3 found in the lk 2.4 series (and the lk 2.5 series).
34 Sg driver documentation
[all …]
/Linux-v6.1/drivers/ata/
Dsata_gemini.c126 bool gemini_sata_bridge_enabled(struct sata_gemini *sg, bool is_ata1) in gemini_sata_bridge_enabled() argument
128 if (!sg->sata_bridge) in gemini_sata_bridge_enabled()
134 if ((sg->muxmode == GEMINI_MUXMODE_2) && in gemini_sata_bridge_enabled()
137 if ((sg->muxmode == GEMINI_MUXMODE_3) && in gemini_sata_bridge_enabled()
145 enum gemini_muxmode gemini_sata_get_muxmode(struct sata_gemini *sg) in gemini_sata_get_muxmode() argument
147 return sg->muxmode; in gemini_sata_get_muxmode()
151 static int gemini_sata_setup_bridge(struct sata_gemini *sg, in gemini_sata_setup_bridge() argument
161 if (sg->muxmode == GEMINI_MUXMODE_2) in gemini_sata_setup_bridge()
163 writel(val, sg->base + GEMINI_SATA0_CTRL); in gemini_sata_setup_bridge()
167 if (sg->muxmode == GEMINI_MUXMODE_3) in gemini_sata_setup_bridge()
[all …]
/Linux-v6.1/lib/
Dscatterlist.c15 * @sg: The current sg entry
18 * Usually the next entry will be @sg@ + 1, but if this sg element is part
23 struct scatterlist *sg_next(struct scatterlist *sg) in sg_next() argument
25 if (sg_is_last(sg)) in sg_next()
28 sg++; in sg_next()
29 if (unlikely(sg_is_chain(sg))) in sg_next()
30 sg = sg_chain_ptr(sg); in sg_next()
32 return sg; in sg_next()
38 * @sg: The scatterlist
41 * Allows to know how many entries are in sg, taking into account
[all …]
/Linux-v6.1/drivers/clk/sprd/
Dgate.c13 static void clk_gate_toggle(const struct sprd_gate *sg, bool en) in clk_gate_toggle() argument
15 const struct sprd_clk_common *common = &sg->common; in clk_gate_toggle()
17 bool set = sg->flags & CLK_GATE_SET_TO_DISABLE ? true : false; in clk_gate_toggle()
24 reg |= sg->enable_mask; in clk_gate_toggle()
26 reg &= ~sg->enable_mask; in clk_gate_toggle()
31 static void clk_sc_gate_toggle(const struct sprd_gate *sg, bool en) in clk_sc_gate_toggle() argument
33 const struct sprd_clk_common *common = &sg->common; in clk_sc_gate_toggle()
34 bool set = sg->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0; in clk_sc_gate_toggle()
45 offset = set ? sg->sc_offset : sg->sc_offset * 2; in clk_sc_gate_toggle()
48 sg->enable_mask); in clk_sc_gate_toggle()
[all …]
/Linux-v6.1/drivers/gpu/drm/i915/
Di915_scatterlist.c18 struct scatterlist *sg, *new_sg; in i915_sg_trim() local
28 for_each_sg(orig_st->sgl, sg, orig_st->nents, i) { in i915_sg_trim()
29 sg_set_page(new_sg, sg_page(sg), sg->length, 0); in i915_sg_trim()
30 sg_dma_address(new_sg) = sg_dma_address(sg); in i915_sg_trim()
31 sg_dma_len(new_sg) = sg_dma_len(sg); in i915_sg_trim()
70 * @region_start: An offset to add to the dma addresses of the sg list.
71 * @page_alignment: Required page alignment for each sg entry. Power of two.
89 struct scatterlist *sg; in i915_rsgt_from_mm_node() local
105 sg = st->sgl; in i915_rsgt_from_mm_node()
114 if (offset != prev_end || sg->length >= max_segment) { in i915_rsgt_from_mm_node()
[all …]
Di915_scatterlist.h50 static inline int __sg_page_count(const struct scatterlist *sg) in __sg_page_count() argument
52 return sg->length >> PAGE_SHIFT; in __sg_page_count()
55 static inline int __sg_dma_page_count(const struct scatterlist *sg) in __sg_dma_page_count() argument
57 return sg_dma_len(sg) >> PAGE_SHIFT; in __sg_dma_page_count()
60 static inline struct scatterlist *____sg_next(struct scatterlist *sg) in ____sg_next() argument
62 ++sg; in ____sg_next()
63 if (unlikely(sg_is_chain(sg))) in ____sg_next()
64 sg = sg_chain_ptr(sg); in ____sg_next()
65 return sg; in ____sg_next()
70 * @sg: The current sg entry
[all …]
/Linux-v6.1/drivers/crypto/
Domap-crypto.c17 struct scatterlist **sg, in omap_crypto_copy_sg_lists() argument
20 int n = sg_nents(*sg); in omap_crypto_copy_sg_lists()
24 new_sg = kmalloc_array(n, sizeof(*sg), GFP_KERNEL); in omap_crypto_copy_sg_lists()
33 while (*sg && total) { in omap_crypto_copy_sg_lists()
34 int len = (*sg)->length; in omap_crypto_copy_sg_lists()
41 sg_set_page(tmp, sg_page(*sg), len, (*sg)->offset); in omap_crypto_copy_sg_lists()
47 *sg = sg_next(*sg); in omap_crypto_copy_sg_lists()
50 *sg = new_sg; in omap_crypto_copy_sg_lists()
55 static int omap_crypto_copy_sgs(int total, int bs, struct scatterlist **sg, in omap_crypto_copy_sgs() argument
73 scatterwalk_map_and_copy(buf, *sg, 0, total, 0); in omap_crypto_copy_sgs()
[all …]
/Linux-v6.1/include/soc/fsl/
Ddpaa2-fd.h284 * @addr: address of the sg entry
285 * @len: length in this sg entry
302 /* Accessors for SG entry fields */
305 * dpaa2_sg_get_addr() - Get the address from SG entry
306 * @sg: the given scatter-gathering object
310 static inline dma_addr_t dpaa2_sg_get_addr(const struct dpaa2_sg_entry *sg) in dpaa2_sg_get_addr() argument
312 return (dma_addr_t)le64_to_cpu(sg->addr); in dpaa2_sg_get_addr()
316 * dpaa2_sg_set_addr() - Set the address in SG entry
317 * @sg: the given scatter-gathering object
320 static inline void dpaa2_sg_set_addr(struct dpaa2_sg_entry *sg, dma_addr_t addr) in dpaa2_sg_set_addr() argument
[all …]
/Linux-v6.1/arch/s390/mm/
Dgmap.c240 struct gmap *sg, *next; in gmap_remove() local
246 list_for_each_entry_safe(sg, next, &gmap->children, list) { in gmap_remove()
247 list_del(&sg->list); in gmap_remove()
248 gmap_put(sg); in gmap_remove()
962 * Expected to be called with sg->mm->mmap_lock in read and
1008 * Expected to be called with sg->mm->mmap_lock in read
1044 * Called with sg->mm->mmap_lock in read.
1177 * @sg: pointer to the shadow guest address space structure
1181 * Called with the sg->guest_table_lock
1183 static inline void gmap_insert_rmap(struct gmap *sg, unsigned long vmaddr, in gmap_insert_rmap() argument
[all …]
/Linux-v6.1/drivers/net/ethernet/marvell/octeontx2/nic/
Dotx2_txrx.c102 static void otx2_dma_unmap_skb_frags(struct otx2_nic *pfvf, struct sg_list *sg) in otx2_dma_unmap_skb_frags() argument
106 for (seg = 0; seg < sg->num_segs; seg++) { in otx2_dma_unmap_skb_frags()
107 otx2_dma_unmap_page(pfvf, sg->dma_addr[seg], in otx2_dma_unmap_skb_frags()
108 sg->size[seg], DMA_TO_DEVICE); in otx2_dma_unmap_skb_frags()
110 sg->num_segs = 0; in otx2_dma_unmap_skb_frags()
118 struct sg_list *sg; in otx2_xdp_snd_pkt_handler() local
122 sg = &sq->sg[snd_comp->sqe_id]; in otx2_xdp_snd_pkt_handler()
124 pa = otx2_iova_to_phys(pfvf->iommu_domain, sg->dma_addr[0]); in otx2_xdp_snd_pkt_handler()
125 otx2_dma_unmap_page(pfvf, sg->dma_addr[0], in otx2_xdp_snd_pkt_handler()
126 sg->size[0], DMA_TO_DEVICE); in otx2_xdp_snd_pkt_handler()
[all …]
/Linux-v6.1/net/core/
Dskmsg.c14 if (msg->sg.end > msg->sg.start && in sk_msg_try_coalesce_ok()
15 elem_first_coalesce < msg->sg.end) in sk_msg_try_coalesce_ok()
18 if (msg->sg.end < msg->sg.start && in sk_msg_try_coalesce_ok()
19 (elem_first_coalesce > msg->sg.start || in sk_msg_try_coalesce_ok()
20 elem_first_coalesce < msg->sg.end)) in sk_msg_try_coalesce_ok()
30 u32 osize = msg->sg.size; in sk_msg_alloc()
33 len -= msg->sg.size; in sk_msg_alloc()
51 i = msg->sg.end; in sk_msg_alloc()
53 sge = &msg->sg.data[i]; in sk_msg_alloc()
65 sge = &msg->sg.data[msg->sg.end]; in sk_msg_alloc()
[all …]
/Linux-v6.1/include/crypto/
Dscatterwalk.h21 struct scatterlist *sg, int num) in scatterwalk_crypto_chain() argument
23 if (sg) in scatterwalk_crypto_chain()
24 sg_chain(head, num, sg); in scatterwalk_crypto_chain()
31 unsigned int len = walk->sg->offset + walk->sg->length - walk->offset; in scatterwalk_pagelen()
51 return sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT); in scatterwalk_page()
60 struct scatterlist *sg) in scatterwalk_start() argument
62 walk->sg = sg; in scatterwalk_start()
63 walk->offset = sg->offset; in scatterwalk_start()
78 page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT); in scatterwalk_pagedone()
82 if (more && walk->offset >= walk->sg->offset + walk->sg->length) in scatterwalk_pagedone()
[all …]
/Linux-v6.1/drivers/crypto/gemini/
Dsl3516-ce-cipher.c28 struct scatterlist *sg; in sl3516_ce_need_fallback() local
37 * Note: TX need one control desc for each SG in sl3516_ce_need_fallback()
49 sg = areq->src; in sl3516_ce_need_fallback()
50 while (sg) { in sl3516_ce_need_fallback()
51 if ((sg->length % 16) != 0) { in sl3516_ce_need_fallback()
55 if ((sg_dma_len(sg) % 16) != 0) { in sl3516_ce_need_fallback()
59 if (!IS_ALIGNED(sg->offset, 16)) { in sl3516_ce_need_fallback()
63 sg = sg_next(sg); in sl3516_ce_need_fallback()
65 sg = areq->dst; in sl3516_ce_need_fallback()
66 while (sg) { in sl3516_ce_need_fallback()
[all …]
/Linux-v6.1/net/mac80211/
Daead_api.c22 struct scatterlist sg[3]; in aead_encrypt() local
35 sg_init_table(sg, 3); in aead_encrypt()
36 sg_set_buf(&sg[0], __aad, aad_len); in aead_encrypt()
37 sg_set_buf(&sg[1], data, data_len); in aead_encrypt()
38 sg_set_buf(&sg[2], mic, mic_len); in aead_encrypt()
41 aead_request_set_crypt(aead_req, sg, sg, data_len, b_0); in aead_encrypt()
42 aead_request_set_ad(aead_req, sg[0].length); in aead_encrypt()
54 struct scatterlist sg[3]; in aead_decrypt() local
70 sg_init_table(sg, 3); in aead_decrypt()
71 sg_set_buf(&sg[0], __aad, aad_len); in aead_decrypt()
[all …]
Daes_gmac.c20 struct scatterlist sg[5]; in ieee80211_aes_gmac() local
41 sg_init_table(sg, 5); in ieee80211_aes_gmac()
42 sg_set_buf(&sg[0], __aad, GMAC_AAD_LEN); in ieee80211_aes_gmac()
43 sg_set_buf(&sg[1], zero, 8); in ieee80211_aes_gmac()
44 sg_set_buf(&sg[2], data + 8, data_len - 8 - GMAC_MIC_LEN); in ieee80211_aes_gmac()
45 sg_set_buf(&sg[3], zero, GMAC_MIC_LEN); in ieee80211_aes_gmac()
46 sg_set_buf(&sg[4], mic, GMAC_MIC_LEN); in ieee80211_aes_gmac()
48 sg_init_table(sg, 4); in ieee80211_aes_gmac()
49 sg_set_buf(&sg[0], __aad, GMAC_AAD_LEN); in ieee80211_aes_gmac()
50 sg_set_buf(&sg[1], data, data_len - GMAC_MIC_LEN); in ieee80211_aes_gmac()
[all …]
/Linux-v6.1/drivers/crypto/allwinner/sun8i-ss/
Dsun8i-ss-cipher.c30 struct scatterlist *sg; in sun8i_ss_need_fallback() local
45 sg = areq->src; in sun8i_ss_need_fallback()
46 while (sg) { in sun8i_ss_need_fallback()
47 todo = min(len, sg->length); in sun8i_ss_need_fallback()
52 if (!IS_ALIGNED(sg->offset, 16)) { in sun8i_ss_need_fallback()
57 sg = sg_next(sg); in sun8i_ss_need_fallback()
60 sg = areq->dst; in sun8i_ss_need_fallback()
61 while (sg) { in sun8i_ss_need_fallback()
62 todo = min(len, sg->length); in sun8i_ss_need_fallback()
67 if (!IS_ALIGNED(sg->offset, 16)) { in sun8i_ss_need_fallback()
[all …]
/Linux-v6.1/drivers/infiniband/hw/mlx5/
Dumr.c488 struct ib_sge *sg) in mlx5r_umr_unmap_free_xlt() argument
492 dma_unmap_single(ddev, sg->addr, sg->length, DMA_TO_DEVICE); in mlx5r_umr_unmap_free_xlt()
493 mlx5r_umr_free_xlt(xlt, sg->length); in mlx5r_umr_unmap_free_xlt()
499 static void *mlx5r_umr_create_xlt(struct mlx5_ib_dev *dev, struct ib_sge *sg, in mlx5r_umr_create_xlt() argument
510 sg->length = nents * ent_size; in mlx5r_umr_create_xlt()
511 dma = dma_map_single(ddev, xlt, sg->length, DMA_TO_DEVICE); in mlx5r_umr_create_xlt()
514 mlx5r_umr_free_xlt(xlt, sg->length); in mlx5r_umr_create_xlt()
517 sg->addr = dma; in mlx5r_umr_create_xlt()
518 sg->lkey = dev->umrc.pd->local_dma_lkey; in mlx5r_umr_create_xlt()
525 unsigned int flags, struct ib_sge *sg) in mlx5r_umr_set_update_xlt_ctrl_seg() argument
[all …]
/Linux-v6.1/drivers/dma/
Ddma-axi-dmac.c120 struct axi_dmac_sg sg[]; member
212 struct axi_dmac_sg *sg; in axi_dmac_start_transfer() local
229 sg = &desc->sg[desc->num_submitted]; in axi_dmac_start_transfer()
232 if (sg->id != AXI_DMAC_SG_UNUSED) { in axi_dmac_start_transfer()
233 sg->schedule_when_free = true; in axi_dmac_start_transfer()
249 sg->id = axi_dmac_read(dmac, AXI_DMAC_REG_TRANSFER_ID); in axi_dmac_start_transfer()
252 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_ADDRESS, sg->dest_addr); in axi_dmac_start_transfer()
253 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_STRIDE, sg->dest_stride); in axi_dmac_start_transfer()
257 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_ADDRESS, sg->src_addr); in axi_dmac_start_transfer()
258 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_STRIDE, sg->src_stride); in axi_dmac_start_transfer()
[all …]
/Linux-v6.1/drivers/target/iscsi/cxgbit/
Dcxgbit_ddp.c13 struct scatterlist *sg = sg_pp ? *sg_pp : NULL; in cxgbit_set_one_ppod() local
21 if (sg) { in cxgbit_set_one_ppod()
22 addr = sg_dma_address(sg); in cxgbit_set_one_ppod()
23 len = sg_dma_len(sg); in cxgbit_set_one_ppod()
27 if (sg) { in cxgbit_set_one_ppod()
30 if (offset == (len + sg->offset)) { in cxgbit_set_one_ppod()
32 sg = sg_next(sg); in cxgbit_set_one_ppod()
33 if (sg) { in cxgbit_set_one_ppod()
34 addr = sg_dma_address(sg); in cxgbit_set_one_ppod()
35 len = sg_dma_len(sg); in cxgbit_set_one_ppod()
[all …]
/Linux-v6.1/samples/kfifo/
Ddma-example.c26 struct scatterlist sg[10]; in example_init() local
58 * We need two different SG entries: one for the free space area at the in example_init()
62 sg_init_table(sg, ARRAY_SIZE(sg)); in example_init()
63 nents = kfifo_dma_in_prepare(&fifo, sg, ARRAY_SIZE(sg), FIFO_SIZE); in example_init()
75 "sg[%d] -> " in example_init()
77 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init()
79 if (sg_is_last(&sg[i])) in example_init()
93 nents = kfifo_dma_out_prepare(&fifo, sg, ARRAY_SIZE(sg), 8); in example_init()
104 "sg[%d] -> " in example_init()
106 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init()
[all …]
/Linux-v6.1/arch/powerpc/platforms/powernv/
Dopal-sensor-groups.c27 struct attribute_group sg; member
129 static int __init add_attr_group(const __be32 *ops, int len, struct sensor_group *sg, in add_attr_group() argument
138 add_attr(handle, &sg->sgattrs[count], j); in add_attr_group()
139 sg->sg.attrs[count] = in add_attr_group()
140 &sg->sgattrs[count].attr.attr; in add_attr_group()
144 return sysfs_create_group(sg_kobj, &sg->sg); in add_attr_group()
162 struct device_node *sg, *node; in opal_sensor_groups_init() local
165 sg = of_find_compatible_node(NULL, NULL, "ibm,opal-sensor-group"); in opal_sensor_groups_init()
166 if (!sg) { in opal_sensor_groups_init()
171 sgs = kcalloc(of_get_child_count(sg), sizeof(*sgs), GFP_KERNEL); in opal_sensor_groups_init()
[all …]
/Linux-v6.1/drivers/dma-buf/
Dudmabuf.c27 struct sg_table *sg; member
64 struct sg_table *sg; in get_sg_table() local
67 sg = kzalloc(sizeof(*sg), GFP_KERNEL); in get_sg_table()
68 if (!sg) in get_sg_table()
70 ret = sg_alloc_table_from_pages(sg, ubuf->pages, ubuf->pagecount, in get_sg_table()
75 ret = dma_map_sgtable(dev, sg, direction, 0); in get_sg_table()
78 return sg; in get_sg_table()
81 sg_free_table(sg); in get_sg_table()
82 kfree(sg); in get_sg_table()
86 static void put_sg_table(struct device *dev, struct sg_table *sg, in put_sg_table() argument
[all …]
/Linux-v6.1/tools/testing/selftests/bpf/progs/
Dloop6.c34 #define sg_is_chain(sg) ((sg)->page_link & SG_CHAIN) argument
35 #define sg_is_last(sg) ((sg)->page_link & SG_END) argument
36 #define sg_chain_ptr(sg) \ argument
37 ((struct scatterlist *) ((sg)->page_link & ~(SG_CHAIN | SG_END)))
41 struct scatterlist sg; in __sg_next() local
43 bpf_probe_read_kernel(&sg, sizeof(sg), sgp); in __sg_next()
44 if (sg_is_last(&sg)) in __sg_next()
49 bpf_probe_read_kernel(&sg, sizeof(sg), sgp); in __sg_next()
50 if (sg_is_chain(&sg)) in __sg_next()
51 sgp = sg_chain_ptr(&sg); in __sg_next()

12345678910>>...50