33 #define NV41_GART_SIZE (512 * 1024 * 1024)
34 #define NV41_GART_PAGE ( 4 * 1024)
48 while (cnt && page--) {
49 nv_wo32(pgt, pte, (phys >> 7) | 1);
62 nv_wo32(pgt, pte, 0x00000000);
73 nv_wr32(priv, 0x100810, 0x00000022);
74 if (!
nv_wait(priv, 0x100810, 0x00000020, 0x00000020)) {
75 nv_warn(priv,
"flush timeout, 0x%08x\n",
76 nv_rd32(priv, 0x100810));
78 nv_wr32(priv, 0x100810, 0x00000000);
103 *pobject = nv_object(priv);
109 priv->
base.dma_bits = 39;
110 priv->
base.pgt_bits = 32 - 12;
111 priv->
base.spg_shift = 12;
112 priv->
base.lpg_shift = 12;
113 priv->
base.map_sg = nv41_vm_map_sg;
114 priv->
base.unmap = nv41_vm_unmap;
115 priv->
base.flush = nv41_vm_flush;
125 &priv->
vm->pgt[0].obj[0]);
126 priv->
vm->pgt[0].refcount[0] = 1;
144 nv_wr32(priv, 0x100800, dma->
addr | 0x00000002);
145 nv_mask(priv, 0x10008c, 0x00000100, 0x00000100);
146 nv_wr32(priv, 0x100820, 0x00000000);
154 .ctor = nv41_vmmgr_ctor,
156 .init = nv41_vmmgr_init,