• Home
  • Raw
  • Download

Lines Matching refs:falcon

29 nvkm_falcon_v1_load_imem(struct nvkm_falcon *falcon, void *data, u32 start,  in nvkm_falcon_v1_load_imem()  argument
39 nvkm_falcon_wr32(falcon, 0x180 + (port * 16), reg); in nvkm_falcon_v1_load_imem()
43 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem()
44 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), ((u32 *)data)[i]); in nvkm_falcon_v1_load_imem()
56 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem()
57 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), in nvkm_falcon_v1_load_imem()
64 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), 0); in nvkm_falcon_v1_load_imem()
68 nvkm_falcon_v1_load_emem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_emem() argument
76 nvkm_falcon_wr32(falcon, 0xac0 + (port * 8), start | (0x1 << 24)); in nvkm_falcon_v1_load_emem()
78 nvkm_falcon_wr32(falcon, 0xac4 + (port * 8), ((u32 *)data)[i]); in nvkm_falcon_v1_load_emem()
87 nvkm_falcon_wr32(falcon, 0xac4 + (port * 8), in nvkm_falcon_v1_load_emem()
95 nvkm_falcon_v1_load_dmem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_dmem() argument
101 if (start >= EMEM_START_ADDR && falcon->has_emem) in nvkm_falcon_v1_load_dmem()
102 return nvkm_falcon_v1_load_emem(falcon, data, in nvkm_falcon_v1_load_dmem()
108 nvkm_falcon_wr32(falcon, 0x1c0 + (port * 8), start | (0x1 << 24)); in nvkm_falcon_v1_load_dmem()
110 nvkm_falcon_wr32(falcon, 0x1c4 + (port * 8), ((u32 *)data)[i]); in nvkm_falcon_v1_load_dmem()
119 nvkm_falcon_wr32(falcon, 0x1c4 + (port * 8), in nvkm_falcon_v1_load_dmem()
125 nvkm_falcon_v1_read_emem(struct nvkm_falcon *falcon, u32 start, u32 size, in nvkm_falcon_v1_read_emem() argument
133 nvkm_falcon_wr32(falcon, 0xac0 + (port * 8), start | (0x1 << 25)); in nvkm_falcon_v1_read_emem()
135 ((u32 *)data)[i] = nvkm_falcon_rd32(falcon, 0xac4 + (port * 8)); in nvkm_falcon_v1_read_emem()
142 u32 extra = nvkm_falcon_rd32(falcon, 0xac4 + (port * 8)); in nvkm_falcon_v1_read_emem()
152 nvkm_falcon_v1_read_dmem(struct nvkm_falcon *falcon, u32 start, u32 size, in nvkm_falcon_v1_read_dmem() argument
158 if (start >= EMEM_START_ADDR && falcon->has_emem) in nvkm_falcon_v1_read_dmem()
159 return nvkm_falcon_v1_read_emem(falcon, start - EMEM_START_ADDR, in nvkm_falcon_v1_read_dmem()
164 nvkm_falcon_wr32(falcon, 0x1c0 + (port * 8), start | (0x1 << 25)); in nvkm_falcon_v1_read_dmem()
166 ((u32 *)data)[i] = nvkm_falcon_rd32(falcon, 0x1c4 + (port * 8)); in nvkm_falcon_v1_read_dmem()
173 u32 extra = nvkm_falcon_rd32(falcon, 0x1c4 + (port * 8)); in nvkm_falcon_v1_read_dmem()
183 nvkm_falcon_v1_bind_context(struct nvkm_falcon *falcon, struct nvkm_memory *ctx) in nvkm_falcon_v1_bind_context() argument
185 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_bind_context()
191 nvkm_falcon_wr32(falcon, 0x10c, 0x0); in nvkm_falcon_v1_bind_context()
195 switch (falcon->owner->index) { in nvkm_falcon_v1_bind_context()
209 nvkm_falcon_wr32(falcon, 0x10c, 0x1); in nvkm_falcon_v1_bind_context()
212 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_UCODE, 0x4); in nvkm_falcon_v1_bind_context()
213 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_VIRT, 0x0); in nvkm_falcon_v1_bind_context()
215 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_PHYS_VID, 0x4); in nvkm_falcon_v1_bind_context()
216 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_PHYS_SYS_COH, 0x5); in nvkm_falcon_v1_bind_context()
217 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_PHYS_SYS_NCOH, 0x6); in nvkm_falcon_v1_bind_context()
230 nvkm_falcon_mask(falcon, 0x048, 0x1, 0x1); in nvkm_falcon_v1_bind_context()
231 nvkm_falcon_wr32(falcon, 0x054, in nvkm_falcon_v1_bind_context()
235 nvkm_falcon_mask(falcon, 0x090, 0x10000, 0x10000); in nvkm_falcon_v1_bind_context()
236 nvkm_falcon_mask(falcon, 0x0a4, 0x8, 0x8); in nvkm_falcon_v1_bind_context()
249 switch (falcon->owner->index) { in nvkm_falcon_v1_bind_context()
253 u32 irqstat = nvkm_falcon_rd32(falcon, 0x008); in nvkm_falcon_v1_bind_context()
254 u32 flcn0dc = nvkm_falcon_rd32(falcon, 0x0dc); in nvkm_falcon_v1_bind_context()
260 nvkm_falcon_mask(falcon, 0x004, 0x00000008, 0x00000008); in nvkm_falcon_v1_bind_context()
261 nvkm_falcon_mask(falcon, 0x058, 0x00000002, 0x00000002); in nvkm_falcon_v1_bind_context()
264 u32 flcn0dc = nvkm_falcon_rd32(falcon, 0x0dc); in nvkm_falcon_v1_bind_context()
275 nvkm_falcon_v1_set_start_addr(struct nvkm_falcon *falcon, u32 start_addr) in nvkm_falcon_v1_set_start_addr() argument
277 nvkm_falcon_wr32(falcon, 0x104, start_addr); in nvkm_falcon_v1_set_start_addr()
281 nvkm_falcon_v1_start(struct nvkm_falcon *falcon) in nvkm_falcon_v1_start() argument
283 u32 reg = nvkm_falcon_rd32(falcon, 0x100); in nvkm_falcon_v1_start()
286 nvkm_falcon_wr32(falcon, 0x130, 0x2); in nvkm_falcon_v1_start()
288 nvkm_falcon_wr32(falcon, 0x100, 0x2); in nvkm_falcon_v1_start()
292 nvkm_falcon_v1_wait_for_halt(struct nvkm_falcon *falcon, u32 ms) in nvkm_falcon_v1_wait_for_halt() argument
294 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_wait_for_halt()
297 ret = nvkm_wait_msec(device, ms, falcon->addr + 0x100, 0x10, 0x10); in nvkm_falcon_v1_wait_for_halt()
305 nvkm_falcon_v1_clear_interrupt(struct nvkm_falcon *falcon, u32 mask) in nvkm_falcon_v1_clear_interrupt() argument
307 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_clear_interrupt()
311 nvkm_falcon_mask(falcon, 0x004, mask, mask); in nvkm_falcon_v1_clear_interrupt()
313 ret = nvkm_wait_msec(device, 10, falcon->addr + 0x008, mask, 0x0); in nvkm_falcon_v1_clear_interrupt()
321 falcon_v1_wait_idle(struct nvkm_falcon *falcon) in falcon_v1_wait_idle() argument
323 struct nvkm_device *device = falcon->owner->device; in falcon_v1_wait_idle()
326 ret = nvkm_wait_msec(device, 10, falcon->addr + 0x04c, 0xffff, 0x0); in falcon_v1_wait_idle()
334 nvkm_falcon_v1_enable(struct nvkm_falcon *falcon) in nvkm_falcon_v1_enable() argument
336 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_enable()
339 ret = nvkm_wait_msec(device, 10, falcon->addr + 0x10c, 0x6, 0x0); in nvkm_falcon_v1_enable()
341 nvkm_error(falcon->user, "Falcon mem scrubbing timeout\n"); in nvkm_falcon_v1_enable()
345 ret = falcon_v1_wait_idle(falcon); in nvkm_falcon_v1_enable()
350 nvkm_falcon_wr32(falcon, 0x010, 0xff); in nvkm_falcon_v1_enable()
356 nvkm_falcon_v1_disable(struct nvkm_falcon *falcon) in nvkm_falcon_v1_disable() argument
359 nvkm_falcon_wr32(falcon, 0x014, 0xff); in nvkm_falcon_v1_disable()
360 falcon_v1_wait_idle(falcon); in nvkm_falcon_v1_disable()
381 struct nvkm_falcon *falcon; in nvkm_falcon_v1_new() local
382 if (!(falcon = *pfalcon = kzalloc(sizeof(*falcon), GFP_KERNEL))) in nvkm_falcon_v1_new()
384 nvkm_falcon_ctor(&nvkm_falcon_v1, owner, name, addr, falcon); in nvkm_falcon_v1_new()