Lines Matching +full:0 +full:x40000000

57 	nv_wo32(ramin, pcopy->ctx + 0, lower_32_bits(ctx->linst));  in nvc0_copy_context_new()
62 return 0; in nvc0_copy_context_new()
69 return 0; in nvc0_copy_object_new()
81 inst |= 0x40000000; in nvc0_copy_context_del()
84 nv_wr32(dev, pcopy->fuc + 0x048, 0x00000000); in nvc0_copy_context_del()
86 if (nv_rd32(dev, pcopy->fuc + 0x050) == inst) in nvc0_copy_context_del()
87 nv_mask(dev, pcopy->fuc + 0x050, 0x40000000, 0x00000000); in nvc0_copy_context_del()
89 if (nv_rd32(dev, pcopy->fuc + 0x054) == inst) in nvc0_copy_context_del()
90 nv_mask(dev, pcopy->fuc + 0x054, 0x40000000, 0x00000000); in nvc0_copy_context_del()
92 nv_wr32(dev, pcopy->fuc + 0x048, 0x00000003); in nvc0_copy_context_del()
94 nv_wo32(chan->ramin, pcopy->ctx + 0, 0x00000000); in nvc0_copy_context_del()
95 nv_wo32(chan->ramin, pcopy->ctx + 4, 0x00000000); in nvc0_copy_context_del()
107 nv_mask(dev, 0x000200, pcopy->pmc, 0x00000000); in nvc0_copy_init()
108 nv_mask(dev, 0x000200, pcopy->pmc, pcopy->pmc); in nvc0_copy_init()
109 nv_wr32(dev, pcopy->fuc + 0x014, 0xffffffff); in nvc0_copy_init()
111 nv_wr32(dev, pcopy->fuc + 0x1c0, 0x01000000); in nvc0_copy_init()
112 for (i = 0; i < sizeof(nvc0_pcopy_data) / 4; i++) in nvc0_copy_init()
113 nv_wr32(dev, pcopy->fuc + 0x1c4, nvc0_pcopy_data[i]); in nvc0_copy_init()
115 nv_wr32(dev, pcopy->fuc + 0x180, 0x01000000); in nvc0_copy_init()
116 for (i = 0; i < sizeof(nvc0_pcopy_code) / 4; i++) { in nvc0_copy_init()
117 if ((i & 0x3f) == 0) in nvc0_copy_init()
118 nv_wr32(dev, pcopy->fuc + 0x188, i >> 6); in nvc0_copy_init()
119 nv_wr32(dev, pcopy->fuc + 0x184, nvc0_pcopy_code[i]); in nvc0_copy_init()
122 nv_wr32(dev, pcopy->fuc + 0x084, engine - NVOBJ_ENGINE_COPY0); in nvc0_copy_init()
123 nv_wr32(dev, pcopy->fuc + 0x10c, 0x00000000); in nvc0_copy_init()
124 nv_wr32(dev, pcopy->fuc + 0x104, 0x00000000); /* ENTRY */ in nvc0_copy_init()
125 nv_wr32(dev, pcopy->fuc + 0x100, 0x00000002); /* TRIGGER */ in nvc0_copy_init()
126 return 0; in nvc0_copy_init()
134 nv_mask(dev, pcopy->fuc + 0x048, 0x00000003, 0x00000000); in nvc0_copy_fini()
137 nv_wait(dev, pcopy->fuc + 0x008, 0x0000000c, 0x00000000); in nvc0_copy_fini()
138 nv_mask(dev, pcopy->fuc + 0x054, 0x40000000, 0x00000000); in nvc0_copy_fini()
139 nv_wr32(dev, pcopy->fuc + 0x000, 0x00000008); in nvc0_copy_fini()
140 nv_wait(dev, pcopy->fuc + 0x008, 0x00000008, 0x00000000); in nvc0_copy_fini()
142 nv_wr32(dev, pcopy->fuc + 0x014, 0xffffffff); in nvc0_copy_fini()
143 return 0; in nvc0_copy_fini()
147 { 0x0001, "ILLEGAL_MTHD" },
148 { 0x0002, "INVALID_ENUM" },
149 { 0x0003, "INVALID_BITFIELD" },
157 u32 disp = nv_rd32(dev, pcopy->fuc + 0x01c); in nvc0_copy_isr()
158 u32 stat = nv_rd32(dev, pcopy->fuc + 0x008) & disp & ~(disp >> 16); in nvc0_copy_isr()
159 u64 inst = (u64)(nv_rd32(dev, pcopy->fuc + 0x050) & 0x0fffffff) << 12; in nvc0_copy_isr()
161 u32 ssta = nv_rd32(dev, pcopy->fuc + 0x040) & 0x0000ffff; in nvc0_copy_isr()
162 u32 addr = nv_rd32(dev, pcopy->fuc + 0x040) >> 16; in nvc0_copy_isr()
163 u32 mthd = (addr & 0x07ff) << 2; in nvc0_copy_isr()
164 u32 subc = (addr & 0x3800) >> 11; in nvc0_copy_isr()
165 u32 data = nv_rd32(dev, pcopy->fuc + 0x044); in nvc0_copy_isr()
167 if (stat & 0x00000040) { in nvc0_copy_isr()
170 printk("] ch %d [0x%010llx] subc %d mthd 0x%04x data 0x%08x\n", in nvc0_copy_isr()
172 nv_wr32(dev, pcopy->fuc + 0x004, 0x00000040); in nvc0_copy_isr()
173 stat &= ~0x00000040; in nvc0_copy_isr()
177 NV_INFO(dev, "PCOPY: unhandled intr 0x%08x\n", stat); in nvc0_copy_isr()
178 nv_wr32(dev, pcopy->fuc + 0x004, stat); in nvc0_copy_isr()
224 if (engine == 0) { in nvc0_copy_create()
226 pcopy->pmc = 0x00000040; in nvc0_copy_create()
227 pcopy->fuc = 0x104000; in nvc0_copy_create()
228 pcopy->ctx = 0x0230; in nvc0_copy_create()
231 NVOBJ_CLASS(dev, 0x90b5, COPY0); in nvc0_copy_create()
234 pcopy->pmc = 0x00000080; in nvc0_copy_create()
235 pcopy->fuc = 0x105000; in nvc0_copy_create()
236 pcopy->ctx = 0x0240; in nvc0_copy_create()
239 NVOBJ_CLASS(dev, 0x90b8, COPY1); in nvc0_copy_create()
242 return 0; in nvc0_copy_create()