Lines Matching refs:len

351 	BUG_ON(lpar_addr >= r->offset + r->len);  in dma_sb_lpar_to_bus()
363 DBG("%s:%d: len %lxh\n", func, line, r->len); in _dma_dump_region()
385 unsigned long len; member
398 DBG("%s:%d: r.len %lxh\n", func, line, c->region->len); in _dma_dump_chunk()
402 DBG("%s:%d: c.len %lxh\n", func, line, c->len); in _dma_dump_chunk()
406 unsigned long bus_addr, unsigned long len) in dma_find_chunk() argument
410 unsigned long aligned_len = _ALIGN_UP(len+bus_addr-aligned_bus, in dma_find_chunk()
416 aligned_bus + aligned_len <= c->bus_addr + c->len) in dma_find_chunk()
424 if (aligned_bus >= c->bus_addr + c->len) in dma_find_chunk()
435 unsigned long lpar_addr, unsigned long len) in dma_find_chunk_lpar() argument
439 unsigned long aligned_len = _ALIGN_UP(len + lpar_addr - aligned_lpar, in dma_find_chunk_lpar()
445 aligned_lpar < c->lpar_addr + c->len) { in dma_find_chunk_lpar()
446 if (aligned_lpar + aligned_len <= c->lpar_addr + c->len) in dma_find_chunk_lpar()
458 if (c->lpar_addr + c->len <= aligned_lpar) { in dma_find_chunk_lpar()
471 c->region->dev->dev_id, c->bus_addr, c->len); in dma_sb_free_chunk()
487 for (iopage = 0; iopage < (c->len >> r->page_size); iopage++) { in dma_ioc0_free_chunk()
522 unsigned long len, struct dma_chunk **c_out, u64 iopte_flag) in dma_sb_map_pages() argument
537 c->len = len; in dma_sb_map_pages()
542 c->bus_addr, c->len, iopte_flag); in dma_sb_map_pages()
563 unsigned long len, struct dma_chunk **c_out, in dma_ioc0_map_pages() argument
572 phys_addr, ps3_mm_phys_to_lpar(phys_addr), len); in dma_ioc0_map_pages()
581 c->len = len; in dma_ioc0_map_pages()
591 c->bus_addr = last->bus_addr + last->len; in dma_ioc0_map_pages()
593 last->bus_addr, last->len); in dma_ioc0_map_pages()
599 pages = len >> r->page_size; in dma_ioc0_map_pages()
601 r->page_size, r->len, pages, iopte_flag); in dma_ioc0_map_pages()
664 __LINE__, r->len, r->page_size, r->offset); in dma_sb_region_create()
666 BUG_ON(!r->len); in dma_sb_region_create()
674 roundup_pow_of_two(r->len), r->page_size, r->region_type, in dma_sb_region_create()
681 r->len = r->bus_addr = 0; in dma_sb_region_create()
696 r->len, in dma_ioc0_region_create()
703 r->len = r->bus_addr = 0; in dma_ioc0_region_create()
706 r->len, r->page_size, r->bus_addr); in dma_ioc0_region_create()
784 unsigned long len, dma_addr_t *bus_addr, in dma_sb_map_area() argument
793 unsigned long aligned_len = _ALIGN_UP(len + phys_addr - aligned_phys, in dma_sb_map_area()
806 DBG("%s:%d len %lxh\n", __func__, __LINE__, len); in dma_sb_map_area()
808 *bus_addr, len); in dma_sb_map_area()
812 c = dma_find_chunk(r, *bus_addr, len); in dma_sb_map_area()
839 unsigned long len, dma_addr_t *bus_addr, in dma_ioc0_map_area() argument
848 unsigned long aligned_len = _ALIGN_UP(len + phys_addr - aligned_phys, in dma_ioc0_map_area()
852 virt_addr, len); in dma_ioc0_map_area()
857 c = dma_find_chunk_lpar(r, ps3_mm_phys_to_lpar(phys_addr), len); in dma_ioc0_map_area()
897 unsigned long len) in dma_sb_unmap_area() argument
903 c = dma_find_chunk(r, bus_addr, len); in dma_sb_unmap_area()
908 unsigned long aligned_len = _ALIGN_UP(len + bus_addr in dma_sb_unmap_area()
913 __func__, __LINE__, len); in dma_sb_unmap_area()
933 dma_addr_t bus_addr, unsigned long len) in dma_ioc0_unmap_area() argument
938 DBG("%s: start a=%#llx l=%#lx\n", __func__, bus_addr, len); in dma_ioc0_unmap_area()
940 c = dma_find_chunk(r, bus_addr, len); in dma_ioc0_unmap_area()
945 unsigned long aligned_len = _ALIGN_UP(len + bus_addr in dma_ioc0_unmap_area()
951 __func__, __LINE__, len); in dma_ioc0_unmap_area()
982 unsigned long virt_addr, len; in dma_sb_region_create_linear() local
985 if (r->len > 16*1024*1024) { /* FIXME: need proper fix */ in dma_sb_region_create_linear()
991 r->len = _ALIGN_UP(r->len, 1 << r->page_size); in dma_sb_region_create_linear()
1001 len = map.rm.size - r->offset; in dma_sb_region_create_linear()
1002 if (len > r->len) in dma_sb_region_create_linear()
1003 len = r->len; in dma_sb_region_create_linear()
1004 result = dma_sb_map_area(r, virt_addr, len, &tmp, in dma_sb_region_create_linear()
1010 if (r->offset + r->len > map.rm.size) { in dma_sb_region_create_linear()
1013 len = r->len; in dma_sb_region_create_linear()
1017 len -= map.rm.size - r->offset; in dma_sb_region_create_linear()
1018 result = dma_sb_map_area(r, virt_addr, len, &tmp, in dma_sb_region_create_linear()
1038 unsigned long len, lpar_addr; in dma_sb_region_free_linear() local
1043 len = map.rm.size - r->offset; in dma_sb_region_free_linear()
1044 if (len > r->len) in dma_sb_region_free_linear()
1045 len = r->len; in dma_sb_region_free_linear()
1047 result = dma_sb_unmap_area(r, bus_addr, len); in dma_sb_region_free_linear()
1051 if (r->offset + r->len > map.rm.size) { in dma_sb_region_free_linear()
1054 len = r->len; in dma_sb_region_free_linear()
1058 len -= map.rm.size - r->offset; in dma_sb_region_free_linear()
1060 result = dma_sb_unmap_area(r, bus_addr, len); in dma_sb_region_free_linear()
1083 unsigned long virt_addr, unsigned long len, dma_addr_t *bus_addr, in dma_sb_map_area_linear() argument
1102 dma_addr_t bus_addr, unsigned long len) in dma_sb_unmap_area_linear() argument
1130 enum ps3_dma_region_type region_type, void *addr, unsigned long len) in ps3_dma_region_init() argument
1142 r->len = len ? len : _ALIGN_UP(map.total, 1 << r->page_size); in ps3_dma_region_init()
1180 unsigned long len, dma_addr_t *bus_addr, in ps3_dma_map() argument
1183 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag); in ps3_dma_map()
1187 unsigned long len) in ps3_dma_unmap() argument
1189 return r->region_ops->unmap(r, bus_addr, len); in ps3_dma_unmap()