diff options
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.patch | 123 |
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 + |