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