Lines Matching refs:sgc

188 			      struct esas2r_sg_context *sgc)  in esas2r_build_sg_list_sge()  argument
190 struct esas2r_request *rq = sgc->first_req; in esas2r_build_sg_list_sge()
193 while (sgc->length) { in esas2r_build_sg_list_sge()
198 len = (*sgc->get_phys_addr)(sgc, &addr); in esas2r_build_sg_list_sge()
204 if (unlikely(len > sgc->length)) in esas2r_build_sg_list_sge()
205 len = sgc->length; in esas2r_build_sg_list_sge()
222 if (unlikely(sgc->sge.a64.curr > sgc->sge.a64.limit)) { in esas2r_build_sg_list_sge()
237 sgelen = (u8)((u8 *)sgc->sge.a64.curr in esas2r_build_sg_list_sge()
238 - (u8 *)sgc->sge.a64.last); in esas2r_build_sg_list_sge()
244 memcpy(sgl->virt_addr, sgc->sge.a64.last, sgelen); in esas2r_build_sg_list_sge()
247 sgc->sge.a64.curr = in esas2r_build_sg_list_sge()
252 sgc->sge.a64.limit = in esas2r_build_sg_list_sge()
257 sgc->sge.a64.last->length = cpu_to_le32( in esas2r_build_sg_list_sge()
259 sgc->sge.a64.last->address = in esas2r_build_sg_list_sge()
268 if (sgc->sge.a64.chain) { in esas2r_build_sg_list_sge()
269 sgc->sge.a64.chain->length |= in esas2r_build_sg_list_sge()
271 ((u8 *)(sgc->sge.a64. in esas2r_build_sg_list_sge()
279 ((u8 *)sgc-> in esas2r_build_sg_list_sge()
299 sgc->sge.a64.chain = sgc->sge.a64.last; in esas2r_build_sg_list_sge()
306 sgc->sge.a64.last = sgc->sge.a64.curr; in esas2r_build_sg_list_sge()
309 sgc->sge.a64.curr->length = cpu_to_le32(SGE_ADDR_64 | len); in esas2r_build_sg_list_sge()
310 sgc->sge.a64.curr->address = cpu_to_le32(addr); in esas2r_build_sg_list_sge()
311 sgc->sge.a64.curr++; in esas2r_build_sg_list_sge()
312 sgc->cur_offset += len; in esas2r_build_sg_list_sge()
313 sgc->length -= len; in esas2r_build_sg_list_sge()
328 sgc->sge.a64.last->length |= cpu_to_le32(SGE_LAST); in esas2r_build_sg_list_sge()
334 if (sgc->sge.a64.chain) { in esas2r_build_sg_list_sge()
335 sgc->sge.a64.chain->length |= cpu_to_le32( in esas2r_build_sg_list_sge()
336 ((u8 *)(sgc->sge.a64.curr) - in esas2r_build_sg_list_sge()
346 ((u16)((u8 *)sgc->sge.a64.last - (u8 *)vrq) in esas2r_build_sg_list_sge()
371 struct esas2r_sg_context *sgc) in esas2r_build_prd_iblk() argument
373 struct esas2r_request *rq = sgc->first_req; in esas2r_build_prd_iblk()
380 while (sgc->length) { in esas2r_build_prd_iblk()
383 len = (*sgc->get_phys_addr)(sgc, &addr); in esas2r_build_prd_iblk()
390 if (unlikely(len > sgc->length)) in esas2r_build_prd_iblk()
391 len = sgc->length; in esas2r_build_prd_iblk()
409 if (sgc->sge.prd.sge_cnt == 0) { in esas2r_build_prd_iblk()
410 if (len == sgc->length) { in esas2r_build_prd_iblk()
418 sgc->sge.prd.curr->ctl_len = cpu_to_le32( in esas2r_build_prd_iblk()
420 sgc->sge.prd.curr->address = cpu_to_le64(addr); in esas2r_build_prd_iblk()
423 sgc->cur_offset += len; in esas2r_build_prd_iblk()
424 sgc->length -= len; in esas2r_build_prd_iblk()
432 if (sgc->sge.prd.chain) { in esas2r_build_prd_iblk()
439 sgc->sge.prd.chain->ctl_len |= cpu_to_le32( in esas2r_build_prd_iblk()
440 sgc->sge.prd.sgl_max_cnt); in esas2r_build_prd_iblk()
467 sgc->sge.prd.chain = sgc->sge.prd.curr; in esas2r_build_prd_iblk()
469 sgc->sge.prd.chain->ctl_len = cpu_to_le32(PRD_CHAIN); in esas2r_build_prd_iblk()
470 sgc->sge.prd.chain->address = in esas2r_build_prd_iblk()
478 sgc->sge.prd.curr = in esas2r_build_prd_iblk()
482 sgc->sge.prd.sge_cnt = sgc->sge.prd.sgl_max_cnt - 1; in esas2r_build_prd_iblk()
485 sgc->sge.prd.sge_cnt--; in esas2r_build_prd_iblk()
487 sgc->sge.prd.curr->ctl_len = cpu_to_le32(PRD_DATA | len); in esas2r_build_prd_iblk()
488 sgc->sge.prd.curr->address = cpu_to_le64(addr); in esas2r_build_prd_iblk()
492 sgc->sge.prd.curr++; in esas2r_build_prd_iblk()
496 sgc->cur_offset += len; in esas2r_build_prd_iblk()
497 sgc->length -= len; in esas2r_build_prd_iblk()
513 if (sgc->sge.prd.chain) { in esas2r_build_prd_iblk()
514 sgc->sge.prd.chain->ctl_len |= in esas2r_build_prd_iblk()
515 cpu_to_le32(sgc->sge.prd.sgl_max_cnt in esas2r_build_prd_iblk()
516 - sgc->sge.prd.sge_cnt in esas2r_build_prd_iblk()
525 struct esas2r_sg_context *sgc) in esas2r_build_sg_list_prd() argument
527 struct esas2r_request *rq = sgc->first_req; in esas2r_build_sg_list_prd()
528 u32 len = sgc->length; in esas2r_build_sg_list_prd()
596 sgc->length = startlba * t->block_size; in esas2r_build_sg_list_prd()
602 if (sgc->length > len) in esas2r_build_sg_list_prd()
603 sgc->length = len; in esas2r_build_sg_list_prd()
605 sgc->length = len; in esas2r_build_sg_list_prd()
608 sgc->length = len; in esas2r_build_sg_list_prd()
614 (struct atto_physical_region_description *)sgc->sge.a64.curr; in esas2r_build_sg_list_prd()
616 sgc->sge.prd.sgl_max_cnt = sgl_page_size / in esas2r_build_sg_list_prd()
623 sgc->sge.prd.sge_cnt = 0; in esas2r_build_sg_list_prd()
624 sgc->sge.prd.chain = NULL; in esas2r_build_sg_list_prd()
625 sgc->sge.prd.curr = curr_iblk_chn; in esas2r_build_sg_list_prd()
629 len -= sgc->length; in esas2r_build_sg_list_prd()
633 if (unlikely(!esas2r_build_prd_iblk(a, sgc))) in esas2r_build_sg_list_prd()
642 sgc->length = t->inter_byte; in esas2r_build_sg_list_prd()
644 sgc->length = len; in esas2r_build_sg_list_prd()