diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/pmu_api.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_api.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_api.h b/drivers/gpu/nvgpu/gk20a/pmu_api.h index 2fdd1333..def7bbea 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_api.h +++ b/drivers/gpu/nvgpu/gk20a/pmu_api.h | |||
@@ -526,17 +526,77 @@ enum { | |||
526 | }; | 526 | }; |
527 | 527 | ||
528 | #define PMU_PG_PARAM_CMD_GR_INIT_PARAM 0x0 | 528 | #define PMU_PG_PARAM_CMD_GR_INIT_PARAM 0x0 |
529 | #define PMU_PG_PARAM_CMD_MS_INIT_PARAM 0x01 | ||
530 | #define PMU_PG_PARAM_CMD_MCLK_CHANGE 0x04 | ||
531 | #define PMU_PG_PARAM_CMD_POST_INIT 0x06 | ||
529 | 532 | ||
530 | #define PMU_PG_FEATURE_GR_SDIV_SLOWDOWN_ENABLED (1 << 0) | 533 | #define PMU_PG_FEATURE_GR_SDIV_SLOWDOWN_ENABLED (1 << 0) |
531 | #define PMU_PG_FEATURE_GR_POWER_GATING_ENABLED (1 << 2) | 534 | #define PMU_PG_FEATURE_GR_POWER_GATING_ENABLED (1 << 2) |
532 | #define PMU_PG_FEATURE_GR_RPPG_ENABLED (1 << 3) | 535 | #define PMU_PG_FEATURE_GR_RPPG_ENABLED (1 << 3) |
533 | 536 | ||
537 | #define NVGPU_PMU_GR_FEATURE_MASK_RPPG (1 << 3) | ||
538 | #define NVGPU_PMU_GR_FEATURE_MASK_ALL \ | ||
539 | ( \ | ||
540 | NVGPU_PMU_GR_FEATURE_MASK_RPPG \ | ||
541 | ) | ||
542 | |||
543 | #define NVGPU_PMU_MS_FEATURE_MASK_CLOCK_GATING (1 << 0) | ||
544 | #define NVGPU_PMU_MS_FEATURE_MASK_SW_ASR (1 << 1) | ||
545 | #define NVGPU_PMU_MS_FEATURE_MASK_RPPG (1 << 8) | ||
546 | #define NVGPU_PMU_MS_FEATURE_MASK_FB_TRAINING (1 << 5) | ||
547 | |||
548 | #define NVGPU_PMU_MS_FEATURE_MASK_ALL \ | ||
549 | ( \ | ||
550 | NVGPU_PMU_MS_FEATURE_MASK_CLOCK_GATING |\ | ||
551 | NVGPU_PMU_MS_FEATURE_MASK_SW_ASR |\ | ||
552 | NVGPU_PMU_MS_FEATURE_MASK_RPPG |\ | ||
553 | NVGPU_PMU_MS_FEATURE_MASK_FB_TRAINING \ | ||
554 | ) | ||
555 | |||
556 | #define PG_REQUEST_TYPE_GLOBAL 0x0 | ||
557 | #define PG_REQUEST_TYPE_PSTATE 0x1 | ||
558 | |||
534 | struct pmu_pg_cmd_gr_init_param { | 559 | struct pmu_pg_cmd_gr_init_param { |
535 | u8 cmd_type; | 560 | u8 cmd_type; |
536 | u16 sub_cmd_id; | 561 | u16 sub_cmd_id; |
537 | u8 featuremask; | 562 | u8 featuremask; |
538 | }; | 563 | }; |
539 | 564 | ||
565 | struct pmu_pg_cmd_ms_init_param { | ||
566 | u8 cmd_type; | ||
567 | u16 cmd_id; | ||
568 | u8 psi; | ||
569 | u8 idle_flipped_test_enabled; | ||
570 | u16 psiSettleTimeUs; | ||
571 | u8 rsvd[2]; | ||
572 | u32 support_mask; | ||
573 | u32 abort_timeout_us; | ||
574 | }; | ||
575 | |||
576 | struct pmu_pg_cmd_mclk_change { | ||
577 | u8 cmd_type; | ||
578 | u16 cmd_id; | ||
579 | u8 rsvd; | ||
580 | u32 data; | ||
581 | }; | ||
582 | |||
583 | #define PG_VOLT_RAIL_IDX_MAX 2 | ||
584 | |||
585 | struct pmu_pg_volt_rail { | ||
586 | u8 volt_rail_idx; | ||
587 | u8 sleep_volt_dev_idx; | ||
588 | u8 sleep_vfe_idx; | ||
589 | u32 sleep_voltage_uv; | ||
590 | u32 therm_vid0_cache; | ||
591 | u32 therm_vid1_cache; | ||
592 | }; | ||
593 | |||
594 | struct pmu_pg_cmd_post_init_param { | ||
595 | u8 cmd_type; | ||
596 | u16 cmd_id; | ||
597 | struct pmu_pg_volt_rail pg_volt_rail[PG_VOLT_RAIL_IDX_MAX]; | ||
598 | }; | ||
599 | |||
540 | struct pmu_pg_cmd_stat { | 600 | struct pmu_pg_cmd_stat { |
541 | u8 cmd_type; | 601 | u8 cmd_type; |
542 | u8 engine_id; | 602 | u8 engine_id; |
@@ -553,6 +613,9 @@ struct pmu_pg_cmd { | |||
553 | struct pmu_pg_cmd_eng_buf_load_v2 eng_buf_load_v2; | 613 | struct pmu_pg_cmd_eng_buf_load_v2 eng_buf_load_v2; |
554 | struct pmu_pg_cmd_stat stat; | 614 | struct pmu_pg_cmd_stat stat; |
555 | struct pmu_pg_cmd_gr_init_param gr_init_param; | 615 | struct pmu_pg_cmd_gr_init_param gr_init_param; |
616 | struct pmu_pg_cmd_ms_init_param ms_init_param; | ||
617 | struct pmu_pg_cmd_mclk_change mclk_change; | ||
618 | struct pmu_pg_cmd_post_init_param post_init; | ||
556 | /* TBD: other pg commands */ | 619 | /* TBD: other pg commands */ |
557 | union pmu_ap_cmd ap_cmd; | 620 | union pmu_ap_cmd ap_cmd; |
558 | struct nv_pmu_rppg_cmd rppg_cmd; | 621 | struct nv_pmu_rppg_cmd rppg_cmd; |