/Linux-v4.19/tools/virtio/linux/ |
D | scatterlist.h | 14 #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)) 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() 41 sg->page_link = page_link | (unsigned long) page; in sg_assign_page() 58 static inline void sg_set_page(struct scatterlist *sg, struct page *page, in sg_set_page() argument 61 sg_assign_page(sg, page); in sg_set_page() [all …]
|
/Linux-v4.19/drivers/ata/ |
D | sata_gemini.c | 125 bool gemini_sata_bridge_enabled(struct sata_gemini *sg, bool is_ata1) in gemini_sata_bridge_enabled() argument 127 if (!sg->sata_bridge) in gemini_sata_bridge_enabled() 133 if ((sg->muxmode == GEMINI_MUXMODE_2) && in gemini_sata_bridge_enabled() 136 if ((sg->muxmode == GEMINI_MUXMODE_3) && in gemini_sata_bridge_enabled() 144 enum gemini_muxmode gemini_sata_get_muxmode(struct sata_gemini *sg) in gemini_sata_get_muxmode() argument 146 return sg->muxmode; in gemini_sata_get_muxmode() 150 static int gemini_sata_setup_bridge(struct sata_gemini *sg, in gemini_sata_setup_bridge() argument 160 if (sg->muxmode == GEMINI_MUXMODE_2) in gemini_sata_setup_bridge() 162 writel(val, sg->base + GEMINI_SATA0_CTRL); in gemini_sata_setup_bridge() 166 if (sg->muxmode == GEMINI_MUXMODE_3) in gemini_sata_setup_bridge() [all …]
|
/Linux-v4.19/include/linux/ |
D | scatterlist.h | 34 #define sg_dma_address(sg) ((sg)->dma_address) argument 37 #define sg_dma_len(sg) ((sg)->dma_length) argument 39 #define sg_dma_len(sg) ((sg)->length) argument 72 #define sg_is_chain(sg) ((sg)->page_link & SG_CHAIN) argument 73 #define sg_is_last(sg) ((sg)->page_link & SG_END) argument 74 #define sg_chain_ptr(sg) \ argument 75 ((struct scatterlist *) ((sg)->page_link & ~(SG_CHAIN | SG_END))) 87 static inline void sg_assign_page(struct scatterlist *sg, struct page *page) in sg_assign_page() argument 89 unsigned long page_link = sg->page_link & (SG_CHAIN | SG_END); in sg_assign_page() 97 BUG_ON(sg_is_chain(sg)); in sg_assign_page() [all …]
|
/Linux-v4.19/drivers/clk/sprd/ |
D | gate.c | 13 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-v4.19/drivers/crypto/ |
D | omap-crypto.c | 20 struct scatterlist **sg, in omap_crypto_copy_sg_lists() argument 23 int n = sg_nents(*sg); in omap_crypto_copy_sg_lists() 27 new_sg = kmalloc_array(n, sizeof(*sg), GFP_KERNEL); in omap_crypto_copy_sg_lists() 36 while (*sg && total) { in omap_crypto_copy_sg_lists() 37 int len = (*sg)->length; in omap_crypto_copy_sg_lists() 44 sg_set_page(tmp, sg_page(*sg), len, (*sg)->offset); in omap_crypto_copy_sg_lists() 50 *sg = sg_next(*sg); in omap_crypto_copy_sg_lists() 53 *sg = new_sg; in omap_crypto_copy_sg_lists() 58 static int omap_crypto_copy_sgs(int total, int bs, struct scatterlist **sg, in omap_crypto_copy_sgs() argument 76 scatterwalk_map_and_copy(buf, *sg, 0, total, 0); in omap_crypto_copy_sgs() [all …]
|
/Linux-v4.19/Documentation/scsi/ |
D | scsi-generic.txt | 1 Notes on Linux SCSI Generic (sg) driver 6 The SCSI Generic driver (sg) is one of the four "high level" SCSI device 10 Thus sg is used for scanners, CD writers and reading audio CDs digitally 18 Major versions of the sg driver 20 There are three major versions of sg found in the linux kernel (lk): 21 - sg version 1 (original) from 1992 to early 1999 (lk 2.2.5) . 23 - sg version 2 from lk 2.2.6 in the 2.2 series. It is based on 25 - sg version 3 found in the lk 2.4 series (and the lk 2.5 series). 31 The most recent documentation of the sg driver is kept at the Linux 34 This describes the sg version 3 driver found in the lk 2.4 series. [all …]
|
/Linux-v4.19/include/soc/fsl/ |
D | dpaa2-fd.h | 300 static inline dma_addr_t dpaa2_sg_get_addr(const struct dpaa2_sg_entry *sg) in dpaa2_sg_get_addr() argument 302 return (dma_addr_t)le64_to_cpu(sg->addr); in dpaa2_sg_get_addr() 310 static inline void dpaa2_sg_set_addr(struct dpaa2_sg_entry *sg, dma_addr_t addr) in dpaa2_sg_set_addr() argument 312 sg->addr = cpu_to_le64(addr); in dpaa2_sg_set_addr() 315 static inline bool dpaa2_sg_short_len(const struct dpaa2_sg_entry *sg) in dpaa2_sg_short_len() argument 317 return !!((le16_to_cpu(sg->format_offset) >> SG_SHORT_LEN_FLAG_SHIFT) in dpaa2_sg_short_len() 327 static inline u32 dpaa2_sg_get_len(const struct dpaa2_sg_entry *sg) in dpaa2_sg_get_len() argument 329 if (dpaa2_sg_short_len(sg)) in dpaa2_sg_get_len() 330 return le32_to_cpu(sg->len) & SG_SHORT_LEN_MASK; in dpaa2_sg_get_len() 332 return le32_to_cpu(sg->len); in dpaa2_sg_get_len() [all …]
|
/Linux-v4.19/lib/ |
D | scatterlist.c | 25 struct scatterlist *sg_next(struct scatterlist *sg) in sg_next() argument 27 if (sg_is_last(sg)) in sg_next() 30 sg++; in sg_next() 31 if (unlikely(sg_is_chain(sg))) in sg_next() 32 sg = sg_chain_ptr(sg); in sg_next() 34 return sg; in sg_next() 47 int sg_nents(struct scatterlist *sg) in sg_nents() argument 50 for (nents = 0; sg; sg = sg_next(sg)) in sg_nents() 70 int sg_nents_for_len(struct scatterlist *sg, u64 len) in sg_nents_for_len() argument 78 for (nents = 0, total = 0; sg; sg = sg_next(sg)) { in sg_nents_for_len() [all …]
|
/Linux-v4.19/arch/s390/mm/ |
D | gmap.c | 241 struct gmap *sg, *next; in gmap_remove() local 247 list_for_each_entry_safe(sg, next, &gmap->children, list) { in gmap_remove() 248 list_del(&sg->list); in gmap_remove() 249 gmap_put(sg); in gmap_remove() 1167 static inline void gmap_insert_rmap(struct gmap *sg, unsigned long vmaddr, in gmap_insert_rmap() argument 1172 BUG_ON(!gmap_is_shadow(sg)); in gmap_insert_rmap() 1173 slot = radix_tree_lookup_slot(&sg->host_to_rmap, vmaddr >> PAGE_SHIFT); in gmap_insert_rmap() 1176 &sg->guest_table_lock); in gmap_insert_rmap() 1177 radix_tree_replace_slot(&sg->host_to_rmap, slot, rmap); in gmap_insert_rmap() 1180 radix_tree_insert(&sg->host_to_rmap, vmaddr >> PAGE_SHIFT, in gmap_insert_rmap() [all …]
|
/Linux-v4.19/include/crypto/ |
D | scatterwalk.h | 25 struct scatterlist *sg, int num) in scatterwalk_crypto_chain() argument 27 if (sg) in scatterwalk_crypto_chain() 28 sg_chain(head, num, sg); in scatterwalk_crypto_chain() 35 unsigned int len = walk->sg->offset + walk->sg->length - walk->offset; in scatterwalk_pagelen() 61 return sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT); in scatterwalk_page() 70 struct scatterlist *sg) in scatterwalk_start() argument 72 walk->sg = sg; in scatterwalk_start() 73 walk->offset = sg->offset; in scatterwalk_start() 88 page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT); in scatterwalk_pagedone() 97 if (more && walk->offset >= walk->sg->offset + walk->sg->length) in scatterwalk_pagedone() [all …]
|
/Linux-v4.19/samples/kfifo/ |
D | dma-example.c | 28 struct scatterlist sg[10]; in example_init() local 64 sg_init_table(sg, ARRAY_SIZE(sg)); in example_init() 65 nents = kfifo_dma_in_prepare(&fifo, sg, ARRAY_SIZE(sg), FIFO_SIZE); in example_init() 79 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init() 81 if (sg_is_last(&sg[i])) in example_init() 95 nents = kfifo_dma_out_prepare(&fifo, sg, ARRAY_SIZE(sg), 8); in example_init() 108 i, sg_page(&sg[i]), sg[i].offset, sg[i].length); in example_init() 110 if (sg_is_last(&sg[i])) in example_init()
|
/Linux-v4.19/drivers/gpu/drm/i915/selftests/ |
D | huge_gem_object.c | 31 struct scatterlist *sg; in huge_free_pages() local 33 for (sg = pages->sgl; sg && nreal--; sg = __sg_next(sg)) in huge_free_pages() 34 __free_page(sg_page(sg)); in huge_free_pages() 45 struct scatterlist *sg, *src, *end; in huge_get_pages() local 58 sg = pages->sgl; in huge_get_pages() 64 sg_mark_end(sg); in huge_get_pages() 68 sg_set_page(sg, page, PAGE_SIZE, 0); in huge_get_pages() 69 sg = __sg_next(sg); in huge_get_pages() 72 for (end = sg, src = pages->sgl; sg; sg = __sg_next(sg)) { in huge_get_pages() 73 sg_set_page(sg, sg_page(src), PAGE_SIZE, 0); in huge_get_pages()
|
/Linux-v4.19/drivers/media/pci/tw68/ |
D | tw68-risc.c | 47 struct scatterlist *sg; in tw68_risc_field() local 63 sg = sglist; in tw68_risc_field() 66 while (offset && offset >= sg_dma_len(sg)) { in tw68_risc_field() 67 offset -= sg_dma_len(sg); in tw68_risc_field() 68 sg = sg_next(sg); in tw68_risc_field() 70 if (bpl <= sg_dma_len(sg) - offset) { in tw68_risc_field() 74 *(rp++) = cpu_to_le32(sg_dma_address(sg) + offset); in tw68_risc_field() 85 done = (sg_dma_len(sg) - offset); in tw68_risc_field() 89 *(rp++) = cpu_to_le32(sg_dma_address(sg) + offset); in tw68_risc_field() 91 sg = sg_next(sg); in tw68_risc_field() [all …]
|
/Linux-v4.19/net/mac80211/ |
D | aead_api.c | 25 struct scatterlist sg[3]; in aead_encrypt() local 37 sg_init_table(sg, 3); in aead_encrypt() 38 sg_set_buf(&sg[0], __aad, aad_len); in aead_encrypt() 39 sg_set_buf(&sg[1], data, data_len); in aead_encrypt() 40 sg_set_buf(&sg[2], mic, mic_len); in aead_encrypt() 43 aead_request_set_crypt(aead_req, sg, sg, data_len, b_0); in aead_encrypt() 44 aead_request_set_ad(aead_req, sg[0].length); in aead_encrypt() 56 struct scatterlist sg[3]; in aead_decrypt() local 72 sg_init_table(sg, 3); in aead_decrypt() 73 sg_set_buf(&sg[0], __aad, aad_len); in aead_decrypt() [all …]
|
/Linux-v4.19/arch/arm/mm/ |
D | dma-mapping-nommu.c | 142 struct scatterlist *sg; in arm_nommu_dma_map_sg() local 144 for_each_sg(sgl, sg, nents, i) { in arm_nommu_dma_map_sg() 145 sg_dma_address(sg) = sg_phys(sg); in arm_nommu_dma_map_sg() 146 sg_dma_len(sg) = sg->length; in arm_nommu_dma_map_sg() 147 __dma_page_cpu_to_dev(sg_dma_address(sg), sg_dma_len(sg), dir); in arm_nommu_dma_map_sg() 157 struct scatterlist *sg; in arm_nommu_dma_unmap_sg() local 160 for_each_sg(sgl, sg, nents, i) in arm_nommu_dma_unmap_sg() 161 __dma_page_dev_to_cpu(sg_dma_address(sg), sg_dma_len(sg), dir); in arm_nommu_dma_unmap_sg() 179 struct scatterlist *sg; in arm_nommu_dma_sync_sg_for_device() local 182 for_each_sg(sgl, sg, nents, i) in arm_nommu_dma_sync_sg_for_device() [all …]
|
/Linux-v4.19/drivers/gpu/drm/i915/ |
D | i915_gem_internal.c | 37 struct scatterlist *sg; in internal_free_pages() local 39 for (sg = st->sgl; sg; sg = __sg_next(sg)) { in internal_free_pages() 40 if (sg_page(sg)) in internal_free_pages() 41 __free_pages(sg_page(sg), get_order(sg->length)); in internal_free_pages() 52 struct scatterlist *sg; in i915_gem_object_get_pages_internal() local 90 sg = st->sgl; in i915_gem_object_get_pages_internal() 110 sg_set_page(sg, page, PAGE_SIZE << order, 0); in i915_gem_object_get_pages_internal() 116 sg_mark_end(sg); in i915_gem_object_get_pages_internal() 120 sg = __sg_next(sg); in i915_gem_object_get_pages_internal() 145 sg_set_page(sg, NULL, 0, 0); in i915_gem_object_get_pages_internal() [all …]
|
/Linux-v4.19/drivers/target/iscsi/cxgbit/ |
D | cxgbit_ddp.c | 16 struct scatterlist *sg = sg_pp ? *sg_pp : NULL; in cxgbit_set_one_ppod() local 24 if (sg) { in cxgbit_set_one_ppod() 25 addr = sg_dma_address(sg); in cxgbit_set_one_ppod() 26 len = sg_dma_len(sg); in cxgbit_set_one_ppod() 30 if (sg) { in cxgbit_set_one_ppod() 33 if (offset == (len + sg->offset)) { in cxgbit_set_one_ppod() 35 sg = sg_next(sg); in cxgbit_set_one_ppod() 36 if (sg) { in cxgbit_set_one_ppod() 37 addr = sg_dma_address(sg); in cxgbit_set_one_ppod() 38 len = sg_dma_len(sg); in cxgbit_set_one_ppod() [all …]
|
/Linux-v4.19/drivers/crypto/qce/ |
D | dma.c | 60 struct scatterlist *sg = sgt->sgl, *sg_last = NULL; in qce_sgtable_add() local 62 while (sg) { in qce_sgtable_add() 63 if (!sg_page(sg)) in qce_sgtable_add() 65 sg = sg_next(sg); in qce_sgtable_add() 68 if (!sg) in qce_sgtable_add() 71 while (new_sgl && sg) { in qce_sgtable_add() 72 sg_set_page(sg, sg_page(new_sgl), new_sgl->length, in qce_sgtable_add() 74 sg_last = sg; in qce_sgtable_add() 75 sg = sg_next(sg); in qce_sgtable_add() 82 static int qce_dma_prep_sg(struct dma_chan *chan, struct scatterlist *sg, in qce_dma_prep_sg() argument [all …]
|
/Linux-v4.19/kernel/sched/ |
D | topology.c | 335 static void free_sched_groups(struct sched_group *sg, int free_sgc) in free_sched_groups() argument 339 if (!sg) in free_sched_groups() 342 first = sg; in free_sched_groups() 344 tmp = sg->next; in free_sched_groups() 346 if (free_sgc && atomic_dec_and_test(&sg->sgc->ref)) in free_sched_groups() 347 kfree(sg->sgc); in free_sched_groups() 349 if (atomic_dec_and_test(&sg->ref)) in free_sched_groups() 350 kfree(sg); in free_sched_groups() 351 sg = tmp; in free_sched_groups() 352 } while (sg != first); in free_sched_groups() [all …]
|
/Linux-v4.19/drivers/dma/ |
D | dma-axi-dmac.c | 96 struct axi_dmac_sg sg[]; member 188 struct axi_dmac_sg *sg; in axi_dmac_start_transfer() local 205 sg = &desc->sg[desc->num_submitted]; in axi_dmac_start_transfer() 208 if (sg->id != AXI_DMAC_SG_UNUSED) { in axi_dmac_start_transfer() 209 sg->schedule_when_free = true; in axi_dmac_start_transfer() 223 sg->id = axi_dmac_read(dmac, AXI_DMAC_REG_TRANSFER_ID); in axi_dmac_start_transfer() 226 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_ADDRESS, sg->dest_addr); in axi_dmac_start_transfer() 227 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_STRIDE, sg->dest_stride); in axi_dmac_start_transfer() 231 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_ADDRESS, sg->src_addr); in axi_dmac_start_transfer() 232 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_STRIDE, sg->src_stride); in axi_dmac_start_transfer() [all …]
|
/Linux-v4.19/arch/powerpc/platforms/powernv/ |
D | opal-sensor-groups.c | 31 struct attribute_group sg; member 133 static int add_attr_group(const __be32 *ops, int len, struct sensor_group *sg, in add_attr_group() argument 142 add_attr(handle, &sg->sgattrs[count], j); in add_attr_group() 143 sg->sg.attrs[count] = in add_attr_group() 144 &sg->sgattrs[count].attr.attr; in add_attr_group() 148 return sysfs_create_group(sg_kobj, &sg->sg); in add_attr_group() 166 struct device_node *sg, *node; in opal_sensor_groups_init() local 169 sg = of_find_compatible_node(NULL, NULL, "ibm,opal-sensor-group"); in opal_sensor_groups_init() 170 if (!sg) { in opal_sensor_groups_init() 175 sgs = kcalloc(of_get_child_count(sg), sizeof(*sgs), GFP_KERNEL); in opal_sensor_groups_init() [all …]
|
/Linux-v4.19/arch/sparc/mm/ |
D | iommu.c | 239 static void iommu_get_scsi_sgl_gflush(struct device *dev, struct scatterlist *sg, int sz) in iommu_get_scsi_sgl_gflush() argument 246 n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; in iommu_get_scsi_sgl_gflush() 247 sg->dma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; in iommu_get_scsi_sgl_gflush() 248 sg->dma_length = sg->length; in iommu_get_scsi_sgl_gflush() 249 sg = sg_next(sg); in iommu_get_scsi_sgl_gflush() 253 static void iommu_get_scsi_sgl_pflush(struct device *dev, struct scatterlist *sg, int sz) in iommu_get_scsi_sgl_pflush() argument 261 n = (sg->length + sg->offset + PAGE_SIZE-1) >> PAGE_SHIFT; in iommu_get_scsi_sgl_pflush() 268 if ((page = (unsigned long) page_address(sg_page(sg))) != 0) { in iommu_get_scsi_sgl_pflush() 278 sg->dma_address = iommu_get_one(dev, sg_page(sg), n) + sg->offset; in iommu_get_scsi_sgl_pflush() 279 sg->dma_length = sg->length; in iommu_get_scsi_sgl_pflush() [all …]
|
/Linux-v4.19/arch/alpha/kernel/ |
D | pci_iommu.c | 505 sg_classify(struct device *dev, struct scatterlist *sg, struct scatterlist *end, in sg_classify() argument 513 leader = sg; in sg_classify() 520 for (++sg; sg < end; ++sg) { in sg_classify() 522 addr = SG_ENT_PHYS_ADDRESS(sg); in sg_classify() 523 len = sg->length; in sg_classify() 529 sg->dma_address = -1; in sg_classify() 532 sg->dma_address = -2; in sg_classify() 539 leader = sg; in sg_classify() 561 struct scatterlist *sg; in sg_fill() local 618 sg = leader; in sg_fill() [all …]
|
/Linux-v4.19/crypto/ |
D | af_alg.c | 411 sg_init_table(sgl->sg, npages + 1); in af_alg_make_sg() 416 sg_set_page(sgl->sg + i, sgl->pages[i], plen, off); in af_alg_make_sg() 421 sg_mark_end(sgl->sg + npages - 1); in af_alg_make_sg() 430 sg_unmark_end(sgl_prev->sg + sgl_prev->npages - 1); in af_alg_link_sg() 431 sg_chain(sgl_prev->sg, sgl_prev->npages + 1, sgl_new->sg); in af_alg_link_sg() 496 struct scatterlist *sg = NULL; in af_alg_alloc_tsgl() local 500 sg = sgl->sg; in af_alg_alloc_tsgl() 502 if (!sg || sgl->cur >= MAX_SGL_ENTS) { in af_alg_alloc_tsgl() 504 struct_size(sgl, sg, (MAX_SGL_ENTS + 1)), in af_alg_alloc_tsgl() 509 sg_init_table(sgl->sg, MAX_SGL_ENTS + 1); in af_alg_alloc_tsgl() [all …]
|
/Linux-v4.19/drivers/staging/android/ion/ |
D | ion_chunk_heap.c | 34 struct scatterlist *sg; in ion_chunk_heap_allocate() local 54 sg = table->sgl; in ion_chunk_heap_allocate() 60 sg_set_page(sg, pfn_to_page(PFN_DOWN(paddr)), in ion_chunk_heap_allocate() 62 sg = sg_next(sg); in ion_chunk_heap_allocate() 69 sg = table->sgl; in ion_chunk_heap_allocate() 71 gen_pool_free(chunk_heap->pool, page_to_phys(sg_page(sg)), in ion_chunk_heap_allocate() 72 sg->length); in ion_chunk_heap_allocate() 73 sg = sg_next(sg); in ion_chunk_heap_allocate() 86 struct scatterlist *sg; in ion_chunk_heap_free() local 94 for_each_sg(table->sgl, sg, table->nents, i) { in ion_chunk_heap_free() [all …]
|