Skip to content

Commit

Permalink
drm/amdgpu: fix build error without x86 kconfig (v2)
Browse files Browse the repository at this point in the history
This patch is to fix below build error while we are using the kconfig
without x86.

drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.c: In function
'vangogh_get_smu_metrics_data':
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.c:300:10:
error: 'boot_cpu_data' undeclared (first use in this function); did you
mean 'boot_cpuid'?
  300 |          boot_cpu_data.x86_max_cores * sizeof(uint16_t));
      |          ^~~~~~~~~~~~~
      |          boot_cpuid
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.c: In function
'vangogh_read_sensor':
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.c:1320:11:
error: 'boot_cpu_data' undeclared (first use in this function); did you
mean 'boot_cpuid'?
 1320 |   *size = boot_cpu_data.x86_max_cores * sizeof(uint16_t);
      |           ^~~~~~~~~~~~~
      |           boot_cpuid
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.c: In function
'vangogh_od_edit_dpm_table':
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.c:1460:19:
error: 'boot_cpu_data' undeclared (first use in this function); did you
mean 'boot_cpuid'?
 1460 |   if (input[0] >= boot_cpu_data.x86_max_cores) {
      |                   ^~~~~~~~~~~~~
      |                   boot_cpuid

v2: fix #ifdef and add comment for APU only

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Huang Rui authored and Alex Deucher committed Jan 19, 2021
1 parent f4fb559 commit 4aef0eb
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
4 changes: 2 additions & 2 deletions drivers/gpu/drm/amd/pm/amdgpu_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -3633,12 +3633,12 @@ static void amdgpu_debugfs_prints_cpu_info(struct seq_file *m,
int i;

if (is_support_cclk_dpm(adev)) {
p_val = kcalloc(boot_cpu_data.x86_max_cores, sizeof(uint16_t),
p_val = kcalloc(adev->smu.cpu_core_num, sizeof(uint16_t),
GFP_KERNEL);

if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_CPU_CLK,
(void *)p_val, &size)) {
for (i = 0; i < boot_cpu_data.x86_max_cores; i++)
for (i = 0; i < adev->smu.cpu_core_num; i++)
seq_printf(m, "\t%u MHz (CPU%d)\n",
*(p_val + i), i);
}
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h
Original file line number Diff line number Diff line change
Expand Up @@ -466,11 +466,13 @@ struct smu_context
uint32_t gfx_actual_hard_min_freq;
uint32_t gfx_actual_soft_max_freq;

/* APU only */
uint32_t cpu_default_soft_min_freq;
uint32_t cpu_default_soft_max_freq;
uint32_t cpu_actual_soft_min_freq;
uint32_t cpu_actual_soft_max_freq;
uint32_t cpu_core_id_select;
uint16_t cpu_core_num;
};

struct i2c_adapter;
Expand Down
17 changes: 12 additions & 5 deletions drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ static int vangogh_get_smu_metrics_data(struct smu_context *smu,
break;
case METRICS_AVERAGE_CPUCLK:
memcpy(value, &metrics->CoreFrequency[0],
boot_cpu_data.x86_max_cores * sizeof(uint16_t));
smu->cpu_core_num * sizeof(uint16_t));
break;
default:
*value = UINT_MAX;
Expand Down Expand Up @@ -335,6 +335,13 @@ static int vangogh_init_smc_tables(struct smu_context *smu)
if (ret)
return ret;

#ifdef CONFIG_X86
/* AMD x86 APU only */
smu->cpu_core_num = boot_cpu_data.x86_max_cores;
#else
smu->cpu_core_num = 4;
#endif

return smu_v11_0_init_smc_tables(smu);
}

Expand Down Expand Up @@ -1317,7 +1324,7 @@ static int vangogh_read_sensor(struct smu_context *smu,
ret = vangogh_get_smu_metrics_data(smu,
METRICS_AVERAGE_CPUCLK,
(uint32_t *)data);
*size = boot_cpu_data.x86_max_cores * sizeof(uint16_t);
*size = smu->cpu_core_num * sizeof(uint16_t);
break;
default:
ret = -EOPNOTSUPP;
Expand Down Expand Up @@ -1457,9 +1464,9 @@ static int vangogh_od_edit_dpm_table(struct smu_context *smu, enum PP_OD_DPM_TAB
dev_err(smu->adev->dev, "Input parameter number not correct (should be 4 for processor)\n");
return -EINVAL;
}
if (input[0] >= boot_cpu_data.x86_max_cores) {
if (input[0] >= smu->cpu_core_num) {
dev_err(smu->adev->dev, "core index is overflow, should be less than %d\n",
boot_cpu_data.x86_max_cores);
smu->cpu_core_num);
}
smu->cpu_core_id_select = input[0];
if (input[1] == 0) {
Expand Down Expand Up @@ -1535,7 +1542,7 @@ static int vangogh_od_edit_dpm_table(struct smu_context *smu, enum PP_OD_DPM_TAB
break;
}

for (i = 0; i < boot_cpu_data.x86_max_cores; i++) {
for (i = 0; i < smu->cpu_core_num; i++) {
ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMinCclk,
(i << 20) | smu->cpu_actual_soft_min_freq,
NULL);
Expand Down

0 comments on commit 4aef0eb

Please sign in to comment.