hulk inclusion category: feature bugzilla: https://atomgit.com/openeuler/kernel/issues/9840 ------------------ Add support for the Hisilicon HIP13 processor by extending the existing HIP12-specific quirks to cover HIP13 as well. HIP13 inherits the following quirks from HIP12: * PMG_MAX workaround: Force PMG_MAX to 0 * CSU retrigger: Re-trigger cache monitoring reads for accurate values * CSU halved: Halve cache utilization values to match actual capacity Create a unified hisi_cpus[] list containing both HIP12 and HIP13 to simplify the quirk checks. Signed-off-by: Zeng Heng <zengheng4@huawei.com> --- drivers/platform/mpam/mpam_devices.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/platform/mpam/mpam_devices.c b/drivers/platform/mpam/mpam_devices.c index 3e875f29bd03b..60ab22fed7fde 100644 --- a/drivers/platform/mpam/mpam_devices.c +++ b/drivers/platform/mpam/mpam_devices.c @@ -97,6 +97,12 @@ static const struct midr_range hip12_cpus[] = { { /* sentinel */ } }; +static const struct midr_range hisi_cpus[] = { + MIDR_ALL_VERSIONS(MIDR_HISI_HIP12), + MIDR_ALL_VERSIONS(MIDR_HISI_HIP13), + { /* sentinel */ } +}; + static u32 __mpam_read_reg(struct mpam_msc *msc, u16 reg) { WARN_ON_ONCE(reg + sizeof(u32) > msc->mapped_hwpage_sz); @@ -776,7 +782,7 @@ static void mpam_ris_hw_probe(struct mpam_msc_ris *ris) static int mpam_pmg_max_workaround(u64 idr) { - if (is_midr_in_range_list(hip12_cpus)) + if (is_midr_in_range_list(hisi_cpus)) return 0; return FIELD_GET(MPAMF_IDR_PMG_MAX, idr); @@ -957,7 +963,7 @@ static bool mpam_csu_hisi_need_retrigger(struct mpam_msc_ris *ris, ris->comp->class->level != 3) return false; - if (!is_midr_in_range_list(hip12_cpus)) + if (!is_midr_in_range_list(hisi_cpus)) return false; if (read_again) @@ -1025,7 +1031,7 @@ static bool mpam_ris_has_nrdy_bit(struct mpam_msc_ris *ris) static u64 mpam_csu_hisi_need_halved(struct mpam_msc_ris *ris, u64 now) { - if (!is_midr_in_range_list(hip12_cpus)) + if (!is_midr_in_range_list(hisi_cpus)) return now; if (ris->comp->class->type != MPAM_CLASS_CACHE || -- 2.43.0