| .. | .. |
|---|
| 241 | 241 | return 0; |
|---|
| 242 | 242 | } |
|---|
| 243 | 243 | |
|---|
| 244 | +const struct nvkm_falcon_func |
|---|
| 245 | +gt215_pmu_flcn = { |
|---|
| 246 | + .debug = 0xc08, |
|---|
| 247 | + .fbif = 0xe00, |
|---|
| 248 | + .load_imem = nvkm_falcon_v1_load_imem, |
|---|
| 249 | + .load_dmem = nvkm_falcon_v1_load_dmem, |
|---|
| 250 | + .read_dmem = nvkm_falcon_v1_read_dmem, |
|---|
| 251 | + .bind_context = nvkm_falcon_v1_bind_context, |
|---|
| 252 | + .wait_for_halt = nvkm_falcon_v1_wait_for_halt, |
|---|
| 253 | + .clear_interrupt = nvkm_falcon_v1_clear_interrupt, |
|---|
| 254 | + .set_start_addr = nvkm_falcon_v1_set_start_addr, |
|---|
| 255 | + .start = nvkm_falcon_v1_start, |
|---|
| 256 | + .enable = nvkm_falcon_v1_enable, |
|---|
| 257 | + .disable = nvkm_falcon_v1_disable, |
|---|
| 258 | + .cmdq = { 0x4a0, 0x4b0, 4 }, |
|---|
| 259 | + .msgq = { 0x4c8, 0x4cc, 0 }, |
|---|
| 260 | +}; |
|---|
| 261 | + |
|---|
| 244 | 262 | static const struct nvkm_pmu_func |
|---|
| 245 | 263 | gt215_pmu = { |
|---|
| 264 | + .flcn = >215_pmu_flcn, |
|---|
| 246 | 265 | .code.data = gt215_pmu_code, |
|---|
| 247 | 266 | .code.size = sizeof(gt215_pmu_code), |
|---|
| 248 | 267 | .data.data = gt215_pmu_data, |
|---|
| .. | .. |
|---|
| 256 | 275 | .recv = gt215_pmu_recv, |
|---|
| 257 | 276 | }; |
|---|
| 258 | 277 | |
|---|
| 278 | +static const struct nvkm_pmu_fwif |
|---|
| 279 | +gt215_pmu_fwif[] = { |
|---|
| 280 | + { -1, gf100_pmu_nofw, >215_pmu }, |
|---|
| 281 | + {} |
|---|
| 282 | +}; |
|---|
| 283 | + |
|---|
| 259 | 284 | int |
|---|
| 260 | 285 | gt215_pmu_new(struct nvkm_device *device, int index, struct nvkm_pmu **ppmu) |
|---|
| 261 | 286 | { |
|---|
| 262 | | - return nvkm_pmu_new_(>215_pmu, device, index, ppmu); |
|---|
| 287 | + return nvkm_pmu_new_(gt215_pmu_fwif, device, index, ppmu); |
|---|
| 263 | 288 | } |
|---|