diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gv11b_gating_reglist.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gv11b_gating_reglist.c b/drivers/gpu/nvgpu/gv11b/gv11b_gating_reglist.c index 13d529fe..390d89c2 100644 --- a/drivers/gpu/nvgpu/gv11b/gv11b_gating_reglist.c +++ b/drivers/gpu/nvgpu/gv11b/gv11b_gating_reglist.c | |||
@@ -283,6 +283,10 @@ void gv11b_slcg_bus_load_gating_prod(struct gk20a *g, | |||
283 | { | 283 | { |
284 | u32 i; | 284 | u32 i; |
285 | u32 size = sizeof(gv11b_slcg_bus) / sizeof(struct gating_desc); | 285 | u32 size = sizeof(gv11b_slcg_bus) / sizeof(struct gating_desc); |
286 | |||
287 | if (!g->slcg_enabled) | ||
288 | return; | ||
289 | |||
286 | for (i = 0; i < size; i++) { | 290 | for (i = 0; i < size; i++) { |
287 | if (prod) | 291 | if (prod) |
288 | gk20a_writel(g, gv11b_slcg_bus[i].addr, | 292 | gk20a_writel(g, gv11b_slcg_bus[i].addr, |
@@ -298,6 +302,10 @@ void gv11b_slcg_ce2_load_gating_prod(struct gk20a *g, | |||
298 | { | 302 | { |
299 | u32 i; | 303 | u32 i; |
300 | u32 size = sizeof(gv11b_slcg_ce2) / sizeof(struct gating_desc); | 304 | u32 size = sizeof(gv11b_slcg_ce2) / sizeof(struct gating_desc); |
305 | |||
306 | if (!g->slcg_enabled) | ||
307 | return; | ||
308 | |||
301 | for (i = 0; i < size; i++) { | 309 | for (i = 0; i < size; i++) { |
302 | if (prod) | 310 | if (prod) |
303 | gk20a_writel(g, gv11b_slcg_ce2[i].addr, | 311 | gk20a_writel(g, gv11b_slcg_ce2[i].addr, |
@@ -313,6 +321,10 @@ void gv11b_slcg_chiplet_load_gating_prod(struct gk20a *g, | |||
313 | { | 321 | { |
314 | u32 i; | 322 | u32 i; |
315 | u32 size = sizeof(gv11b_slcg_chiplet) / sizeof(struct gating_desc); | 323 | u32 size = sizeof(gv11b_slcg_chiplet) / sizeof(struct gating_desc); |
324 | |||
325 | if (!g->slcg_enabled) | ||
326 | return; | ||
327 | |||
316 | for (i = 0; i < size; i++) { | 328 | for (i = 0; i < size; i++) { |
317 | if (prod) | 329 | if (prod) |
318 | gk20a_writel(g, gv11b_slcg_chiplet[i].addr, | 330 | gk20a_writel(g, gv11b_slcg_chiplet[i].addr, |
@@ -333,6 +345,10 @@ void gv11b_slcg_fb_load_gating_prod(struct gk20a *g, | |||
333 | { | 345 | { |
334 | u32 i; | 346 | u32 i; |
335 | u32 size = sizeof(gv11b_slcg_fb) / sizeof(struct gating_desc); | 347 | u32 size = sizeof(gv11b_slcg_fb) / sizeof(struct gating_desc); |
348 | |||
349 | if (!g->slcg_enabled) | ||
350 | return; | ||
351 | |||
336 | for (i = 0; i < size; i++) { | 352 | for (i = 0; i < size; i++) { |
337 | if (prod) | 353 | if (prod) |
338 | gk20a_writel(g, gv11b_slcg_fb[i].addr, | 354 | gk20a_writel(g, gv11b_slcg_fb[i].addr, |
@@ -348,6 +364,10 @@ void gv11b_slcg_fifo_load_gating_prod(struct gk20a *g, | |||
348 | { | 364 | { |
349 | u32 i; | 365 | u32 i; |
350 | u32 size = sizeof(gv11b_slcg_fifo) / sizeof(struct gating_desc); | 366 | u32 size = sizeof(gv11b_slcg_fifo) / sizeof(struct gating_desc); |
367 | |||
368 | if (!g->slcg_enabled) | ||
369 | return; | ||
370 | |||
351 | for (i = 0; i < size; i++) { | 371 | for (i = 0; i < size; i++) { |
352 | if (prod) | 372 | if (prod) |
353 | gk20a_writel(g, gv11b_slcg_fifo[i].addr, | 373 | gk20a_writel(g, gv11b_slcg_fifo[i].addr, |
@@ -363,6 +383,10 @@ void gr_gv11b_slcg_gr_load_gating_prod(struct gk20a *g, | |||
363 | { | 383 | { |
364 | u32 i; | 384 | u32 i; |
365 | u32 size = sizeof(gv11b_slcg_gr) / sizeof(struct gating_desc); | 385 | u32 size = sizeof(gv11b_slcg_gr) / sizeof(struct gating_desc); |
386 | |||
387 | if (!g->slcg_enabled) | ||
388 | return; | ||
389 | |||
366 | for (i = 0; i < size; i++) { | 390 | for (i = 0; i < size; i++) { |
367 | if (prod) | 391 | if (prod) |
368 | gk20a_writel(g, gv11b_slcg_gr[i].addr, | 392 | gk20a_writel(g, gv11b_slcg_gr[i].addr, |
@@ -378,6 +402,10 @@ void ltc_gv11b_slcg_ltc_load_gating_prod(struct gk20a *g, | |||
378 | { | 402 | { |
379 | u32 i; | 403 | u32 i; |
380 | u32 size = sizeof(gv11b_slcg_ltc) / sizeof(struct gating_desc); | 404 | u32 size = sizeof(gv11b_slcg_ltc) / sizeof(struct gating_desc); |
405 | |||
406 | if (!g->slcg_enabled) | ||
407 | return; | ||
408 | |||
381 | for (i = 0; i < size; i++) { | 409 | for (i = 0; i < size; i++) { |
382 | if (prod) | 410 | if (prod) |
383 | gk20a_writel(g, gv11b_slcg_ltc[i].addr, | 411 | gk20a_writel(g, gv11b_slcg_ltc[i].addr, |
@@ -393,6 +421,10 @@ void gv11b_slcg_perf_load_gating_prod(struct gk20a *g, | |||
393 | { | 421 | { |
394 | u32 i; | 422 | u32 i; |
395 | u32 size = sizeof(gv11b_slcg_perf) / sizeof(struct gating_desc); | 423 | u32 size = sizeof(gv11b_slcg_perf) / sizeof(struct gating_desc); |
424 | |||
425 | if (!g->slcg_enabled) | ||
426 | return; | ||
427 | |||
396 | for (i = 0; i < size; i++) { | 428 | for (i = 0; i < size; i++) { |
397 | if (prod) | 429 | if (prod) |
398 | gk20a_writel(g, gv11b_slcg_perf[i].addr, | 430 | gk20a_writel(g, gv11b_slcg_perf[i].addr, |
@@ -408,6 +440,10 @@ void gv11b_slcg_priring_load_gating_prod(struct gk20a *g, | |||
408 | { | 440 | { |
409 | u32 i; | 441 | u32 i; |
410 | u32 size = sizeof(gv11b_slcg_priring) / sizeof(struct gating_desc); | 442 | u32 size = sizeof(gv11b_slcg_priring) / sizeof(struct gating_desc); |
443 | |||
444 | if (!g->slcg_enabled) | ||
445 | return; | ||
446 | |||
411 | for (i = 0; i < size; i++) { | 447 | for (i = 0; i < size; i++) { |
412 | if (prod) | 448 | if (prod) |
413 | gk20a_writel(g, gv11b_slcg_priring[i].addr, | 449 | gk20a_writel(g, gv11b_slcg_priring[i].addr, |
@@ -423,6 +459,10 @@ void gv11b_slcg_pwr_csb_load_gating_prod(struct gk20a *g, | |||
423 | { | 459 | { |
424 | u32 i; | 460 | u32 i; |
425 | u32 size = sizeof(gv11b_slcg_pwr_csb) / sizeof(struct gating_desc); | 461 | u32 size = sizeof(gv11b_slcg_pwr_csb) / sizeof(struct gating_desc); |
462 | |||
463 | if (!g->slcg_enabled) | ||
464 | return; | ||
465 | |||
426 | for (i = 0; i < size; i++) { | 466 | for (i = 0; i < size; i++) { |
427 | if (prod) | 467 | if (prod) |
428 | gk20a_writel(g, gv11b_slcg_pwr_csb[i].addr, | 468 | gk20a_writel(g, gv11b_slcg_pwr_csb[i].addr, |
@@ -438,6 +478,10 @@ void gv11b_slcg_pmu_load_gating_prod(struct gk20a *g, | |||
438 | { | 478 | { |
439 | u32 i; | 479 | u32 i; |
440 | u32 size = sizeof(gv11b_slcg_pmu) / sizeof(struct gating_desc); | 480 | u32 size = sizeof(gv11b_slcg_pmu) / sizeof(struct gating_desc); |
481 | |||
482 | if (!g->slcg_enabled) | ||
483 | return; | ||
484 | |||
441 | for (i = 0; i < size; i++) { | 485 | for (i = 0; i < size; i++) { |
442 | if (prod) | 486 | if (prod) |
443 | gk20a_writel(g, gv11b_slcg_pmu[i].addr, | 487 | gk20a_writel(g, gv11b_slcg_pmu[i].addr, |
@@ -453,6 +497,10 @@ void gv11b_slcg_therm_load_gating_prod(struct gk20a *g, | |||
453 | { | 497 | { |
454 | u32 i; | 498 | u32 i; |
455 | u32 size = sizeof(gv11b_slcg_therm) / sizeof(struct gating_desc); | 499 | u32 size = sizeof(gv11b_slcg_therm) / sizeof(struct gating_desc); |
500 | |||
501 | if (!g->slcg_enabled) | ||
502 | return; | ||
503 | |||
456 | for (i = 0; i < size; i++) { | 504 | for (i = 0; i < size; i++) { |
457 | if (prod) | 505 | if (prod) |
458 | gk20a_writel(g, gv11b_slcg_therm[i].addr, | 506 | gk20a_writel(g, gv11b_slcg_therm[i].addr, |
@@ -468,6 +516,10 @@ void gv11b_slcg_xbar_load_gating_prod(struct gk20a *g, | |||
468 | { | 516 | { |
469 | u32 i; | 517 | u32 i; |
470 | u32 size = sizeof(gv11b_slcg_xbar) / sizeof(struct gating_desc); | 518 | u32 size = sizeof(gv11b_slcg_xbar) / sizeof(struct gating_desc); |
519 | |||
520 | if (!g->slcg_enabled) | ||
521 | return; | ||
522 | |||
471 | for (i = 0; i < size; i++) { | 523 | for (i = 0; i < size; i++) { |
472 | if (prod) | 524 | if (prod) |
473 | gk20a_writel(g, gv11b_slcg_xbar[i].addr, | 525 | gk20a_writel(g, gv11b_slcg_xbar[i].addr, |
@@ -483,6 +535,10 @@ void gv11b_blcg_bus_load_gating_prod(struct gk20a *g, | |||
483 | { | 535 | { |
484 | u32 i; | 536 | u32 i; |
485 | u32 size = sizeof(gv11b_blcg_bus) / sizeof(struct gating_desc); | 537 | u32 size = sizeof(gv11b_blcg_bus) / sizeof(struct gating_desc); |
538 | |||
539 | if (!g->blcg_enabled) | ||
540 | return; | ||
541 | |||
486 | for (i = 0; i < size; i++) { | 542 | for (i = 0; i < size; i++) { |
487 | if (prod) | 543 | if (prod) |
488 | gk20a_writel(g, gv11b_blcg_bus[i].addr, | 544 | gk20a_writel(g, gv11b_blcg_bus[i].addr, |
@@ -498,6 +554,10 @@ void gv11b_blcg_ce_load_gating_prod(struct gk20a *g, | |||
498 | { | 554 | { |
499 | u32 i; | 555 | u32 i; |
500 | u32 size = sizeof(gv11b_blcg_ce) / sizeof(struct gating_desc); | 556 | u32 size = sizeof(gv11b_blcg_ce) / sizeof(struct gating_desc); |
557 | |||
558 | if (!g->blcg_enabled) | ||
559 | return; | ||
560 | |||
501 | for (i = 0; i < size; i++) { | 561 | for (i = 0; i < size; i++) { |
502 | if (prod) | 562 | if (prod) |
503 | gk20a_writel(g, gv11b_blcg_ce[i].addr, | 563 | gk20a_writel(g, gv11b_blcg_ce[i].addr, |
@@ -513,6 +573,10 @@ void gv11b_blcg_ctxsw_firmware_load_gating_prod(struct gk20a *g, | |||
513 | { | 573 | { |
514 | u32 i; | 574 | u32 i; |
515 | u32 size = sizeof(gv11b_blcg_ctxsw_prog) / sizeof(struct gating_desc); | 575 | u32 size = sizeof(gv11b_blcg_ctxsw_prog) / sizeof(struct gating_desc); |
576 | |||
577 | if (!g->blcg_enabled) | ||
578 | return; | ||
579 | |||
516 | for (i = 0; i < size; i++) { | 580 | for (i = 0; i < size; i++) { |
517 | if (prod) | 581 | if (prod) |
518 | gk20a_writel(g, gv11b_blcg_ctxsw_prog[i].addr, | 582 | gk20a_writel(g, gv11b_blcg_ctxsw_prog[i].addr, |
@@ -528,6 +592,10 @@ void gv11b_blcg_fb_load_gating_prod(struct gk20a *g, | |||
528 | { | 592 | { |
529 | u32 i; | 593 | u32 i; |
530 | u32 size = sizeof(gv11b_blcg_fb) / sizeof(struct gating_desc); | 594 | u32 size = sizeof(gv11b_blcg_fb) / sizeof(struct gating_desc); |
595 | |||
596 | if (!g->blcg_enabled) | ||
597 | return; | ||
598 | |||
531 | for (i = 0; i < size; i++) { | 599 | for (i = 0; i < size; i++) { |
532 | if (prod) | 600 | if (prod) |
533 | gk20a_writel(g, gv11b_blcg_fb[i].addr, | 601 | gk20a_writel(g, gv11b_blcg_fb[i].addr, |
@@ -543,6 +611,10 @@ void gv11b_blcg_fifo_load_gating_prod(struct gk20a *g, | |||
543 | { | 611 | { |
544 | u32 i; | 612 | u32 i; |
545 | u32 size = sizeof(gv11b_blcg_fifo) / sizeof(struct gating_desc); | 613 | u32 size = sizeof(gv11b_blcg_fifo) / sizeof(struct gating_desc); |
614 | |||
615 | if (!g->blcg_enabled) | ||
616 | return; | ||
617 | |||
546 | for (i = 0; i < size; i++) { | 618 | for (i = 0; i < size; i++) { |
547 | if (prod) | 619 | if (prod) |
548 | gk20a_writel(g, gv11b_blcg_fifo[i].addr, | 620 | gk20a_writel(g, gv11b_blcg_fifo[i].addr, |
@@ -558,6 +630,10 @@ void gv11b_blcg_gr_load_gating_prod(struct gk20a *g, | |||
558 | { | 630 | { |
559 | u32 i; | 631 | u32 i; |
560 | u32 size = sizeof(gv11b_blcg_gr) / sizeof(struct gating_desc); | 632 | u32 size = sizeof(gv11b_blcg_gr) / sizeof(struct gating_desc); |
633 | |||
634 | if (!g->blcg_enabled) | ||
635 | return; | ||
636 | |||
561 | for (i = 0; i < size; i++) { | 637 | for (i = 0; i < size; i++) { |
562 | if (prod) | 638 | if (prod) |
563 | gk20a_writel(g, gv11b_blcg_gr[i].addr, | 639 | gk20a_writel(g, gv11b_blcg_gr[i].addr, |
@@ -573,6 +649,10 @@ void gv11b_blcg_ltc_load_gating_prod(struct gk20a *g, | |||
573 | { | 649 | { |
574 | u32 i; | 650 | u32 i; |
575 | u32 size = sizeof(gv11b_blcg_ltc) / sizeof(struct gating_desc); | 651 | u32 size = sizeof(gv11b_blcg_ltc) / sizeof(struct gating_desc); |
652 | |||
653 | if (!g->blcg_enabled) | ||
654 | return; | ||
655 | |||
576 | for (i = 0; i < size; i++) { | 656 | for (i = 0; i < size; i++) { |
577 | if (prod) | 657 | if (prod) |
578 | gk20a_writel(g, gv11b_blcg_ltc[i].addr, | 658 | gk20a_writel(g, gv11b_blcg_ltc[i].addr, |
@@ -588,6 +668,10 @@ void gv11b_blcg_pwr_csb_load_gating_prod(struct gk20a *g, | |||
588 | { | 668 | { |
589 | u32 i; | 669 | u32 i; |
590 | u32 size = sizeof(gv11b_blcg_pwr_csb) / sizeof(struct gating_desc); | 670 | u32 size = sizeof(gv11b_blcg_pwr_csb) / sizeof(struct gating_desc); |
671 | |||
672 | if (!g->blcg_enabled) | ||
673 | return; | ||
674 | |||
591 | for (i = 0; i < size; i++) { | 675 | for (i = 0; i < size; i++) { |
592 | if (prod) | 676 | if (prod) |
593 | gk20a_writel(g, gv11b_blcg_pwr_csb[i].addr, | 677 | gk20a_writel(g, gv11b_blcg_pwr_csb[i].addr, |
@@ -603,6 +687,10 @@ void gv11b_blcg_pmu_load_gating_prod(struct gk20a *g, | |||
603 | { | 687 | { |
604 | u32 i; | 688 | u32 i; |
605 | u32 size = sizeof(gv11b_blcg_pmu) / sizeof(struct gating_desc); | 689 | u32 size = sizeof(gv11b_blcg_pmu) / sizeof(struct gating_desc); |
690 | |||
691 | if (!g->blcg_enabled) | ||
692 | return; | ||
693 | |||
606 | for (i = 0; i < size; i++) { | 694 | for (i = 0; i < size; i++) { |
607 | if (prod) | 695 | if (prod) |
608 | gk20a_writel(g, gv11b_blcg_pmu[i].addr, | 696 | gk20a_writel(g, gv11b_blcg_pmu[i].addr, |
@@ -618,6 +706,10 @@ void gv11b_blcg_xbar_load_gating_prod(struct gk20a *g, | |||
618 | { | 706 | { |
619 | u32 i; | 707 | u32 i; |
620 | u32 size = sizeof(gv11b_blcg_xbar) / sizeof(struct gating_desc); | 708 | u32 size = sizeof(gv11b_blcg_xbar) / sizeof(struct gating_desc); |
709 | |||
710 | if (!g->blcg_enabled) | ||
711 | return; | ||
712 | |||
621 | for (i = 0; i < size; i++) { | 713 | for (i = 0; i < size; i++) { |
622 | if (prod) | 714 | if (prod) |
623 | gk20a_writel(g, gv11b_blcg_xbar[i].addr, | 715 | gk20a_writel(g, gv11b_blcg_xbar[i].addr, |
@@ -633,6 +725,10 @@ void gr_gv11b_pg_gr_load_gating_prod(struct gk20a *g, | |||
633 | { | 725 | { |
634 | u32 i; | 726 | u32 i; |
635 | u32 size = sizeof(gv11b_pg_gr) / sizeof(struct gating_desc); | 727 | u32 size = sizeof(gv11b_pg_gr) / sizeof(struct gating_desc); |
728 | |||
729 | if (!g->blcg_enabled) | ||
730 | return; | ||
731 | |||
636 | for (i = 0; i < size; i++) { | 732 | for (i = 0; i < size; i++) { |
637 | if (prod) | 733 | if (prod) |
638 | gk20a_writel(g, gv11b_pg_gr[i].addr, | 734 | gk20a_writel(g, gv11b_pg_gr[i].addr, |