aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3805-drm-amd-be-quiet-when-no-SAD-block-is-found.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3805-drm-amd-be-quiet-when-no-SAD-block-is-found.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3805-drm-amd-be-quiet-when-no-SAD-block-is-found.patch123
1 files changed, 123 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3805-drm-amd-be-quiet-when-no-SAD-block-is-found.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3805-drm-amd-be-quiet-when-no-SAD-block-is-found.patch
new file mode 100644
index 00000000..3bdf4ffa
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3805-drm-amd-be-quiet-when-no-SAD-block-is-found.patch
@@ -0,0 +1,123 @@
+From c8fe40264bfdb0cae6838f8fdbe88100c409fb2d Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Wed, 4 Sep 2019 11:12:48 +0200
+Subject: [PATCH 3805/4256] drm/amd: be quiet when no SAD block is found
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It is fine for displays without audio functionality to not provide
+any SAD block in their EDID. Do not log an error in that case,
+just return quietly.
+
+This fixes half of bug fdo#107825:
+https://bugs.freedesktop.org/show_bug.cgi?id=107825
+
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Cc: Alex Deucher <alexander.deucher@amd.com>
+Cc: "Christian König" <christian.koenig@amd.com>
+Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
+Cc: David Airlie <airlied@linux.ie>
+Cc: Daniel Vetter <daniel@ffwll.ch>
+Cc: Harry Wentland <harry.wentland@amd.com>
+Cc: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 4 ++--
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 7 +++----
+ 5 files changed, 11 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+index 6cc3498fce9e..c35181e2bfe7 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+@@ -1349,10 +1349,10 @@ static void dce_v10_0_audio_write_sad_regs(struct drm_encoder *encoder)
+ }
+
+ sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+- if (sad_count <= 0) {
++ if (sad_count < 0)
+ DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
++ if (sad_count <= 0)
+ return;
+- }
+ BUG_ON(!sads);
+
+ for (i = 0; i < ARRAY_SIZE(eld_reg_to_type); i++) {
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+index 73b91e1f1cd9..f459fc70074c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+@@ -1375,10 +1375,10 @@ static void dce_v11_0_audio_write_sad_regs(struct drm_encoder *encoder)
+ }
+
+ sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+- if (sad_count <= 0) {
++ if (sad_count < 0)
+ DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
++ if (sad_count <= 0)
+ return;
+- }
+ BUG_ON(!sads);
+
+ for (i = 0; i < ARRAY_SIZE(eld_reg_to_type); i++) {
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+index 04c81df035c3..bcea8a1a6ba6 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+@@ -1252,10 +1252,10 @@ static void dce_v6_0_audio_write_sad_regs(struct drm_encoder *encoder)
+ }
+
+ sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+- if (sad_count <= 0) {
++ if (sad_count < 0)
+ DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
++ if (sad_count <= 0)
+ return;
+- }
+
+ for (i = 0; i < ARRAY_SIZE(eld_reg_to_type); i++) {
+ u32 tmp = 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+index b239b04bd6c0..37fd742ab62d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+@@ -1302,10 +1302,10 @@ static void dce_v8_0_audio_write_sad_regs(struct drm_encoder *encoder)
+ }
+
+ sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+- if (sad_count <= 0) {
++ if (sad_count < 0)
+ DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
++ if (sad_count <= 0)
+ return;
+- }
+ BUG_ON(!sads);
+
+ for (i = 0; i < ARRAY_SIZE(eld_reg_to_type); i++) {
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+index 1f0c8821af53..d14284602ced 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+@@ -98,11 +98,10 @@ enum dc_edid_status dm_helpers_parse_edid_caps(
+ (struct edid *) edid->raw_edid);
+
+ sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads);
+- if (sad_count <= 0) {
+- DRM_INFO("SADs count is: %d, don't need to read it\n",
+- sad_count);
++ if (sad_count < 0)
++ DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
++ if (sad_count <= 0)
+ return result;
+- }
+
+ edid_caps->audio_mode_count = sad_count < DC_MAX_AUDIO_DESC_COUNT ? sad_count : DC_MAX_AUDIO_DESC_COUNT;
+ for (i = 0; i < edid_caps->audio_mode_count; ++i) {
+--
+2.17.1
+