Lines Matching refs:chan
677 nve0_bo_move_init(struct nouveau_channel *chan, u32 handle) in nve0_bo_move_init() argument
679 int ret = RING_SPACE(chan, 2); in nve0_bo_move_init()
681 BEGIN_NVC0(chan, NvSubCopy, 0x0000, 1); in nve0_bo_move_init()
682 OUT_RING (chan, handle & 0x0000ffff); in nve0_bo_move_init()
683 FIRE_RING (chan); in nve0_bo_move_init()
689 nve0_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nve0_bo_move_copy() argument
693 int ret = RING_SPACE(chan, 10); in nve0_bo_move_copy()
695 BEGIN_NVC0(chan, NvSubCopy, 0x0400, 8); in nve0_bo_move_copy()
696 OUT_RING (chan, upper_32_bits(node->vma[0].offset)); in nve0_bo_move_copy()
697 OUT_RING (chan, lower_32_bits(node->vma[0].offset)); in nve0_bo_move_copy()
698 OUT_RING (chan, upper_32_bits(node->vma[1].offset)); in nve0_bo_move_copy()
699 OUT_RING (chan, lower_32_bits(node->vma[1].offset)); in nve0_bo_move_copy()
700 OUT_RING (chan, PAGE_SIZE); in nve0_bo_move_copy()
701 OUT_RING (chan, PAGE_SIZE); in nve0_bo_move_copy()
702 OUT_RING (chan, PAGE_SIZE); in nve0_bo_move_copy()
703 OUT_RING (chan, new_mem->num_pages); in nve0_bo_move_copy()
704 BEGIN_IMC0(chan, NvSubCopy, 0x0300, 0x0386); in nve0_bo_move_copy()
710 nvc0_bo_move_init(struct nouveau_channel *chan, u32 handle) in nvc0_bo_move_init() argument
712 int ret = RING_SPACE(chan, 2); in nvc0_bo_move_init()
714 BEGIN_NVC0(chan, NvSubCopy, 0x0000, 1); in nvc0_bo_move_init()
715 OUT_RING (chan, handle); in nvc0_bo_move_init()
721 nvc0_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nvc0_bo_move_copy() argument
734 ret = RING_SPACE(chan, 11); in nvc0_bo_move_copy()
738 BEGIN_NVC0(chan, NvSubCopy, 0x030c, 8); in nvc0_bo_move_copy()
739 OUT_RING (chan, upper_32_bits(src_offset)); in nvc0_bo_move_copy()
740 OUT_RING (chan, lower_32_bits(src_offset)); in nvc0_bo_move_copy()
741 OUT_RING (chan, upper_32_bits(dst_offset)); in nvc0_bo_move_copy()
742 OUT_RING (chan, lower_32_bits(dst_offset)); in nvc0_bo_move_copy()
743 OUT_RING (chan, PAGE_SIZE); in nvc0_bo_move_copy()
744 OUT_RING (chan, PAGE_SIZE); in nvc0_bo_move_copy()
745 OUT_RING (chan, PAGE_SIZE); in nvc0_bo_move_copy()
746 OUT_RING (chan, line_count); in nvc0_bo_move_copy()
747 BEGIN_NVC0(chan, NvSubCopy, 0x0300, 1); in nvc0_bo_move_copy()
748 OUT_RING (chan, 0x00000110); in nvc0_bo_move_copy()
759 nvc0_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nvc0_bo_move_m2mf() argument
772 ret = RING_SPACE(chan, 12); in nvc0_bo_move_m2mf()
776 BEGIN_NVC0(chan, NvSubCopy, 0x0238, 2); in nvc0_bo_move_m2mf()
777 OUT_RING (chan, upper_32_bits(dst_offset)); in nvc0_bo_move_m2mf()
778 OUT_RING (chan, lower_32_bits(dst_offset)); in nvc0_bo_move_m2mf()
779 BEGIN_NVC0(chan, NvSubCopy, 0x030c, 6); in nvc0_bo_move_m2mf()
780 OUT_RING (chan, upper_32_bits(src_offset)); in nvc0_bo_move_m2mf()
781 OUT_RING (chan, lower_32_bits(src_offset)); in nvc0_bo_move_m2mf()
782 OUT_RING (chan, PAGE_SIZE); /* src_pitch */ in nvc0_bo_move_m2mf()
783 OUT_RING (chan, PAGE_SIZE); /* dst_pitch */ in nvc0_bo_move_m2mf()
784 OUT_RING (chan, PAGE_SIZE); /* line_length */ in nvc0_bo_move_m2mf()
785 OUT_RING (chan, line_count); in nvc0_bo_move_m2mf()
786 BEGIN_NVC0(chan, NvSubCopy, 0x0300, 1); in nvc0_bo_move_m2mf()
787 OUT_RING (chan, 0x00100110); in nvc0_bo_move_m2mf()
798 nva3_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nva3_bo_move_copy() argument
811 ret = RING_SPACE(chan, 11); in nva3_bo_move_copy()
815 BEGIN_NV04(chan, NvSubCopy, 0x030c, 8); in nva3_bo_move_copy()
816 OUT_RING (chan, upper_32_bits(src_offset)); in nva3_bo_move_copy()
817 OUT_RING (chan, lower_32_bits(src_offset)); in nva3_bo_move_copy()
818 OUT_RING (chan, upper_32_bits(dst_offset)); in nva3_bo_move_copy()
819 OUT_RING (chan, lower_32_bits(dst_offset)); in nva3_bo_move_copy()
820 OUT_RING (chan, PAGE_SIZE); in nva3_bo_move_copy()
821 OUT_RING (chan, PAGE_SIZE); in nva3_bo_move_copy()
822 OUT_RING (chan, PAGE_SIZE); in nva3_bo_move_copy()
823 OUT_RING (chan, line_count); in nva3_bo_move_copy()
824 BEGIN_NV04(chan, NvSubCopy, 0x0300, 1); in nva3_bo_move_copy()
825 OUT_RING (chan, 0x00000110); in nva3_bo_move_copy()
836 nv98_bo_move_exec(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nv98_bo_move_exec() argument
840 int ret = RING_SPACE(chan, 7); in nv98_bo_move_exec()
842 BEGIN_NV04(chan, NvSubCopy, 0x0320, 6); in nv98_bo_move_exec()
843 OUT_RING (chan, upper_32_bits(node->vma[0].offset)); in nv98_bo_move_exec()
844 OUT_RING (chan, lower_32_bits(node->vma[0].offset)); in nv98_bo_move_exec()
845 OUT_RING (chan, upper_32_bits(node->vma[1].offset)); in nv98_bo_move_exec()
846 OUT_RING (chan, lower_32_bits(node->vma[1].offset)); in nv98_bo_move_exec()
847 OUT_RING (chan, 0x00000000 /* COPY */); in nv98_bo_move_exec()
848 OUT_RING (chan, new_mem->num_pages << PAGE_SHIFT); in nv98_bo_move_exec()
854 nv84_bo_move_exec(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nv84_bo_move_exec() argument
858 int ret = RING_SPACE(chan, 7); in nv84_bo_move_exec()
860 BEGIN_NV04(chan, NvSubCopy, 0x0304, 6); in nv84_bo_move_exec()
861 OUT_RING (chan, new_mem->num_pages << PAGE_SHIFT); in nv84_bo_move_exec()
862 OUT_RING (chan, upper_32_bits(node->vma[0].offset)); in nv84_bo_move_exec()
863 OUT_RING (chan, lower_32_bits(node->vma[0].offset)); in nv84_bo_move_exec()
864 OUT_RING (chan, upper_32_bits(node->vma[1].offset)); in nv84_bo_move_exec()
865 OUT_RING (chan, lower_32_bits(node->vma[1].offset)); in nv84_bo_move_exec()
866 OUT_RING (chan, 0x00000000 /* MODE_COPY, QUERY_NONE */); in nv84_bo_move_exec()
872 nv50_bo_move_init(struct nouveau_channel *chan, u32 handle) in nv50_bo_move_init() argument
874 int ret = RING_SPACE(chan, 6); in nv50_bo_move_init()
876 BEGIN_NV04(chan, NvSubCopy, 0x0000, 1); in nv50_bo_move_init()
877 OUT_RING (chan, handle); in nv50_bo_move_init()
878 BEGIN_NV04(chan, NvSubCopy, 0x0180, 3); in nv50_bo_move_init()
879 OUT_RING (chan, chan->drm->ntfy.handle); in nv50_bo_move_init()
880 OUT_RING (chan, chan->vram.handle); in nv50_bo_move_init()
881 OUT_RING (chan, chan->vram.handle); in nv50_bo_move_init()
888 nv50_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nv50_bo_move_m2mf() argument
902 ret = RING_SPACE(chan, 18 + 6 * (src_tiled + dst_tiled)); in nv50_bo_move_m2mf()
911 BEGIN_NV04(chan, NvSubCopy, 0x0200, 7); in nv50_bo_move_m2mf()
912 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
913 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
914 OUT_RING (chan, stride); in nv50_bo_move_m2mf()
915 OUT_RING (chan, height); in nv50_bo_move_m2mf()
916 OUT_RING (chan, 1); in nv50_bo_move_m2mf()
917 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
918 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
920 BEGIN_NV04(chan, NvSubCopy, 0x0200, 1); in nv50_bo_move_m2mf()
921 OUT_RING (chan, 1); in nv50_bo_move_m2mf()
924 BEGIN_NV04(chan, NvSubCopy, 0x021c, 7); in nv50_bo_move_m2mf()
925 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
926 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
927 OUT_RING (chan, stride); in nv50_bo_move_m2mf()
928 OUT_RING (chan, height); in nv50_bo_move_m2mf()
929 OUT_RING (chan, 1); in nv50_bo_move_m2mf()
930 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
931 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
933 BEGIN_NV04(chan, NvSubCopy, 0x021c, 1); in nv50_bo_move_m2mf()
934 OUT_RING (chan, 1); in nv50_bo_move_m2mf()
937 BEGIN_NV04(chan, NvSubCopy, 0x0238, 2); in nv50_bo_move_m2mf()
938 OUT_RING (chan, upper_32_bits(src_offset)); in nv50_bo_move_m2mf()
939 OUT_RING (chan, upper_32_bits(dst_offset)); in nv50_bo_move_m2mf()
940 BEGIN_NV04(chan, NvSubCopy, 0x030c, 8); in nv50_bo_move_m2mf()
941 OUT_RING (chan, lower_32_bits(src_offset)); in nv50_bo_move_m2mf()
942 OUT_RING (chan, lower_32_bits(dst_offset)); in nv50_bo_move_m2mf()
943 OUT_RING (chan, stride); in nv50_bo_move_m2mf()
944 OUT_RING (chan, stride); in nv50_bo_move_m2mf()
945 OUT_RING (chan, stride); in nv50_bo_move_m2mf()
946 OUT_RING (chan, height); in nv50_bo_move_m2mf()
947 OUT_RING (chan, 0x00000101); in nv50_bo_move_m2mf()
948 OUT_RING (chan, 0x00000000); in nv50_bo_move_m2mf()
949 BEGIN_NV04(chan, NvSubCopy, NV_MEMORY_TO_MEMORY_FORMAT_NOP, 1); in nv50_bo_move_m2mf()
950 OUT_RING (chan, 0); in nv50_bo_move_m2mf()
961 nv04_bo_move_init(struct nouveau_channel *chan, u32 handle) in nv04_bo_move_init() argument
963 int ret = RING_SPACE(chan, 4); in nv04_bo_move_init()
965 BEGIN_NV04(chan, NvSubCopy, 0x0000, 1); in nv04_bo_move_init()
966 OUT_RING (chan, handle); in nv04_bo_move_init()
967 BEGIN_NV04(chan, NvSubCopy, 0x0180, 1); in nv04_bo_move_init()
968 OUT_RING (chan, chan->drm->ntfy.handle); in nv04_bo_move_init()
976 struct nouveau_channel *chan, struct ttm_mem_reg *mem) in nouveau_bo_mem_ctxdma() argument
980 return chan->vram.handle; in nouveau_bo_mem_ctxdma()
984 nv04_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo, in nv04_bo_move_m2mf() argument
992 ret = RING_SPACE(chan, 3); in nv04_bo_move_m2mf()
996 BEGIN_NV04(chan, NvSubCopy, NV_MEMORY_TO_MEMORY_FORMAT_DMA_SOURCE, 2); in nv04_bo_move_m2mf()
997 OUT_RING (chan, nouveau_bo_mem_ctxdma(bo, chan, old_mem)); in nv04_bo_move_m2mf()
998 OUT_RING (chan, nouveau_bo_mem_ctxdma(bo, chan, new_mem)); in nv04_bo_move_m2mf()
1004 ret = RING_SPACE(chan, 11); in nv04_bo_move_m2mf()
1008 BEGIN_NV04(chan, NvSubCopy, in nv04_bo_move_m2mf()
1010 OUT_RING (chan, src_offset); in nv04_bo_move_m2mf()
1011 OUT_RING (chan, dst_offset); in nv04_bo_move_m2mf()
1012 OUT_RING (chan, PAGE_SIZE); /* src_pitch */ in nv04_bo_move_m2mf()
1013 OUT_RING (chan, PAGE_SIZE); /* dst_pitch */ in nv04_bo_move_m2mf()
1014 OUT_RING (chan, PAGE_SIZE); /* line_length */ in nv04_bo_move_m2mf()
1015 OUT_RING (chan, line_count); in nv04_bo_move_m2mf()
1016 OUT_RING (chan, 0x00000101); in nv04_bo_move_m2mf()
1017 OUT_RING (chan, 0x00000000); in nv04_bo_move_m2mf()
1018 BEGIN_NV04(chan, NvSubCopy, NV_MEMORY_TO_MEMORY_FORMAT_NOP, 1); in nv04_bo_move_m2mf()
1019 OUT_RING (chan, 0); in nv04_bo_move_m2mf()
1060 struct nouveau_channel *chan = drm->ttm.chan; in nouveau_bo_move_m2mf() local
1061 struct nouveau_cli *cli = (void *)chan->user.client; in nouveau_bo_move_m2mf()
1076 ret = nouveau_fence_sync(nouveau_bo(bo), chan, true, intr); in nouveau_bo_move_m2mf()
1078 ret = drm->ttm.move(chan, bo, &bo->mem, new_mem); in nouveau_bo_move_m2mf()
1080 ret = nouveau_fence_new(chan, false, &fence); in nouveau_bo_move_m2mf()
1125 struct nouveau_channel *chan; in nouveau_bo_move_init() local
1128 chan = drm->cechan; in nouveau_bo_move_init()
1130 chan = drm->channel; in nouveau_bo_move_init()
1131 if (chan == NULL) in nouveau_bo_move_init()
1134 ret = nvif_object_init(&chan->user, in nouveau_bo_move_init()
1139 ret = mthd->init(chan, drm->ttm.copy.handle); in nouveau_bo_move_init()
1146 drm->ttm.chan = chan; in nouveau_bo_move_init()