diff --git a/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_devfreq.c b/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_devfreq.c index b203dbd8725a..d8fa5a939619 100644 --- a/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_devfreq.c +++ b/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_devfreq.c @@ -343,6 +343,7 @@ int kbase_devfreq_init(struct kbase_device *kbdev) unsigned long opp_rate; unsigned int dyn_power_coeff = 0; int err; + struct device_node *model_dt_node; if (!kbdev->clock) { dev_err(kbdev->dev, "Clock not available for devfreq\n"); @@ -373,10 +374,20 @@ int kbase_devfreq_init(struct kbase_device *kbdev) &ondemand_data.upthreshold); of_property_read_u32(np, "downdifferential", &ondemand_data.downdifferential); - of_property_read_u32(kbdev->dev->of_node, "dynamic-power-coefficient", - &dyn_power_coeff); - if (dyn_power_coeff) - dp->is_cooling_device = true; + + model_dt_node = of_get_compatible_child(np, "arm,mali-simple-power-model"); + if (!model_dt_node) { + err = of_property_read_u32(np, "dynamic-power-coefficient", + &dyn_power_coeff); + if (err) { + dev_err(kbdev->dev, "Couldn't find proper 'dynamic-power-coefficient' in DT\n"); + goto devfreq_add_dev_failed; + } else { + dp->is_cooling_device = true; + } + } else { + of_node_put(model_dt_node); + } kbdev->devfreq = devfreq_add_device(kbdev->dev, dp, "simple_ondemand", &ondemand_data); diff --git a/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c b/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c index 8e3fa5d436a4..551d914f223f 100644 --- a/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c +++ b/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c @@ -584,6 +584,8 @@ struct devfreq_cooling_power kbase_ipa_power_model_ops = { #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0) .get_static_power = &kbase_get_static_power, .get_dynamic_power = &kbase_get_dynamic_power, +#else + .get_real_power = kbase_get_real_power, #endif }; KBASE_EXPORT_TEST_API(kbase_ipa_power_model_ops); diff --git a/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c b/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c index da0a4d4a0e7e..47090c53692f 100644 --- a/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c +++ b/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c @@ -145,9 +145,9 @@ static int add_params(struct kbase_ipa_model *model) if (err) goto end; - err = kbase_ipa_model_add_param_s32(model, "dynamic-coefficient", - &model_data->dynamic_coefficient, - 1, true); + err = of_property_read_u32_array(model->kbdev->dev->of_node, + "dynamic-power-coefficient", + &model_data->dynamic_coefficient, 1); if (err) goto end;