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
190 nvkm_falcon_wr32(falcon, 0x10c, 0x0); in nvkm_falcon_v1_bind_context()
194 switch (falcon->owner->index) { in nvkm_falcon_v1_bind_context()
208 nvkm_falcon_wr32(falcon, 0x10c, 0x1); in nvkm_falcon_v1_bind_context()
211 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_UCODE, 0x4); in nvkm_falcon_v1_bind_context()
212 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_VIRT, 0x0); in nvkm_falcon_v1_bind_context()
214 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_PHYS_VID, 0x4); in nvkm_falcon_v1_bind_context()
215 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_PHYS_SYS_COH, 0x5); in nvkm_falcon_v1_bind_context()
216 nvkm_falcon_wr32(falcon, fbif + 4 * FALCON_DMAIDX_PHYS_SYS_NCOH, 0x6); in nvkm_falcon_v1_bind_context()
229 nvkm_falcon_mask(falcon, 0x048, 0x1, 0x1); in nvkm_falcon_v1_bind_context()
230 nvkm_falcon_wr32(falcon, 0x054, in nvkm_falcon_v1_bind_context()
234 nvkm_falcon_mask(falcon, 0x090, 0x10000, 0x10000); in nvkm_falcon_v1_bind_context()
235 nvkm_falcon_mask(falcon, 0x0a4, 0x8, 0x8); in nvkm_falcon_v1_bind_context()
239 nvkm_falcon_v1_set_start_addr(struct nvkm_falcon *falcon, u32 start_addr) in nvkm_falcon_v1_set_start_addr() argument
241 nvkm_falcon_wr32(falcon, 0x104, start_addr); in nvkm_falcon_v1_set_start_addr()
245 nvkm_falcon_v1_start(struct nvkm_falcon *falcon) in nvkm_falcon_v1_start() argument
247 u32 reg = nvkm_falcon_rd32(falcon, 0x100); in nvkm_falcon_v1_start()
250 nvkm_falcon_wr32(falcon, 0x130, 0x2); in nvkm_falcon_v1_start()
252 nvkm_falcon_wr32(falcon, 0x100, 0x2); in nvkm_falcon_v1_start()
256 nvkm_falcon_v1_wait_for_halt(struct nvkm_falcon *falcon, u32 ms) in nvkm_falcon_v1_wait_for_halt() argument
258 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_wait_for_halt()
261 ret = nvkm_wait_msec(device, ms, falcon->addr + 0x100, 0x10, 0x10); in nvkm_falcon_v1_wait_for_halt()
269 nvkm_falcon_v1_clear_interrupt(struct nvkm_falcon *falcon, u32 mask) in nvkm_falcon_v1_clear_interrupt() argument
271 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_clear_interrupt()
275 nvkm_falcon_mask(falcon, 0x004, mask, mask); in nvkm_falcon_v1_clear_interrupt()
277 ret = nvkm_wait_msec(device, 10, falcon->addr + 0x008, mask, 0x0); in nvkm_falcon_v1_clear_interrupt()
285 falcon_v1_wait_idle(struct nvkm_falcon *falcon) in falcon_v1_wait_idle() argument
287 struct nvkm_device *device = falcon->owner->device; in falcon_v1_wait_idle()
290 ret = nvkm_wait_msec(device, 10, falcon->addr + 0x04c, 0xffff, 0x0); in falcon_v1_wait_idle()
298 nvkm_falcon_v1_enable(struct nvkm_falcon *falcon) in nvkm_falcon_v1_enable() argument
300 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_v1_enable()
303 ret = nvkm_wait_msec(device, 10, falcon->addr + 0x10c, 0x6, 0x0); in nvkm_falcon_v1_enable()
305 nvkm_error(falcon->user, "Falcon mem scrubbing timeout\n"); in nvkm_falcon_v1_enable()
309 ret = falcon_v1_wait_idle(falcon); in nvkm_falcon_v1_enable()
314 nvkm_falcon_wr32(falcon, 0x010, 0xff); in nvkm_falcon_v1_enable()
320 nvkm_falcon_v1_disable(struct nvkm_falcon *falcon) in nvkm_falcon_v1_disable() argument
323 nvkm_falcon_wr32(falcon, 0x014, 0xff); in nvkm_falcon_v1_disable()
324 falcon_v1_wait_idle(falcon); in nvkm_falcon_v1_disable()
345 struct nvkm_falcon *falcon; in nvkm_falcon_v1_new() local
346 if (!(falcon = *pfalcon = kzalloc(sizeof(*falcon), GFP_KERNEL))) in nvkm_falcon_v1_new()
348 nvkm_falcon_ctor(&nvkm_falcon_v1, owner, name, addr, falcon); in nvkm_falcon_v1_new()