Lines Matching refs:xfer
95 const drm_via_dmablit_t *xfer, in via_map_blit_for_device() argument
101 unsigned char *mem_addr = xfer->mem_addr; in via_map_blit_for_device()
104 uint32_t fb_addr = xfer->fb_addr; in via_map_blit_for_device()
116 for (cur_line = 0; cur_line < xfer->num_lines; ++cur_line) { in via_map_blit_for_device()
118 line_len = xfer->line_length; in via_map_blit_for_device()
152 mem_addr += xfer->mem_stride; in via_map_blit_for_device()
153 fb_addr += xfer->fb_stride; in via_map_blit_for_device()
232 via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) in via_lock_all_dma_pages() argument
235 unsigned long first_pfn = VIA_PFN(xfer->mem_addr); in via_lock_all_dma_pages()
236 vsg->num_pages = VIA_PFN(xfer->mem_addr + (xfer->num_lines * xfer->mem_stride -1)) - in via_lock_all_dma_pages()
244 (unsigned long)xfer->mem_addr, in via_lock_all_dma_pages()
584 via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) in via_build_sg_info() argument
586 int draw = xfer->to_fb; in via_build_sg_info()
594 if (xfer->num_lines <= 0 || xfer->line_length <= 0) { in via_build_sg_info()
606 if ((xfer->mem_stride - xfer->line_length) > 2*PAGE_SIZE) { in via_build_sg_info()
608 "Length: %d\n", xfer->mem_stride, xfer->line_length); in via_build_sg_info()
612 if ((xfer->mem_stride == xfer->line_length) && in via_build_sg_info()
613 (xfer->fb_stride == xfer->line_length)) { in via_build_sg_info()
614 xfer->mem_stride *= xfer->num_lines; in via_build_sg_info()
615 xfer->line_length = xfer->mem_stride; in via_build_sg_info()
616 xfer->fb_stride = xfer->mem_stride; in via_build_sg_info()
617 xfer->num_lines = 1; in via_build_sg_info()
625 if (xfer->num_lines > 2048 || (xfer->num_lines*xfer->mem_stride > (2048*2048*4))) { in via_build_sg_info()
635 if (xfer->mem_stride < xfer->line_length || in via_build_sg_info()
636 abs(xfer->fb_stride) < xfer->line_length) { in via_build_sg_info()
648 if ((((unsigned long)xfer->mem_addr & 3) != ((unsigned long)xfer->fb_addr & 3)) || in via_build_sg_info()
649 ((xfer->num_lines > 1) && ((xfer->mem_stride & 3) != (xfer->fb_stride & 3)))) { in via_build_sg_info()
654 if ((((unsigned long)xfer->mem_addr & 15) || in via_build_sg_info()
655 ((unsigned long)xfer->fb_addr & 3)) || in via_build_sg_info()
656 ((xfer->num_lines > 1) && in via_build_sg_info()
657 ((xfer->mem_stride & 15) || (xfer->fb_stride & 3)))) { in via_build_sg_info()
663 if (0 != (ret = via_lock_all_dma_pages(vsg, xfer))) { in via_build_sg_info()
669 via_map_blit_for_device(dev->pdev, xfer, vsg, 0); in via_build_sg_info()
675 via_map_blit_for_device(dev->pdev, xfer, vsg, 1); in via_build_sg_info()
732 via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) in via_dmablit() argument
746 engine = (xfer->to_fb) ? 0 : 1; in via_dmablit()
755 if (0 != (ret = via_build_sg_info(dev, vsg, xfer))) { in via_dmablit()
766 xfer->sync.sync_handle = ++blitq->cur_blit_handle; in via_dmablit()
769 xfer->sync.engine = engine; in via_dmablit()
810 drm_via_dmablit_t *xfer = data; in via_dma_blit() local
813 err = via_dmablit(dev, xfer); in via_dma_blit()