| /linux/drivers/gpu/drm/amd/pm/swsmu/smu12/ |
| H A 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_powergate_sdma(struct smu_context *smu, bool gate) in smu_v12_0_powergate_sdma() argument 75 if (!smu->is_apu) in smu_v12_0_powergate_sdma() 79 return smu_cmn_send_smc_msg(smu, SMU_MSG_PowerDownSdma, NULL); in smu_v12_0_powergate_sdma() 81 return smu_cmn_send_smc_msg(smu, SMU_MSG_PowerUpSdma, NULL); in smu_v12_0_powergate_sdma() 84 int smu_v12_0_set_gfx_cgpg(struct smu_context *smu, bool enable) in smu_v12_0_set_gfx_cgpg() argument 87 if (!(smu->adev->pg_flags & AMD_PG_SUPPORT_GFX_PG) || smu->adev->in_s0ix) in smu_v12_0_set_gfx_cgpg() 90 return smu_cmn_send_smc_msg_with_param(smu, in smu_v12_0_set_gfx_cgpg() 108 uint32_t smu_v12_0_get_gfxoff_status(struct smu_context *smu) in smu_v12_0_get_gfxoff_status() argument [all …]
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/smu11/ |
| H A D | smu_v11_0.c | 82 static void smu_v11_0_poll_baco_exit(struct smu_context *smu) in smu_v11_0_poll_baco_exit() argument 84 struct amdgpu_device *adev = smu->adev; in smu_v11_0_poll_baco_exit() 93 int smu_v11_0_init_microcode(struct smu_context *smu) in smu_v11_0_init_microcode() argument 95 struct amdgpu_device *adev = smu->adev; in smu_v11_0_init_microcode() 132 void smu_v11_0_fini_microcode(struct smu_context *smu) in smu_v11_0_fini_microcode() argument 134 struct amdgpu_device *adev = smu->adev; in smu_v11_0_fini_microcode() 140 int smu_v11_0_load_microcode(struct smu_context *smu) in smu_v11_0_load_microcode() argument 142 struct amdgpu_device *adev = smu->adev; in smu_v11_0_load_microcode() 180 int smu_v11_0_check_fw_status(struct smu_context *smu) in smu_v11_0_check_fw_status() argument 182 struct amdgpu_device *adev = smu->adev; in smu_v11_0_check_fw_status() [all …]
|
| H A D | cyan_skillfish_ppt.h | 27 extern void cyan_skillfish_set_ppt_funcs(struct smu_context *smu);
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/smu15/ |
| H A D | smu_v15_0.c | 63 int smu_v15_0_init_microcode(struct smu_context *smu) in smu_v15_0_init_microcode() argument 65 struct amdgpu_device *adev = smu->adev; in smu_v15_0_init_microcode() 101 void smu_v15_0_fini_microcode(struct smu_context *smu) in smu_v15_0_fini_microcode() argument 103 struct amdgpu_device *adev = smu->adev; in smu_v15_0_fini_microcode() 109 int smu_v15_0_load_microcode(struct smu_context *smu) in smu_v15_0_load_microcode() argument 111 struct amdgpu_device *adev = smu->adev; in smu_v15_0_load_microcode() 131 if (smu->is_apu) in smu_v15_0_load_microcode() 147 int smu_v15_0_init_pptable_microcode(struct smu_context *smu) in smu_v15_0_init_pptable_microcode() argument 149 struct amdgpu_device *adev = smu->adev; in smu_v15_0_init_pptable_microcode() 170 pptable_id = smu->smu_table.boot_values.pp_table_id; in smu_v15_0_init_pptable_microcode() [all …]
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/smu14/ |
| H A D | smu_v14_0.c | 69 int smu_v14_0_init_microcode(struct smu_context *smu) in smu_v14_0_init_microcode() argument 71 struct amdgpu_device *adev = smu->adev; in smu_v14_0_init_microcode() 111 void smu_v14_0_fini_microcode(struct smu_context *smu) in smu_v14_0_fini_microcode() argument 113 struct amdgpu_device *adev = smu->adev; in smu_v14_0_fini_microcode() 119 int smu_v14_0_load_microcode(struct smu_context *smu) in smu_v14_0_load_microcode() argument 121 struct amdgpu_device *adev = smu->adev; in smu_v14_0_load_microcode() 145 if (smu->is_apu) in smu_v14_0_load_microcode() 163 int smu_v14_0_init_pptable_microcode(struct smu_context *smu) in smu_v14_0_init_pptable_microcode() argument 165 struct amdgpu_device *adev = smu->adev; in smu_v14_0_init_pptable_microcode() 190 pptable_id = smu->smu_table.boot_values.pp_table_id; in smu_v14_0_init_pptable_microcode() [all …]
|
| H A D | smu_v14_0_0_ppt.c | 190 static int smu_v14_0_0_init_smc_tables(struct smu_context *smu) in smu_v14_0_0_init_smc_tables() argument 192 struct smu_table_context *smu_table = &smu->smu_table; in smu_v14_0_0_init_smc_tables() 216 ret = smu_driver_table_init(smu, SMU_DRIVER_TABLE_GPU_METRICS, in smu_v14_0_0_init_smc_tables() 234 static int smu_v14_0_0_fini_smc_tables(struct smu_context *smu) in smu_v14_0_0_fini_smc_tables() argument 236 struct smu_table_context *smu_table = &smu->smu_table; in smu_v14_0_0_fini_smc_tables() 247 smu_driver_table_fini(smu, SMU_DRIVER_TABLE_GPU_METRICS); in smu_v14_0_0_fini_smc_tables() 252 static int smu_v14_0_0_system_features_control(struct smu_context *smu, bool en) in smu_v14_0_0_system_features_control() argument 254 struct amdgpu_device *adev = smu->adev; in smu_v14_0_0_system_features_control() 258 ret = smu_cmn_send_smc_msg(smu, SMU_MSG_PrepareMp1ForUnload, NULL); in smu_v14_0_0_system_features_control() 263 static int smu_v14_0_0_get_smu_metrics_data(struct smu_context *smu, in smu_v14_0_0_get_smu_metrics_data() argument [all …]
|
| H A D | smu_v14_0_2_ppt.c | 59 static void smu_v14_0_2_get_od_setting_limits(struct smu_context *smu, 273 static int smu_v14_0_2_init_allowed_features(struct smu_context *smu) in smu_v14_0_2_init_allowed_features() argument 275 smu_feature_list_set_all(smu, SMU_FEATURE_LIST_ALLOWED); in smu_v14_0_2_init_allowed_features() 280 static int smu_v14_0_2_check_powerplay_table(struct smu_context *smu) in smu_v14_0_2_check_powerplay_table() argument 282 struct smu_table_context *table_context = &smu->smu_table; in smu_v14_0_2_check_powerplay_table() 285 struct smu_baco_context *smu_baco = &smu->smu_baco; in smu_v14_0_2_check_powerplay_table() 286 PPTable_t *pptable = smu->smu_table.driver_pptable; in smu_v14_0_2_check_powerplay_table() 293 smu->dc_controlled_by_gpio = true; in smu_v14_0_2_check_powerplay_table() 304 smu->od_enabled = false; in smu_v14_0_2_check_powerplay_table() 313 smu->od_settings = &powerplay_table->overdrive_table; in smu_v14_0_2_check_powerplay_table() [all …]
|
| H A D | smu_v14_0_0_ppt.h | 26 extern void smu_v14_0_0_set_ppt_funcs(struct smu_context *smu);
|
| H A D | smu_v14_0_2_ppt.h | 26 extern void smu_v14_0_2_set_ppt_funcs(struct smu_context *smu);
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/inc/ |
| H A D | amdgpu_smu.h | 654 struct smu_context *smu; member 810 ssize_t (*get_temp_metrics)(struct smu_context *smu, 818 bool (*temp_metrics_is_supported)(struct smu_context *smu, enum smu_temp_metric_type type); 831 int (*run_btc)(struct smu_context *smu); 837 int (*init_allowed_features)(struct smu_context *smu); 844 enum amd_pm_state_type (*get_current_power_state)(struct smu_context *smu); 850 int (*set_default_dpm_table)(struct smu_context *smu); 852 int (*set_power_state)(struct smu_context *smu); 858 int (*populate_umd_state_clk)(struct smu_context *smu); 871 …int (*emit_clk_levels)(struct smu_context *smu, enum smu_clk_type clk_type, char *buf, int *offset… [all …]
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/smu13/ |
| H A D | smu_v13_0_6_ppt.c | 259 static inline int smu_v13_0_6_get_metrics_version(struct smu_context *smu) in smu_v13_0_6_get_metrics_version() argument 261 if ((smu->adev->flags & AMD_IS_APU) && in smu_v13_0_6_get_metrics_version() 262 smu->smc_fw_version <= 0x4556900) in smu_v13_0_6_get_metrics_version() 264 else if (amdgpu_ip_version(smu->adev, MP1_HWIP, 0) == in smu_v13_0_6_get_metrics_version() 271 static inline void smu_v13_0_6_cap_set(struct smu_context *smu, in smu_v13_0_6_cap_set() argument 274 struct smu_13_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context; in smu_v13_0_6_cap_set() 279 static inline void smu_v13_0_6_cap_clear(struct smu_context *smu, in smu_v13_0_6_cap_clear() argument 282 struct smu_13_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context; in smu_v13_0_6_cap_clear() 287 bool smu_v13_0_6_cap_supported(struct smu_context *smu, in smu_v13_0_6_cap_supported() argument 290 struct smu_13_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context; in smu_v13_0_6_cap_supported() [all …]
|
| H A D | aldebaran_ppt.c | 227 static int aldebaran_tables_init(struct smu_context *smu) in aldebaran_tables_init() argument 229 struct smu_table_context *smu_table = &smu->smu_table; in aldebaran_tables_init() 253 ret = smu_driver_table_init(smu, SMU_DRIVER_TABLE_GPU_METRICS, in aldebaran_tables_init() 264 smu_driver_table_fini(smu, SMU_DRIVER_TABLE_GPU_METRICS); in aldebaran_tables_init() 271 static int aldebaran_select_plpd_policy(struct smu_context *smu, int level) in aldebaran_select_plpd_policy() argument 273 struct amdgpu_device *adev = smu->adev; in aldebaran_select_plpd_policy() 284 smu, SMU_MSG_GmiPwrDnControl, 0, NULL); in aldebaran_select_plpd_policy() 287 smu, SMU_MSG_GmiPwrDnControl, 1, NULL); in aldebaran_select_plpd_policy() 292 static int aldebaran_allocate_dpm_context(struct smu_context *smu) in aldebaran_allocate_dpm_context() argument 294 struct smu_dpm_context *smu_dpm = &smu->smu_dpm; in aldebaran_allocate_dpm_context() [all …]
|
| H A D | smu_v13_0_0_ppt.c | 62 static void smu_v13_0_0_get_od_setting_limits(struct smu_context *smu, 296 smu_v13_0_0_init_allowed_features(struct smu_context *smu) in smu_v13_0_0_init_allowed_features() argument 298 struct amdgpu_device *adev = smu->adev; in smu_v13_0_0_init_allowed_features() 300 smu_feature_list_set_all(smu, SMU_FEATURE_LIST_ALLOWED); in smu_v13_0_0_init_allowed_features() 303 smu_feature_list_clear_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_DPM_GFXCLK_BIT); in smu_v13_0_0_init_allowed_features() 304 smu_feature_list_clear_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_GFX_IMU_BIT); in smu_v13_0_0_init_allowed_features() 309 smu_feature_list_clear_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_ATHUB_MMHUB_PG_BIT); in smu_v13_0_0_init_allowed_features() 312 smu_feature_list_clear_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_DPM_SOCCLK_BIT); in smu_v13_0_0_init_allowed_features() 314 if ((smu->smc_fw_version < 0x004e3a00) || in smu_v13_0_0_init_allowed_features() 316 smu_feature_list_clear_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_GFXOFF_BIT); in smu_v13_0_0_init_allowed_features() [all …]
|
| H A D | smu_v13_0_7_ppt.c | 62 static void smu_v13_0_7_get_od_setting_limits(struct smu_context *smu, 285 smu_v13_0_7_init_allowed_features(struct smu_context *smu) in smu_v13_0_7_init_allowed_features() argument 287 struct amdgpu_device *adev = smu->adev; in smu_v13_0_7_init_allowed_features() 289 smu_feature_list_clear_all(smu, SMU_FEATURE_LIST_ALLOWED); in smu_v13_0_7_init_allowed_features() 291 smu_feature_list_set_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_FW_DATA_READ_BIT); in smu_v13_0_7_init_allowed_features() 294 smu_feature_list_set_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_DPM_GFXCLK_BIT); in smu_v13_0_7_init_allowed_features() 295 smu_feature_list_set_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_GFX_IMU_BIT); in smu_v13_0_7_init_allowed_features() 296 smu_feature_list_set_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_DPM_GFX_POWER_OPTIMIZER_BIT); in smu_v13_0_7_init_allowed_features() 300 smu_feature_list_set_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_GFXOFF_BIT); in smu_v13_0_7_init_allowed_features() 303 smu_feature_list_set_bit(smu, SMU_FEATURE_LIST_ALLOWED, FEATURE_DPM_UCLK_BIT); in smu_v13_0_7_init_allowed_features() [all …]
|
| H A D | smu_v13_0_0_ppt.h | 26 extern void smu_v13_0_0_set_ppt_funcs(struct smu_context *smu);
|
| H A D | smu_v13_0_4_ppt.h | 26 extern void smu_v13_0_4_set_ppt_funcs(struct smu_context *smu);
|
| H A D | yellow_carp_ppt.h | 26 extern void yellow_carp_set_ppt_funcs(struct smu_context *smu);
|
| H A D | smu_v13_0_7_ppt.h | 26 extern void smu_v13_0_7_set_ppt_funcs(struct smu_context *smu);
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/ |
| H A D | smu_cmn.c | 50 #define smu_cmn_call_asic_func(intf, smu, args...) \ argument 51 ((smu)->ppt_funcs ? ((smu)->ppt_funcs->intf ? \ 52 (smu)->ppt_funcs->intf(smu, ##args) : \ 59 static const char *smu_get_message_name(struct smu_context *smu, in smu_get_message_name() argument 88 struct amdgpu_device *adev = ctl->smu->adev; in smu_msg_v1_send_debug_msg() 125 int smu_cmn_wait_for_response(struct smu_context *smu) in smu_cmn_wait_for_response() argument 127 return smu_msg_wait_response(&smu->msg_ctl, 0); in smu_cmn_wait_for_response() 162 int smu_cmn_send_smc_msg_with_param(struct smu_context *smu, in smu_cmn_send_smc_msg_with_param() argument 167 struct smu_msg_ctl *ctl = &smu->msg_ctl; in smu_cmn_send_smc_msg_with_param() 186 int smu_cmn_send_smc_msg(struct smu_context *smu, in smu_cmn_send_smc_msg() argument [all …]
|
| H A D | smu_cmn.h | 105 #define smu_cmn_update_table(smu, table_index, argument, table_data, drv2smu) \ argument 106 smu_cmn_update_table_read_arg((smu), (table_index), (argument), (table_data), NULL, (drv2smu)) 116 int smu_cmn_send_smc_msg_with_param(struct smu_context *smu, 121 int smu_cmn_send_smc_msg(struct smu_context *smu, 125 int smu_cmn_send_debug_smc_msg(struct smu_context *smu, 128 int smu_cmn_send_debug_smc_msg_with_param(struct smu_context *smu, 131 int smu_cmn_wait_for_response(struct smu_context *smu); 133 int smu_cmn_to_asic_specific_index(struct smu_context *smu, 137 int smu_cmn_feature_is_supported(struct smu_context *smu, 140 int smu_cmn_feature_is_enabled(struct smu_context *smu, [all …]
|
| /linux/drivers/macintosh/ |
| H A D | smu.c | 100 static struct smu_device *smu; variable 116 if (list_empty(&smu->cmd_list)) in smu_start_cmd() 120 cmd = list_entry(smu->cmd_list.next, struct smu_cmd, link); in smu_start_cmd() 121 smu->cmd_cur = cmd; in smu_start_cmd() 129 smu->cmd_buf->cmd = cmd->cmd; in smu_start_cmd() 130 smu->cmd_buf->length = cmd->data_len; in smu_start_cmd() 131 memcpy(smu->cmd_buf->data, cmd->data_buf, cmd->data_len); in smu_start_cmd() 134 faddr = (unsigned long)smu->cmd_buf; in smu_start_cmd() 135 fend = faddr + smu->cmd_buf->length + 2; in smu_start_cmd() 148 if (smu->broken_nap) in smu_start_cmd() [all …]
|
| H A D | windfarm_smu_controls.c | 259 struct device_node *smu, *fans, *fan; in smu_controls_init() local 264 smu = of_find_node_by_type(NULL, "smu"); in smu_controls_init() 265 if (smu == NULL) in smu_controls_init() 269 for_each_child_of_node(smu, fans) in smu_controls_init() 288 for_each_child_of_node(smu, fans) in smu_controls_init() 303 of_node_put(smu); in smu_controls_init()
|
| H A D | windfarm_smu_sensors.c | 411 struct device_node *smu, *sensors, *s; in smu_sensors_init() local 420 smu = of_find_node_by_type(NULL, "smu"); in smu_sensors_init() 421 if (smu == NULL) in smu_sensors_init() 425 for_each_child_of_node(smu, sensors) in smu_sensors_init() 429 of_node_put(smu); in smu_sensors_init()
|
| /linux/arch/arm/mach-shmobile/ |
| H A 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/arch/arm/boot/dts/renesas/ |
| H A 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 …]
|