Lines Matching refs:bus_addr

344 	return r->bus_addr + lpar_addr - r->offset;  in dma_sb_lpar_to_bus()
354 DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); in _dma_dump_region()
376 unsigned long bus_addr; member
388 DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr); in _dma_dump_chunk()
393 DBG("%s:%d: c.bus_addr %lxh\n", func, line, c->bus_addr); in _dma_dump_chunk()
398 unsigned long bus_addr, unsigned long len) in dma_find_chunk() argument
401 unsigned long aligned_bus = ALIGN_DOWN(bus_addr, 1 << r->page_size); in dma_find_chunk()
402 unsigned long aligned_len = ALIGN(len+bus_addr-aligned_bus, in dma_find_chunk()
407 if (aligned_bus >= c->bus_addr && in dma_find_chunk()
408 aligned_bus + aligned_len <= c->bus_addr + c->len) in dma_find_chunk()
412 if (aligned_bus + aligned_len <= c->bus_addr) in dma_find_chunk()
416 if (aligned_bus >= c->bus_addr + c->len) in dma_find_chunk()
461 if (c->bus_addr) { in dma_sb_free_chunk()
463 c->region->dev->dev_id, c->bus_addr, c->len); in dma_sb_free_chunk()
483 c->bus_addr + offset, in dma_ioc0_free_chunk()
488 c->bus_addr + offset, in dma_ioc0_free_chunk()
527 c->bus_addr = dma_sb_lpar_to_bus(r, c->lpar_addr); in dma_sb_map_pages()
533 c->bus_addr, c->len, iopte_flag); in dma_sb_map_pages()
576 c->bus_addr = r->bus_addr; in dma_ioc0_map_pages()
581 c->bus_addr = last->bus_addr + last->len; in dma_ioc0_map_pages()
583 last->bus_addr, last->len); in dma_ioc0_map_pages()
595 c->bus_addr + offset, in dma_ioc0_map_pages()
605 iopage, c->bus_addr + offset, c->lpar_addr + offset, in dma_ioc0_map_pages()
619 c->bus_addr + offset, in dma_ioc0_map_pages()
641 u64 bus_addr; in dma_sb_region_create() local
665 &bus_addr); in dma_sb_region_create()
666 r->bus_addr = bus_addr; in dma_sb_region_create()
671 r->len = r->bus_addr = 0; in dma_sb_region_create()
680 u64 bus_addr; in dma_ioc0_region_create() local
688 &bus_addr); in dma_ioc0_region_create()
689 r->bus_addr = bus_addr; in dma_ioc0_region_create()
693 r->len = r->bus_addr = 0; in dma_ioc0_region_create()
696 r->len, r->page_size, r->bus_addr); in dma_ioc0_region_create()
728 r->bus_addr); in dma_sb_region_free()
734 r->bus_addr = 0; in dma_sb_region_free()
750 result = lv1_release_io_segment(0, r->bus_addr); in dma_ioc0_region_free()
756 r->bus_addr = 0; in dma_ioc0_region_free()
774 unsigned long len, dma_addr_t *bus_addr, in dma_sb_map_area() argument
785 *bus_addr = dma_sb_lpar_to_bus(r, ps3_mm_phys_to_lpar(phys_addr)); in dma_sb_map_area()
798 *bus_addr, len); in dma_sb_map_area()
802 c = dma_find_chunk(r, *bus_addr, len); in dma_sb_map_area()
815 *bus_addr = 0; in dma_sb_map_area()
829 unsigned long len, dma_addr_t *bus_addr, in dma_ioc0_map_area() argument
852 *bus_addr = c->bus_addr + phys_addr - aligned_phys; in dma_ioc0_map_area()
862 *bus_addr = 0; in dma_ioc0_map_area()
868 *bus_addr = c->bus_addr + phys_addr - aligned_phys; in dma_ioc0_map_area()
870 virt_addr, phys_addr, aligned_phys, *bus_addr); in dma_ioc0_map_area()
886 static int dma_sb_unmap_area(struct ps3_dma_region *r, dma_addr_t bus_addr, in dma_sb_unmap_area() argument
893 c = dma_find_chunk(r, bus_addr, len); in dma_sb_unmap_area()
896 unsigned long aligned_bus = ALIGN_DOWN(bus_addr, in dma_sb_unmap_area()
898 unsigned long aligned_len = ALIGN(len + bus_addr in dma_sb_unmap_area()
901 __func__, __LINE__, bus_addr); in dma_sb_unmap_area()
923 dma_addr_t bus_addr, unsigned long len) in dma_ioc0_unmap_area() argument
928 DBG("%s: start a=%#llx l=%#lx\n", __func__, bus_addr, len); in dma_ioc0_unmap_area()
930 c = dma_find_chunk(r, bus_addr, len); in dma_ioc0_unmap_area()
933 unsigned long aligned_bus = ALIGN_DOWN(bus_addr, in dma_ioc0_unmap_area()
935 unsigned long aligned_len = ALIGN(len + bus_addr in dma_ioc0_unmap_area()
939 __func__, __LINE__, bus_addr); in dma_ioc0_unmap_area()
1027 dma_addr_t bus_addr; in dma_sb_region_free_linear() local
1036 bus_addr = dma_sb_lpar_to_bus(r, lpar_addr); in dma_sb_region_free_linear()
1037 result = dma_sb_unmap_area(r, bus_addr, len); in dma_sb_region_free_linear()
1049 bus_addr = dma_sb_lpar_to_bus(r, lpar_addr); in dma_sb_region_free_linear()
1050 result = dma_sb_unmap_area(r, bus_addr, len); in dma_sb_region_free_linear()
1073 unsigned long virt_addr, unsigned long len, dma_addr_t *bus_addr, in dma_sb_map_area_linear() argument
1078 *bus_addr = dma_sb_lpar_to_bus(r, ps3_mm_phys_to_lpar(phys_addr)); in dma_sb_map_area_linear()
1092 dma_addr_t bus_addr, unsigned long len) in dma_sb_unmap_area_linear() argument
1181 unsigned long len, dma_addr_t *bus_addr, in ps3_dma_map() argument
1184 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag); in ps3_dma_map()
1187 int ps3_dma_unmap(struct ps3_dma_region *r, dma_addr_t bus_addr, in ps3_dma_unmap() argument
1190 return r->region_ops->unmap(r, bus_addr, len); in ps3_dma_unmap()