drm_edid_connector_update() updates display info, filling ELD with
speaker allocation data in the last step of update_dislay_info(). Our
goal is stopping using raw edid, so we can extract SADB from drm_eld
instead of access raw edid to get audio caps.

Signed-off-by: Melissa Wen <m...@igalia.com>
---
 .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c   | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

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 a84363ad3c9a..f7f592fa98da 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
@@ -106,13 +106,10 @@ enum dc_edid_status dm_helpers_parse_edid_caps(
        struct edid *edid_buf = edid ? (struct edid *) edid->raw_edid : NULL;
        struct drm_edid *drm_edid;
        struct drm_edid_product_id product_id;
-       int sad_count, sadb_count;
+       int sad_count;
        int i = 0;
-       uint8_t *sadb = NULL;
-
        enum dc_edid_status result = EDID_OK;
 
-
        if (!edid_caps || !edid)
                return EDID_BAD_INPUT;
 
@@ -158,19 +155,11 @@ enum dc_edid_status dm_helpers_parse_edid_caps(
                edid_caps->audio_modes[i].sample_size = sad.byte2;
        }
 
-       sadb_count = drm_edid_to_speaker_allocation((struct edid *) 
edid->raw_edid, &sadb);
-
-       if (sadb_count < 0) {
-               DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", 
sadb_count);
-               sadb_count = 0;
-       }
-
-       if (sadb_count)
-               edid_caps->speaker_flags = sadb[0];
+       if (connector->eld[DRM_ELD_SPEAKER])
+               edid_caps->speaker_flags = connector->eld[DRM_ELD_SPEAKER];
        else
                edid_caps->speaker_flags = DEFAULT_SPEAKER_LOCATION;
 
-       kfree(sadb);
        drm_edid_free(drm_edid);
 
        return result;
-- 
2.47.2

Reply via email to