/Linux-v5.15/drivers/gpu/drm/amd/pm/swsmu/ |
D | smu_internal.h | 30 #define smu_ppt_funcs(intf, ret, smu, args...) \ argument 31 ((smu)->ppt_funcs ? ((smu)->ppt_funcs->intf ? (smu)->ppt_funcs->intf(smu, ##args) : ret) : -EINVAL) 33 #define smu_init_microcode(smu) smu_ppt_funcs(init_microcode, 0, smu) argument 34 #define smu_fini_microcode(smu) smu_ppt_funcs(fini_microcode, 0, smu) argument 35 #define smu_init_smc_tables(smu) smu_ppt_funcs(init_smc_tables, 0, smu) argument 36 #define smu_fini_smc_tables(smu) smu_ppt_funcs(fini_smc_tables, 0, smu) argument 37 #define smu_init_power(smu) smu_ppt_funcs(init_power, 0, smu) argument 38 #define smu_fini_power(smu) smu_ppt_funcs(fini_power, 0, smu) argument 39 #define smu_setup_pptable(smu) smu_ppt_funcs(setup_pptable, 0, smu) argument 40 #define smu_powergate_sdma(smu, gate) smu_ppt_funcs(powergate_sdma, 0, smu, gate) argument [all …]
|
D | amdgpu_smu.c | 53 static int smu_force_smuclk_levels(struct smu_context *smu, 56 static int smu_handle_task(struct smu_context *smu, 60 static int smu_reset(struct smu_context *smu); 62 static int smu_set_fan_control_mode(struct smu_context *smu, int value); 65 static int smu_set_gfx_cgpg(struct smu_context *smu, bool enabled); 70 struct smu_context *smu = handle; in smu_sys_get_pp_feature_mask() local 73 if (!smu->pm_enabled || !smu->adev->pm.dpm_enabled) in smu_sys_get_pp_feature_mask() 76 mutex_lock(&smu->mutex); in smu_sys_get_pp_feature_mask() 78 size = smu_get_pp_feature_mask(smu, buf); in smu_sys_get_pp_feature_mask() 80 mutex_unlock(&smu->mutex); in smu_sys_get_pp_feature_mask() [all …]
|
D | smu_cmn.c | 62 static const char *smu_get_message_name(struct smu_context *smu, in smu_get_message_name() argument 71 static void smu_cmn_read_arg(struct smu_context *smu, in smu_cmn_read_arg() argument 74 struct amdgpu_device *adev = smu->adev; in smu_cmn_read_arg() 115 static u32 __smu_cmn_poll_stat(struct smu_context *smu) in __smu_cmn_poll_stat() argument 117 struct amdgpu_device *adev = smu->adev; in __smu_cmn_poll_stat() 132 static void __smu_cmn_reg_print_error(struct smu_context *smu, in __smu_cmn_reg_print_error() argument 138 struct amdgpu_device *adev = smu->adev; in __smu_cmn_reg_print_error() 139 const char *message = smu_get_message_name(smu, msg); in __smu_cmn_reg_print_error() 183 static int __smu_cmn_reg2errno(struct smu_context *smu, u32 reg_c2pmsg_90) in __smu_cmn_reg2errno() argument 228 static void __smu_cmn_send_msg(struct smu_context *smu, in __smu_cmn_send_msg() argument [all …]
|
D | smu_cmn.h | 29 int smu_cmn_send_msg_without_waiting(struct smu_context *smu, 32 int smu_cmn_send_smc_msg_with_param(struct smu_context *smu, 37 int smu_cmn_send_smc_msg(struct smu_context *smu, 41 int smu_cmn_wait_for_response(struct smu_context *smu); 43 int smu_cmn_to_asic_specific_index(struct smu_context *smu, 47 int smu_cmn_feature_is_supported(struct smu_context *smu, 50 int smu_cmn_feature_is_enabled(struct smu_context *smu, 53 bool smu_cmn_clk_dpm_is_enabled(struct smu_context *smu, 56 int smu_cmn_get_enabled_mask(struct smu_context *smu, 60 int smu_cmn_get_enabled_32_bits_mask(struct smu_context *smu, [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/pm/swsmu/smu12/ |
D | smu_v12_0.c | 58 int smu_v12_0_check_fw_status(struct smu_context *smu) in smu_v12_0_check_fw_status() argument 60 struct amdgpu_device *adev = smu->adev; in smu_v12_0_check_fw_status() 73 int smu_v12_0_check_fw_version(struct smu_context *smu) in smu_v12_0_check_fw_version() argument 75 struct amdgpu_device *adev = smu->adev; in smu_v12_0_check_fw_version() 81 ret = smu_cmn_get_smc_version(smu, &if_version, &smu_version); in smu_v12_0_check_fw_version() 88 if (smu->is_apu) in smu_v12_0_check_fw_version() 99 if (if_version != smu->smc_driver_if_version) { in smu_v12_0_check_fw_version() 100 dev_info(smu->adev->dev, "smu driver if version = 0x%08x, smu fw if version = 0x%08x, " in smu_v12_0_check_fw_version() 102 smu->smc_driver_if_version, if_version, in smu_v12_0_check_fw_version() 104 dev_warn(smu->adev->dev, "SMU driver if version not matched\n"); in smu_v12_0_check_fw_version() [all …]
|
D | renoir_ppt.c | 147 static int renoir_init_smc_tables(struct smu_context *smu) in renoir_init_smc_tables() argument 149 struct smu_table_context *smu_table = &smu->smu_table; in renoir_init_smc_tables() 193 static int renoir_get_dpm_clk_limited(struct smu_context *smu, enum smu_clk_type clk_type, in renoir_get_dpm_clk_limited() argument 196 DpmClocks_t *clk_table = smu->smu_table.clocks_table; in renoir_get_dpm_clk_limited() 241 static int renoir_get_profiling_clk_mask(struct smu_context *smu, in renoir_get_profiling_clk_mask() argument 271 static int renoir_get_dpm_ultimate_freq(struct smu_context *smu, in renoir_get_dpm_ultimate_freq() argument 280 if (!smu_cmn_clk_dpm_is_enabled(smu, clk_type)) { in renoir_get_dpm_ultimate_freq() 284 clock_limit = smu->smu_table.boot_values.uclk; in renoir_get_dpm_ultimate_freq() 288 clock_limit = smu->smu_table.boot_values.gfxclk; in renoir_get_dpm_ultimate_freq() 291 clock_limit = smu->smu_table.boot_values.socclk; in renoir_get_dpm_ultimate_freq() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/pm/swsmu/smu11/ |
D | vangogh_ppt.c | 207 static int vangogh_tables_init(struct smu_context *smu) in vangogh_tables_init() argument 209 struct smu_table_context *smu_table = &smu->smu_table; in vangogh_tables_init() 211 struct amdgpu_device *adev = smu->adev; in vangogh_tables_init() 215 ret = smu_cmn_get_smc_version(smu, &if_version, NULL); in vangogh_tables_init() 268 static int vangogh_get_legacy_smu_metrics_data(struct smu_context *smu, in vangogh_get_legacy_smu_metrics_data() argument 272 struct smu_table_context *smu_table = &smu->smu_table; in vangogh_get_legacy_smu_metrics_data() 276 mutex_lock(&smu->metrics_lock); in vangogh_get_legacy_smu_metrics_data() 278 ret = smu_cmn_get_metrics_table_locked(smu, in vangogh_get_legacy_smu_metrics_data() 282 mutex_unlock(&smu->metrics_lock); in vangogh_get_legacy_smu_metrics_data() 331 smu->cpu_core_num * sizeof(uint16_t)); in vangogh_get_legacy_smu_metrics_data() [all …]
|
D | sienna_cichlid_ppt.c | 77 if (smu->adev->asic_type == CHIP_BEIGE_GOBY)\ 78 (*member) = (smu->smu_table.driver_pptable + offsetof(PPTable_beige_goby_t, field));\ 80 (*member) = (smu->smu_table.driver_pptable + offsetof(PPTable_t, field));\ 83 static int get_table_size(struct smu_context *smu) in get_table_size() argument 85 if (smu->adev->asic_type == CHIP_BEIGE_GOBY) in get_table_size() 264 sienna_cichlid_get_allowed_feature_mask(struct smu_context *smu, in sienna_cichlid_get_allowed_feature_mask() argument 267 struct amdgpu_device *adev = smu->adev; in sienna_cichlid_get_allowed_feature_mask() 328 if (smu->adev->pg_flags & AMD_PG_SUPPORT_ATHUB) in sienna_cichlid_get_allowed_feature_mask() 331 if (smu->adev->pg_flags & AMD_PG_SUPPORT_MMHUB) in sienna_cichlid_get_allowed_feature_mask() 334 if (smu->adev->pg_flags & AMD_PG_SUPPORT_VCN || in sienna_cichlid_get_allowed_feature_mask() [all …]
|
D | smu_v11_0.c | 82 int smu_v11_0_init_microcode(struct smu_context *smu) in smu_v11_0_init_microcode() argument 84 struct amdgpu_device *adev = smu->adev; in smu_v11_0_init_microcode() 159 void smu_v11_0_fini_microcode(struct smu_context *smu) in smu_v11_0_fini_microcode() argument 161 struct amdgpu_device *adev = smu->adev; in smu_v11_0_fini_microcode() 168 int smu_v11_0_load_microcode(struct smu_context *smu) in smu_v11_0_load_microcode() argument 170 struct amdgpu_device *adev = smu->adev; in smu_v11_0_load_microcode() 208 int smu_v11_0_check_fw_status(struct smu_context *smu) in smu_v11_0_check_fw_status() argument 210 struct amdgpu_device *adev = smu->adev; in smu_v11_0_check_fw_status() 223 int smu_v11_0_check_fw_version(struct smu_context *smu) in smu_v11_0_check_fw_version() argument 225 struct amdgpu_device *adev = smu->adev; in smu_v11_0_check_fw_version() [all …]
|
D | arcturus_ppt.c | 252 static int arcturus_tables_init(struct smu_context *smu) in arcturus_tables_init() argument 254 struct smu_table_context *smu_table = &smu->smu_table; in arcturus_tables_init() 288 static int arcturus_allocate_dpm_context(struct smu_context *smu) in arcturus_allocate_dpm_context() argument 290 struct smu_dpm_context *smu_dpm = &smu->smu_dpm; in arcturus_allocate_dpm_context() 311 static int arcturus_init_smc_tables(struct smu_context *smu) in arcturus_init_smc_tables() argument 315 ret = arcturus_tables_init(smu); in arcturus_init_smc_tables() 319 ret = arcturus_allocate_dpm_context(smu); in arcturus_init_smc_tables() 323 return smu_v11_0_init_smc_tables(smu); in arcturus_init_smc_tables() 327 arcturus_get_allowed_feature_mask(struct smu_context *smu, in arcturus_get_allowed_feature_mask() argument 339 static int arcturus_set_default_dpm_table(struct smu_context *smu) in arcturus_set_default_dpm_table() argument [all …]
|
D | navi10_ppt.c | 263 static bool is_asic_secure(struct smu_context *smu) in is_asic_secure() argument 265 struct amdgpu_device *adev = smu->adev; in is_asic_secure() 279 navi10_get_allowed_feature_mask(struct smu_context *smu, in navi10_get_allowed_feature_mask() argument 282 struct amdgpu_device *adev = smu->adev; in navi10_get_allowed_feature_mask() 328 if (smu->adev->pg_flags & AMD_PG_SUPPORT_MMHUB) in navi10_get_allowed_feature_mask() 331 if (smu->adev->pg_flags & AMD_PG_SUPPORT_ATHUB) in navi10_get_allowed_feature_mask() 334 if (smu->adev->pg_flags & AMD_PG_SUPPORT_VCN) in navi10_get_allowed_feature_mask() 337 if (smu->adev->pg_flags & AMD_PG_SUPPORT_JPEG) in navi10_get_allowed_feature_mask() 340 if (smu->dc_controlled_by_gpio) in navi10_get_allowed_feature_mask() 347 if (!(is_asic_secure(smu) && in navi10_get_allowed_feature_mask() [all …]
|
D | cyan_skillfish_ppt.c | 86 static int cyan_skillfish_tables_init(struct smu_context *smu) in cyan_skillfish_tables_init() argument 88 struct smu_table_context *smu_table = &smu->smu_table; in cyan_skillfish_tables_init() 116 static int cyan_skillfish_init_smc_tables(struct smu_context *smu) in cyan_skillfish_init_smc_tables() argument 120 ret = cyan_skillfish_tables_init(smu); in cyan_skillfish_init_smc_tables() 124 return smu_v11_0_init_smc_tables(smu); in cyan_skillfish_init_smc_tables() 127 static int cyan_skillfish_finit_smc_tables(struct smu_context *smu) in cyan_skillfish_finit_smc_tables() argument 129 struct smu_table_context *smu_table = &smu->smu_table; in cyan_skillfish_finit_smc_tables() 144 cyan_skillfish_get_smu_metrics_data(struct smu_context *smu, in cyan_skillfish_get_smu_metrics_data() argument 148 struct smu_table_context *smu_table = &smu->smu_table; in cyan_skillfish_get_smu_metrics_data() 152 mutex_lock(&smu->metrics_lock); in cyan_skillfish_get_smu_metrics_data() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/pm/inc/ |
D | smu_v13_0.h | 126 int smu_v13_0_init_microcode(struct smu_context *smu); 128 void smu_v13_0_fini_microcode(struct smu_context *smu); 130 int smu_v13_0_load_microcode(struct smu_context *smu); 132 int smu_v13_0_init_smc_tables(struct smu_context *smu); 134 int smu_v13_0_fini_smc_tables(struct smu_context *smu); 136 int smu_v13_0_init_power(struct smu_context *smu); 138 int smu_v13_0_fini_power(struct smu_context *smu); 140 int smu_v13_0_check_fw_status(struct smu_context *smu); 142 int smu_v13_0_setup_pptable(struct smu_context *smu); 144 int smu_v13_0_get_vbios_bootup_values(struct smu_context *smu); [all …]
|
D | smu_v11_0.h | 160 int smu_v11_0_init_microcode(struct smu_context *smu); 162 void smu_v11_0_fini_microcode(struct smu_context *smu); 164 int smu_v11_0_load_microcode(struct smu_context *smu); 166 int smu_v11_0_init_smc_tables(struct smu_context *smu); 168 int smu_v11_0_fini_smc_tables(struct smu_context *smu); 170 int smu_v11_0_init_power(struct smu_context *smu); 172 int smu_v11_0_fini_power(struct smu_context *smu); 174 int smu_v11_0_check_fw_status(struct smu_context *smu); 176 int smu_v11_0_setup_pptable(struct smu_context *smu); 178 int smu_v11_0_get_vbios_bootup_values(struct smu_context *smu); [all …]
|
D | amdgpu_smu.h | 575 int (*run_btc)(struct smu_context *smu); 582 int (*get_allowed_feature_mask)(struct smu_context *smu, uint32_t *feature_mask, uint32_t num); 589 enum amd_pm_state_type (*get_current_power_state)(struct smu_context *smu); 595 int (*set_default_dpm_table)(struct smu_context *smu); 597 int (*set_power_state)(struct smu_context *smu); 603 int (*populate_umd_state_clk)(struct smu_context *smu); 611 int (*print_clk_levels)(struct smu_context *smu, enum smu_clk_type clk_type, char *buf); 619 int (*force_clk_levels)(struct smu_context *smu, enum smu_clk_type clk_type, uint32_t mask); 627 int (*od_edit_dpm_table)(struct smu_context *smu, 635 int (*restore_user_od_settings)(struct smu_context *smu); [all …]
|
D | smu_v12_0.h | 36 int smu_v12_0_check_fw_status(struct smu_context *smu); 38 int smu_v12_0_check_fw_version(struct smu_context *smu); 40 int smu_v12_0_powergate_sdma(struct smu_context *smu, bool gate); 42 int smu_v12_0_powergate_vcn(struct smu_context *smu, bool gate); 44 int smu_v12_0_powergate_jpeg(struct smu_context *smu, bool gate); 46 int smu_v12_0_set_gfx_cgpg(struct smu_context *smu, bool enable); 48 uint32_t smu_v12_0_get_gfxoff_status(struct smu_context *smu); 50 int smu_v12_0_gfx_off_control(struct smu_context *smu, bool enable); 52 int smu_v12_0_fini_smc_tables(struct smu_context *smu); 54 int smu_v12_0_set_default_dpm_tables(struct smu_context *smu); [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/pm/swsmu/smu13/ |
D | smu_v13_0.c | 78 int smu_v13_0_init_microcode(struct smu_context *smu) in smu_v13_0_init_microcode() argument 80 struct amdgpu_device *adev = smu->adev; in smu_v13_0_init_microcode() 133 void smu_v13_0_fini_microcode(struct smu_context *smu) in smu_v13_0_fini_microcode() argument 135 struct amdgpu_device *adev = smu->adev; in smu_v13_0_fini_microcode() 142 int smu_v13_0_load_microcode(struct smu_context *smu) in smu_v13_0_load_microcode() argument 145 struct amdgpu_device *adev = smu->adev; in smu_v13_0_load_microcode() 183 int smu_v13_0_check_fw_status(struct smu_context *smu) in smu_v13_0_check_fw_status() argument 185 struct amdgpu_device *adev = smu->adev; in smu_v13_0_check_fw_status() 198 int smu_v13_0_check_fw_version(struct smu_context *smu) in smu_v13_0_check_fw_version() argument 205 ret = smu_cmn_get_smc_version(smu, &if_version, &smu_version); in smu_v13_0_check_fw_version() [all …]
|
D | yellow_carp_ppt.c | 147 static int yellow_carp_init_smc_tables(struct smu_context *smu) in yellow_carp_init_smc_tables() argument 149 struct smu_table_context *smu_table = &smu->smu_table; in yellow_carp_init_smc_tables() 189 static int yellow_carp_fini_smc_tables(struct smu_context *smu) in yellow_carp_fini_smc_tables() argument 191 struct smu_table_context *smu_table = &smu->smu_table; in yellow_carp_fini_smc_tables() 205 static int yellow_carp_system_features_control(struct smu_context *smu, bool en) in yellow_carp_system_features_control() argument 207 struct smu_feature *feature = &smu->smu_feature; in yellow_carp_system_features_control() 208 struct amdgpu_device *adev = smu->adev; in yellow_carp_system_features_control() 213 ret = smu_cmn_send_smc_msg(smu, SMU_MSG_PrepareMp1ForUnload, NULL); in yellow_carp_system_features_control() 221 ret = smu_cmn_get_enabled_32_bits_mask(smu, feature_mask, 2); in yellow_carp_system_features_control() 233 static int yellow_carp_dpm_set_vcn_enable(struct smu_context *smu, bool enable) in yellow_carp_dpm_set_vcn_enable() argument [all …]
|
D | aldebaran_ppt.c | 209 static int aldebaran_tables_init(struct smu_context *smu) in aldebaran_tables_init() argument 211 struct smu_table_context *smu_table = &smu->smu_table; in aldebaran_tables_init() 241 static int aldebaran_allocate_dpm_context(struct smu_context *smu) in aldebaran_allocate_dpm_context() argument 243 struct smu_dpm_context *smu_dpm = &smu->smu_dpm; in aldebaran_allocate_dpm_context() 264 static int aldebaran_init_smc_tables(struct smu_context *smu) in aldebaran_init_smc_tables() argument 268 ret = aldebaran_tables_init(smu); in aldebaran_init_smc_tables() 272 ret = aldebaran_allocate_dpm_context(smu); in aldebaran_init_smc_tables() 276 return smu_v13_0_init_smc_tables(smu); in aldebaran_init_smc_tables() 279 static int aldebaran_get_allowed_feature_mask(struct smu_context *smu, in aldebaran_get_allowed_feature_mask() argument 291 static int aldebaran_set_default_dpm_table(struct smu_context *smu) in aldebaran_set_default_dpm_table() argument [all …]
|
/Linux-v5.15/drivers/macintosh/ |
D | smu.c | 99 static struct smu_device *smu; variable 115 if (list_empty(&smu->cmd_list)) in smu_start_cmd() 119 cmd = list_entry(smu->cmd_list.next, struct smu_cmd, link); in smu_start_cmd() 120 smu->cmd_cur = cmd; in smu_start_cmd() 128 smu->cmd_buf->cmd = cmd->cmd; in smu_start_cmd() 129 smu->cmd_buf->length = cmd->data_len; in smu_start_cmd() 130 memcpy(smu->cmd_buf->data, cmd->data_buf, cmd->data_len); in smu_start_cmd() 133 faddr = (unsigned long)smu->cmd_buf; in smu_start_cmd() 134 fend = faddr + smu->cmd_buf->length + 2; in smu_start_cmd() 147 if (smu->broken_nap) in smu_start_cmd() [all …]
|
D | windfarm_smu_controls.c | 258 struct device_node *smu, *fans, *fan; in smu_controls_init() local 263 smu = of_find_node_by_type(NULL, "smu"); in smu_controls_init() 264 if (smu == NULL) in smu_controls_init() 268 for (fans = NULL; (fans = of_get_next_child(smu, fans)) != NULL;) in smu_controls_init() 288 for (fans = NULL; (fans = of_get_next_child(smu, fans)) != NULL;) in smu_controls_init() 304 of_node_put(smu); in smu_controls_init()
|
/Linux-v5.15/arch/arm/mach-shmobile/ |
D | smp-emev2.c | 32 void __iomem *smu; in emev2_smp_prepare_cpus() local 35 smu = ioremap(EMEV2_SMU_BASE, PAGE_SIZE); in emev2_smp_prepare_cpus() 36 if (smu) { in emev2_smp_prepare_cpus() 37 iowrite32(__pa(shmobile_boot_vector), smu + SMU_GENERAL_REG0); in emev2_smp_prepare_cpus() 38 iounmap(smu); in emev2_smp_prepare_cpus()
|
/Linux-v5.15/arch/arm/boot/dts/ |
D | emev2.dtsi | 61 compatible = "renesas,emev2-smu"; 72 compatible = "renesas,emev2-smu-clkdiv"; 78 compatible = "renesas,emev2-smu-gclk"; 84 compatible = "renesas,emev2-smu-clkdiv"; 90 compatible = "renesas,emev2-smu-gclk"; 103 compatible = "renesas,emev2-smu-clkdiv"; 109 compatible = "renesas,emev2-smu-clkdiv"; 115 compatible = "renesas,emev2-smu-clkdiv"; 121 compatible = "renesas,emev2-smu-clkdiv"; 127 compatible = "renesas,emev2-smu-gclk"; [all …]
|
/Linux-v5.15/drivers/mtd/nand/raw/atmel/ |
D | pmecc.c | 175 s16 *smu; member 374 user->smu = user->lmu + (req->ecc.strength + 1); in atmel_pmecc_create_user() 375 user->mu = (s32 *)PTR_ALIGN(user->smu + in atmel_pmecc_create_user() 502 s16 *smu = user->smu; in atmel_pmecc_get_sigma() local 516 memset(smu, 0, sizeof(s16) * num); in atmel_pmecc_get_sigma() 517 smu[0] = 1; in atmel_pmecc_get_sigma() 530 memset(&smu[num], 0, sizeof(s16) * num); in atmel_pmecc_get_sigma() 531 smu[num] = 1; in atmel_pmecc_get_sigma() 542 memset(&smu[(strength + 1) * num], 0, sizeof(s16) * num); in atmel_pmecc_get_sigma() 559 smu[(strength + 1) * num + j] = in atmel_pmecc_get_sigma() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_umc.c | 135 if (adev->smu.ppt_funcs && adev->smu.ppt_funcs->send_hbm_bad_pages_num) in amdgpu_umc_process_ras_data_cb() 136 adev->smu.ppt_funcs->send_hbm_bad_pages_num(&adev->smu, con->eeprom_control.ras_num_recs); in amdgpu_umc_process_ras_data_cb()
|