Lines Matching refs:xfer
99 const drm_via_dmablit_t *xfer, in via_map_blit_for_device() argument
105 unsigned char *mem_addr = xfer->mem_addr; in via_map_blit_for_device()
108 uint32_t fb_addr = xfer->fb_addr; in via_map_blit_for_device()
120 for (cur_line = 0; cur_line < xfer->num_lines; ++cur_line) { in via_map_blit_for_device()
122 line_len = xfer->line_length; in via_map_blit_for_device()
156 mem_addr += xfer->mem_stride; in via_map_blit_for_device()
157 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()
242 ret = pin_user_pages_fast((unsigned long)xfer->mem_addr, in via_lock_all_dma_pages()
574 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
576 int draw = xfer->to_fb; in via_build_sg_info()
584 if (xfer->num_lines <= 0 || xfer->line_length <= 0) { in via_build_sg_info()
596 if ((xfer->mem_stride - xfer->line_length) > 2*PAGE_SIZE) { in via_build_sg_info()
598 "Length: %d\n", xfer->mem_stride, xfer->line_length); in via_build_sg_info()
602 if ((xfer->mem_stride == xfer->line_length) && in via_build_sg_info()
603 (xfer->fb_stride == xfer->line_length)) { in via_build_sg_info()
604 xfer->mem_stride *= xfer->num_lines; in via_build_sg_info()
605 xfer->line_length = xfer->mem_stride; in via_build_sg_info()
606 xfer->fb_stride = xfer->mem_stride; in via_build_sg_info()
607 xfer->num_lines = 1; in via_build_sg_info()
615 if (xfer->num_lines > 2048 || (xfer->num_lines*xfer->mem_stride > (2048*2048*4))) { in via_build_sg_info()
625 if (xfer->mem_stride < xfer->line_length || in via_build_sg_info()
626 abs(xfer->fb_stride) < xfer->line_length) { in via_build_sg_info()
638 if ((((unsigned long)xfer->mem_addr & 3) != ((unsigned long)xfer->fb_addr & 3)) || in via_build_sg_info()
639 ((xfer->num_lines > 1) && ((xfer->mem_stride & 3) != (xfer->fb_stride & 3)))) { in via_build_sg_info()
644 if ((((unsigned long)xfer->mem_addr & 15) || in via_build_sg_info()
645 ((unsigned long)xfer->fb_addr & 3)) || in via_build_sg_info()
646 ((xfer->num_lines > 1) && in via_build_sg_info()
647 ((xfer->mem_stride & 15) || (xfer->fb_stride & 3)))) { in via_build_sg_info()
653 if (0 != (ret = via_lock_all_dma_pages(vsg, xfer))) { in via_build_sg_info()
659 via_map_blit_for_device(dev->pdev, xfer, vsg, 0); in via_build_sg_info()
665 via_map_blit_for_device(dev->pdev, xfer, vsg, 1); in via_build_sg_info()
721 via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) in via_dmablit() argument
735 engine = (xfer->to_fb) ? 0 : 1; in via_dmablit()
743 if (0 != (ret = via_build_sg_info(dev, vsg, xfer))) { in via_dmablit()
754 xfer->sync.sync_handle = ++blitq->cur_blit_handle; in via_dmablit()
757 xfer->sync.engine = engine; in via_dmablit()
798 drm_via_dmablit_t *xfer = data; in via_dma_blit() local
801 err = via_dmablit(dev, xfer); in via_dma_blit()