Lines Matching refs:device
40 struct nvkm_device *device = subdev->device; in nvkm_pmu_send() local
44 addr = nvkm_rd32(device, 0x10a4a0); in nvkm_pmu_send()
45 if (nvkm_msec(device, 2000, in nvkm_pmu_send()
46 u32 tmp = nvkm_rd32(device, 0x10a4b0); in nvkm_pmu_send()
64 nvkm_wr32(device, 0x10a580, 0x00000001); in nvkm_pmu_send()
65 } while (nvkm_rd32(device, 0x10a580) != 0x00000001); in nvkm_pmu_send()
68 nvkm_wr32(device, 0x10a1c0, 0x01000000 | (((addr & 0x07) << 4) + in nvkm_pmu_send()
70 nvkm_wr32(device, 0x10a1c4, process); in nvkm_pmu_send()
71 nvkm_wr32(device, 0x10a1c4, message); in nvkm_pmu_send()
72 nvkm_wr32(device, 0x10a1c4, data0); in nvkm_pmu_send()
73 nvkm_wr32(device, 0x10a1c4, data1); in nvkm_pmu_send()
74 nvkm_wr32(device, 0x10a4a0, (addr + 1) & 0x0f); in nvkm_pmu_send()
77 nvkm_wr32(device, 0x10a580, 0x00000000); in nvkm_pmu_send()
95 struct nvkm_device *device = subdev->device; in nvkm_pmu_recv() local
99 u32 addr = nvkm_rd32(device, 0x10a4cc); in nvkm_pmu_recv()
100 if (addr == nvkm_rd32(device, 0x10a4c8)) in nvkm_pmu_recv()
105 nvkm_wr32(device, 0x10a580, 0x00000002); in nvkm_pmu_recv()
106 } while (nvkm_rd32(device, 0x10a580) != 0x00000002); in nvkm_pmu_recv()
109 nvkm_wr32(device, 0x10a1c0, 0x02000000 | (((addr & 0x07) << 4) + in nvkm_pmu_recv()
111 process = nvkm_rd32(device, 0x10a1c4); in nvkm_pmu_recv()
112 message = nvkm_rd32(device, 0x10a1c4); in nvkm_pmu_recv()
113 data0 = nvkm_rd32(device, 0x10a1c4); in nvkm_pmu_recv()
114 data1 = nvkm_rd32(device, 0x10a1c4); in nvkm_pmu_recv()
115 nvkm_wr32(device, 0x10a4cc, (addr + 1) & 0x0f); in nvkm_pmu_recv()
118 nvkm_wr32(device, 0x10a580, 0x00000000); in nvkm_pmu_recv()
147 struct nvkm_device *device = pmu->subdev.device; in nvkm_pmu_intr() local
148 u32 disp = nvkm_rd32(device, 0x10a01c); in nvkm_pmu_intr()
149 u32 intr = nvkm_rd32(device, 0x10a008) & disp & ~(disp >> 16); in nvkm_pmu_intr()
152 u32 stat = nvkm_rd32(device, 0x10a16c); in nvkm_pmu_intr()
156 nvkm_rd32(device, 0x10a168)); in nvkm_pmu_intr()
157 nvkm_wr32(device, 0x10a16c, 0x00000000); in nvkm_pmu_intr()
164 nvkm_wr32(device, 0x10a004, 0x00000040); in nvkm_pmu_intr()
170 nvkm_rd32(device, 0x10a7a0), in nvkm_pmu_intr()
171 nvkm_rd32(device, 0x10a7a4)); in nvkm_pmu_intr()
172 nvkm_wr32(device, 0x10a004, 0x00000080); in nvkm_pmu_intr()
178 nvkm_wr32(device, 0x10a004, intr); in nvkm_pmu_intr()
186 struct nvkm_device *device = pmu->subdev.device; in nvkm_pmu_fini() local
188 nvkm_wr32(device, 0x10a014, 0x00000060); in nvkm_pmu_fini()
197 struct nvkm_device *device = pmu->subdev.device; in nvkm_pmu_init() local
201 nvkm_wr32(device, 0x10a014, 0x0000ffff); /* INTR_EN_CLR = ALL */ in nvkm_pmu_init()
202 nvkm_msec(device, 2000, in nvkm_pmu_init()
203 if (!nvkm_rd32(device, 0x10a04c)) in nvkm_pmu_init()
206 nvkm_mask(device, 0x000200, 0x00002000, 0x00000000); in nvkm_pmu_init()
207 nvkm_mask(device, 0x000200, 0x00002000, 0x00002000); in nvkm_pmu_init()
208 nvkm_rd32(device, 0x000200); in nvkm_pmu_init()
209 nvkm_msec(device, 2000, in nvkm_pmu_init()
210 if (!(nvkm_rd32(device, 0x10a10c) & 0x00000006)) in nvkm_pmu_init()
215 nvkm_wr32(device, 0x10a1c0, 0x01000000); in nvkm_pmu_init()
217 nvkm_wr32(device, 0x10a1c4, pmu->func->data.data[i]); in nvkm_pmu_init()
220 nvkm_wr32(device, 0x10a180, 0x01000000); in nvkm_pmu_init()
223 nvkm_wr32(device, 0x10a188, i >> 6); in nvkm_pmu_init()
224 nvkm_wr32(device, 0x10a184, pmu->func->code.data[i]); in nvkm_pmu_init()
228 nvkm_wr32(device, 0x10a10c, 0x00000000); in nvkm_pmu_init()
229 nvkm_wr32(device, 0x10a104, 0x00000000); in nvkm_pmu_init()
230 nvkm_wr32(device, 0x10a100, 0x00000002); in nvkm_pmu_init()
233 if (nvkm_msec(device, 2000, in nvkm_pmu_init()
234 if (nvkm_rd32(device, 0x10a4d0)) in nvkm_pmu_init()
238 pmu->send.base = nvkm_rd32(device, 0x10a4d0) & 0x0000ffff; in nvkm_pmu_init()
239 pmu->send.size = nvkm_rd32(device, 0x10a4d0) >> 16; in nvkm_pmu_init()
242 if (nvkm_msec(device, 2000, in nvkm_pmu_init()
243 if (nvkm_rd32(device, 0x10a4dc)) in nvkm_pmu_init()
247 pmu->recv.base = nvkm_rd32(device, 0x10a4dc) & 0x0000ffff; in nvkm_pmu_init()
248 pmu->recv.size = nvkm_rd32(device, 0x10a4dc) >> 16; in nvkm_pmu_init()
250 nvkm_wr32(device, 0x10a010, 0x000000e0); in nvkm_pmu_init()
269 nvkm_pmu_new_(const struct nvkm_pmu_func *func, struct nvkm_device *device, in nvkm_pmu_new_() argument
275 nvkm_subdev_ctor(&nvkm_pmu, device, index, 0, &pmu->subdev); in nvkm_pmu_new_()