Lines Matching refs:sec2
31 struct nvkm_sec2 *sec2 = nvkm_sec2(engine); in nvkm_sec2_dtor() local
32 nvkm_msgqueue_del(&sec2->queue); in nvkm_sec2_dtor()
33 nvkm_falcon_del(&sec2->falcon); in nvkm_sec2_dtor()
34 return sec2; in nvkm_sec2_dtor()
40 struct nvkm_sec2 *sec2 = nvkm_sec2(engine); in nvkm_sec2_intr() local
43 u32 disp = nvkm_rd32(device, sec2->addr + 0x01c); in nvkm_sec2_intr()
44 u32 intr = nvkm_rd32(device, sec2->addr + 0x008) & disp & ~(disp >> 16); in nvkm_sec2_intr()
47 schedule_work(&sec2->work); in nvkm_sec2_intr()
48 nvkm_wr32(device, sec2->addr + 0x004, 0x00000040); in nvkm_sec2_intr()
54 nvkm_wr32(device, sec2->addr + 0x004, intr); in nvkm_sec2_intr()
62 struct nvkm_sec2 *sec2 = container_of(work, typeof(*sec2), work); in nvkm_sec2_recv() local
64 if (!sec2->queue) { in nvkm_sec2_recv()
65 nvkm_warn(&sec2->engine.subdev, in nvkm_sec2_recv()
70 nvkm_msgqueue_recv(sec2->queue); in nvkm_sec2_recv()
77 struct nvkm_sec2 *sec2 = nvkm_sec2(engine); in nvkm_sec2_oneinit() local
78 struct nvkm_subdev *subdev = &sec2->engine.subdev; in nvkm_sec2_oneinit()
80 if (!sec2->addr) { in nvkm_sec2_oneinit()
81 sec2->addr = nvkm_top_addr(subdev->device, subdev->index); in nvkm_sec2_oneinit()
82 if (WARN_ON(!sec2->addr)) in nvkm_sec2_oneinit()
86 return nvkm_falcon_v1_new(subdev, "SEC2", sec2->addr, &sec2->falcon); in nvkm_sec2_oneinit()
92 struct nvkm_sec2 *sec2 = nvkm_sec2(engine); in nvkm_sec2_fini() local
93 flush_work(&sec2->work); in nvkm_sec2_fini()
109 struct nvkm_sec2 *sec2; in nvkm_sec2_new_() local
111 if (!(sec2 = *psec2 = kzalloc(sizeof(*sec2), GFP_KERNEL))) in nvkm_sec2_new_()
113 sec2->addr = addr; in nvkm_sec2_new_()
114 INIT_WORK(&sec2->work, nvkm_sec2_recv); in nvkm_sec2_new_()
116 return nvkm_engine_ctor(&nvkm_sec2, device, index, true, &sec2->engine); in nvkm_sec2_new_()