• Home
  • Raw
  • Download

Lines Matching refs:sg

257 static void s5p_set_dma_indata(struct s5p_aes_dev *dev, struct scatterlist *sg)  in s5p_set_dma_indata()  argument
259 SSS_WRITE(dev, FCBRDMAS, sg_dma_address(sg)); in s5p_set_dma_indata()
260 SSS_WRITE(dev, FCBRDMAL, sg_dma_len(sg)); in s5p_set_dma_indata()
263 static void s5p_set_dma_outdata(struct s5p_aes_dev *dev, struct scatterlist *sg) in s5p_set_dma_outdata() argument
265 SSS_WRITE(dev, FCBTDMAS, sg_dma_address(sg)); in s5p_set_dma_outdata()
266 SSS_WRITE(dev, FCBTDMAL, sg_dma_len(sg)); in s5p_set_dma_outdata()
269 static void s5p_free_sg_cpy(struct s5p_aes_dev *dev, struct scatterlist **sg) in s5p_free_sg_cpy() argument
273 if (!*sg) in s5p_free_sg_cpy()
277 free_pages((unsigned long)sg_virt(*sg), get_order(len)); in s5p_free_sg_cpy()
279 kfree(*sg); in s5p_free_sg_cpy()
280 *sg = NULL; in s5p_free_sg_cpy()
283 static void s5p_sg_copy_buf(void *buf, struct scatterlist *sg, in s5p_sg_copy_buf() argument
291 scatterwalk_start(&walk, sg); in s5p_sg_copy_buf()
351 static int s5p_set_outdata(struct s5p_aes_dev *dev, struct scatterlist *sg) in s5p_set_outdata() argument
355 if (!sg->length) { in s5p_set_outdata()
360 err = dma_map_sg(dev->dev, sg, 1, DMA_FROM_DEVICE); in s5p_set_outdata()
366 dev->sg_dst = sg; in s5p_set_outdata()
373 static int s5p_set_indata(struct s5p_aes_dev *dev, struct scatterlist *sg) in s5p_set_indata() argument
377 if (!sg->length) { in s5p_set_indata()
382 err = dma_map_sg(dev->dev, sg, 1, DMA_TO_DEVICE); in s5p_set_indata()
388 dev->sg_src = sg; in s5p_set_indata()
533 static bool s5p_is_sg_aligned(struct scatterlist *sg) in s5p_is_sg_aligned() argument
535 while (sg) { in s5p_is_sg_aligned()
536 if (!IS_ALIGNED(sg->length, AES_BLOCK_SIZE)) in s5p_is_sg_aligned()
538 sg = sg_next(sg); in s5p_is_sg_aligned()
547 struct scatterlist *sg; in s5p_set_indata_start() local
551 sg = req->src; in s5p_set_indata_start()
552 if (!s5p_is_sg_aligned(sg)) { in s5p_set_indata_start()
555 err = s5p_make_sg_cpy(dev, sg, &dev->sg_src_cpy); in s5p_set_indata_start()
559 sg = dev->sg_src_cpy; in s5p_set_indata_start()
562 err = s5p_set_indata(dev, sg); in s5p_set_indata_start()
574 struct scatterlist *sg; in s5p_set_outdata_start() local
578 sg = req->dst; in s5p_set_outdata_start()
579 if (!s5p_is_sg_aligned(sg)) { in s5p_set_outdata_start()
582 err = s5p_make_sg_cpy(dev, sg, &dev->sg_dst_cpy); in s5p_set_outdata_start()
586 sg = dev->sg_dst_cpy; in s5p_set_outdata_start()
589 err = s5p_set_outdata(dev, sg); in s5p_set_outdata_start()