diff options
Diffstat (limited to 'drivers/firmware/arm_scmi/perf.c')
-rw-r--r-- | drivers/firmware/arm_scmi/perf.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c index 721e6c57beae..64342944d917 100644 --- a/drivers/firmware/arm_scmi/perf.c +++ b/drivers/firmware/arm_scmi/perf.c | |||
@@ -166,7 +166,13 @@ scmi_perf_domain_attributes_get(const struct scmi_handle *handle, u32 domain, | |||
166 | le32_to_cpu(attr->sustained_freq_khz); | 166 | le32_to_cpu(attr->sustained_freq_khz); |
167 | dom_info->sustained_perf_level = | 167 | dom_info->sustained_perf_level = |
168 | le32_to_cpu(attr->sustained_perf_level); | 168 | le32_to_cpu(attr->sustained_perf_level); |
169 | dom_info->mult_factor = (dom_info->sustained_freq_khz * 1000) / | 169 | if (!dom_info->sustained_freq_khz || |
170 | !dom_info->sustained_perf_level) | ||
171 | /* CPUFreq converts to kHz, hence default 1000 */ | ||
172 | dom_info->mult_factor = 1000; | ||
173 | else | ||
174 | dom_info->mult_factor = | ||
175 | (dom_info->sustained_freq_khz * 1000) / | ||
170 | dom_info->sustained_perf_level; | 176 | dom_info->sustained_perf_level; |
171 | memcpy(dom_info->name, attr->name, SCMI_MAX_STR_SIZE); | 177 | memcpy(dom_info->name, attr->name, SCMI_MAX_STR_SIZE); |
172 | } | 178 | } |