diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3290-drm-amdgpu-pm-rework-the-hwmon-visibility-settings.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3290-drm-amdgpu-pm-rework-the-hwmon-visibility-settings.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3290-drm-amdgpu-pm-rework-the-hwmon-visibility-settings.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3290-drm-amdgpu-pm-rework-the-hwmon-visibility-settings.patch new file mode 100644 index 00000000..d7061345 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3290-drm-amdgpu-pm-rework-the-hwmon-visibility-settings.patch @@ -0,0 +1,73 @@ +From dab848908f44b3468050c18315987238d056d9e3 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Wed, 24 Jan 2018 17:57:19 -0500 +Subject: [PATCH 3290/4131] drm/amdgpu/pm: rework the hwmon visibility settings + +Previously we just always exposed everything for asics +supported by powerplay. Make it a bit more fine grained. +In practice this shouldn't change anything. + +Reviewed-by: Rex Zhu <Rex.Zhu@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 30 +++++++++++++++++------------- + 1 file changed, 17 insertions(+), 13 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +index 4b364dc..7bb3c3b 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +@@ -1243,9 +1243,19 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj, + struct amdgpu_device *adev = dev_get_drvdata(dev); + umode_t effective_mode = attr->mode; + +- /* no skipping for powerplay */ +- if (adev->powerplay.cgs_device) +- return effective_mode; ++ /* handle non-powerplay limitations */ ++ if (!adev->powerplay.cgs_device) { ++ /* Skip fan attributes if fan is not present */ ++ if (adev->pm.no_fan && ++ (attr == &sensor_dev_attr_pwm1.dev_attr.attr || ++ attr == &sensor_dev_attr_pwm1_enable.dev_attr.attr || ++ attr == &sensor_dev_attr_pwm1_max.dev_attr.attr || ++ attr == &sensor_dev_attr_pwm1_min.dev_attr.attr)) ++ return 0; ++ /* requires powerplay */ ++ if (attr == &sensor_dev_attr_fan1_input.dev_attr.attr) ++ return 0; ++ } + + /* Skip limit attributes if DPM is not enabled */ + if (!adev->pm.dpm_enabled && +@@ -1257,14 +1267,6 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj, + attr == &sensor_dev_attr_pwm1_min.dev_attr.attr)) + return 0; + +- /* Skip fan attributes if fan is not present */ +- if (adev->pm.no_fan && +- (attr == &sensor_dev_attr_pwm1.dev_attr.attr || +- attr == &sensor_dev_attr_pwm1_enable.dev_attr.attr || +- attr == &sensor_dev_attr_pwm1_max.dev_attr.attr || +- attr == &sensor_dev_attr_pwm1_min.dev_attr.attr)) +- return 0; +- + /* mask fan attributes if we have no bindings for this asic to expose */ + if ((!adev->powerplay.pp_funcs->get_fan_speed_percent && + attr == &sensor_dev_attr_pwm1.dev_attr.attr) || /* can't query fan */ +@@ -1285,8 +1287,10 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj, + attr == &sensor_dev_attr_pwm1_min.dev_attr.attr)) + return 0; + +- /* requires powerplay */ +- if (attr == &sensor_dev_attr_fan1_input.dev_attr.attr) ++ /* only APUs have vddnb */ ++ if (!(adev->flags & AMD_IS_APU) && ++ (attr == &sensor_dev_attr_in1_input.dev_attr.attr || ++ attr == &sensor_dev_attr_in1_label.dev_attr.attr)) + return 0; + + return effective_mode; +-- +2.7.4 + |