mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
platform/x86: ISST: Return error during profile addition
If sst_add_perf_profiles() fails for memory allocation, it continues
to allow SST-CP (core-power) feature. But in practice this is not
very useful as to achieve some frequencies via SST-CP, an SST-PP
(perf-profile) level change is required.
Fixes: 0ab147bb84 ("platform/x86: ISST: Parse SST MMIO and update instance")
Cc: HyeongJun An <sammiee5311@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://patch.msgid.link/20260811222134.3912626-2-srinivas.pandruvada@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
parent
0f377f2b47
commit
f9a647cb8d
|
|
@ -339,7 +339,7 @@ static int sst_add_perf_profiles(struct auxiliary_device *auxdev,
|
|||
if (!pd_info->perf_levels) {
|
||||
pd_info->pp_header.allowed_level_mask = 0;
|
||||
pd_info->pp_header.level_en_mask = 0;
|
||||
return 0;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
pd_info->ratio_unit = pd_info->pp_header.ratio_unit;
|
||||
|
|
@ -370,7 +370,7 @@ static int sst_add_perf_profiles(struct auxiliary_device *auxdev,
|
|||
static int sst_main(struct auxiliary_device *auxdev, struct tpmi_per_power_domain_info *pd_info)
|
||||
{
|
||||
struct device *dev = &auxdev->dev;
|
||||
int i, mask, levels;
|
||||
int i, ret, mask, levels;
|
||||
|
||||
*((u64 *)&pd_info->sst_header) = readq(pd_info->sst_base);
|
||||
pd_info->sst_header.cp_offset *= 8;
|
||||
|
|
@ -402,8 +402,12 @@ static int sst_main(struct auxiliary_device *auxdev, struct tpmi_per_power_domai
|
|||
levels = i;
|
||||
mask <<= 1;
|
||||
}
|
||||
|
||||
ret = sst_add_perf_profiles(auxdev, pd_info, levels + 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
pd_info->max_level = levels;
|
||||
sst_add_perf_profiles(auxdev, pd_info, levels + 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user