aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3290-drm-amdgpu-pm-rework-the-hwmon-visibility-settings.patch
diff options
context:
space:
mode:
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.patch73
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
+