aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1741-drm-amd-display-Add-debugfs-entry-for-amdgpu_dm_visu.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1741-drm-amd-display-Add-debugfs-entry-for-amdgpu_dm_visu.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1741-drm-amd-display-Add-debugfs-entry-for-amdgpu_dm_visu.patch87
1 files changed, 87 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1741-drm-amd-display-Add-debugfs-entry-for-amdgpu_dm_visu.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1741-drm-amd-display-Add-debugfs-entry-for-amdgpu_dm_visu.patch
new file mode 100644
index 00000000..de5fddda
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1741-drm-amd-display-Add-debugfs-entry-for-amdgpu_dm_visu.patch
@@ -0,0 +1,87 @@
+From c9fe247f73dd23858729952a4630f576210a6a8e Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Fri, 22 Mar 2019 10:11:14 -0400
+Subject: [PATCH 1741/2940] drm/amd/display: Add debugfs entry for
+ amdgpu_dm_visual_confirm
+
+[Why]
+DC provides a few visual confirmation debug options that can be
+dynamically changed at runtime to help debug surface programming issues
+but we don't have any way to access it from userspace.
+
+[How]
+Add the amdgpu_dm_visual_confirm debugfs entry.
+It accepts a string containing the DC visual confirm enum value using
+the debugfs attribute helpers.
+
+The debugfs_create_file_unsafe can be used instead of
+debugfs_create_file as per the documentation.
+
+v2: Use debugfs helpers for getting and setting the value (Christian)
+
+Cc: Leo Li <sunpeng.li@amd.com>
+Cc: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Reviewed-by: Leo Li <sunpeng.li@amd.com>
+---
+ .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 39 ++++++++++++++++++-
+ 1 file changed, 38 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+index 1a9e3d3dfa38..1d5fc5ad3bee 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+@@ -995,6 +995,35 @@ static const struct drm_info_list amdgpu_dm_debugfs_list[] = {
+ {"amdgpu_target_backlight_pwm", &target_backlight_read},
+ };
+
++/*
++ * Sets the DC visual confirm debug option from the given string.
++ * Example usage: echo 1 > /sys/kernel/debug/dri/0/amdgpu_visual_confirm
++ */
++static int visual_confirm_set(void *data, u64 val)
++{
++ struct amdgpu_device *adev = data;
++
++ adev->dm.dc->debug.visual_confirm = (enum visual_confirm)val;
++
++ return 0;
++}
++
++/*
++ * Reads the DC visual confirm debug option value into the given buffer.
++ * Example usage: cat /sys/kernel/debug/dri/0/amdgpu_dm_visual_confirm
++ */
++static int visual_confirm_get(void *data, u64 *val)
++{
++ struct amdgpu_device *adev = data;
++
++ *val = adev->dm.dc->debug.visual_confirm;
++
++ return 0;
++}
++
++DEFINE_DEBUGFS_ATTRIBUTE(visual_confirm_fops, visual_confirm_get,
++ visual_confirm_set, "%llu\n");
++
+ int dtn_debugfs_init(struct amdgpu_device *adev)
+ {
+ static const struct file_operations dtn_log_fops = {
+@@ -1020,5 +1049,13 @@ int dtn_debugfs_init(struct amdgpu_device *adev)
+ adev,
+ &dtn_log_fops);
+
+- return PTR_ERR_OR_ZERO(ent);
++ if (IS_ERR(ent))
++ return PTR_ERR(ent);
++
++ ent = debugfs_create_file_unsafe("amdgpu_dm_visual_confirm", 0644, root,
++ adev, &visual_confirm_fops);
++ if (IS_ERR(ent))
++ return PTR_ERR(ent);
++
++ return 0;
+ }
+--
+2.17.1
+