]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: remove amdgpu_connector_edid() and stop using edid_blob_ptr
authorJani Nikula <jani.nikula@intel.com>
Fri, 10 May 2024 15:08:11 +0000 (18:08 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 23 May 2024 11:37:24 +0000 (14:37 +0300)
amdgpu_connector_edid() copies the EDID from edid_blob_ptr as a side
effect if amdgpu_connector->edid isn't initialized. However, everywhere
that the returned EDID is used, the EDID should have been set
beforehands.

Only the drm EDID code should look at the EDID property, anyway, so stop
using it.

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Pan
Cc: amd-gfx@lists.freedesktop.org
Reviewed-by: Robert Foss <rfoss@kernel.org>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1463862965d76e9458551598fd4d287a08d3d264.1715353572.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c

index 9caba10315a8137dc7ed03efc8b60250d6e0feaa..cae7479c3ecf7ec1426e84398c80cb55b2534470 100644 (file)
@@ -246,22 +246,6 @@ amdgpu_connector_find_encoder(struct drm_connector *connector,
        return NULL;
 }
 
-struct edid *amdgpu_connector_edid(struct drm_connector *connector)
-{
-       struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector);
-       struct drm_property_blob *edid_blob = connector->edid_blob_ptr;
-
-       if (amdgpu_connector->edid) {
-               return amdgpu_connector->edid;
-       } else if (edid_blob) {
-               struct edid *edid = kmemdup(edid_blob->data, edid_blob->length, GFP_KERNEL);
-
-               if (edid)
-                       amdgpu_connector->edid = edid;
-       }
-       return amdgpu_connector->edid;
-}
-
 static struct edid *
 amdgpu_connector_get_hardcoded_edid(struct amdgpu_device *adev)
 {
index 61fcef15ad721cdc8b6c50b63084e91d33aff91c..eff833b6ed31b20eec875b961a8f1d645ca0a407 100644 (file)
@@ -24,7 +24,6 @@
 #ifndef __AMDGPU_CONNECTORS_H__
 #define __AMDGPU_CONNECTORS_H__
 
-struct edid *amdgpu_connector_edid(struct drm_connector *connector);
 void amdgpu_connector_hotplug(struct drm_connector *connector);
 int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector);
 u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector);
index b44fce44c066429f0d0197c5a8fef46322676a6d..dddb5fe16f2c53aab58ae5b66482395002b00572 100644 (file)
@@ -1299,7 +1299,7 @@ static void dce_v10_0_audio_write_speaker_allocation(struct drm_encoder *encoder
                return;
        }
 
-       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector_edid(connector), &sadb);
+       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector->edid, &sadb);
        if (sad_count < 0) {
                DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", sad_count);
                sad_count = 0;
@@ -1369,7 +1369,7 @@ static void dce_v10_0_audio_write_sad_regs(struct drm_encoder *encoder)
                return;
        }
 
-       sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+       sad_count = drm_edid_to_sad(amdgpu_connector->edid, &sads);
        if (sad_count < 0)
                DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
        if (sad_count <= 0)
index 80b2e7f79acf2fdf3fa6913282109257f7ef7dcd..11780e4d7e9f9df9b486fd5405cf4869b45643c7 100644 (file)
@@ -1331,7 +1331,7 @@ static void dce_v11_0_audio_write_speaker_allocation(struct drm_encoder *encoder
                return;
        }
 
-       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector_edid(connector), &sadb);
+       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector->edid, &sadb);
        if (sad_count < 0) {
                DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", sad_count);
                sad_count = 0;
@@ -1401,7 +1401,7 @@ static void dce_v11_0_audio_write_sad_regs(struct drm_encoder *encoder)
                return;
        }
 
-       sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+       sad_count = drm_edid_to_sad(amdgpu_connector->edid, &sads);
        if (sad_count < 0)
                DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
        if (sad_count <= 0)
index db20012600f5e26cc4981a4740262dfe6b378e0c..05c0df97f01d35b2d5c35a059b3ed6d24ed57c1e 100644 (file)
@@ -1217,7 +1217,7 @@ static void dce_v6_0_audio_write_speaker_allocation(struct drm_encoder *encoder)
                return;
        }
 
-       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector_edid(connector), &sadb);
+       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector->edid, &sadb);
        if (sad_count < 0) {
                DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", sad_count);
                sad_count = 0;
@@ -1292,7 +1292,7 @@ static void dce_v6_0_audio_write_sad_regs(struct drm_encoder *encoder)
                return;
        }
 
-       sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+       sad_count = drm_edid_to_sad(amdgpu_connector->edid, &sads);
        if (sad_count < 0)
                DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
        if (sad_count <= 0)
index 5b56100ec9022cba61941bc4c552c5e6b046d084..dc73e301d9370098cf72dd323bf0ac11c1d4bc73 100644 (file)
@@ -1272,7 +1272,7 @@ static void dce_v8_0_audio_write_speaker_allocation(struct drm_encoder *encoder)
                return;
        }
 
-       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector_edid(connector), &sadb);
+       sad_count = drm_edid_to_speaker_allocation(amdgpu_connector->edid, &sadb);
        if (sad_count < 0) {
                DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", sad_count);
                sad_count = 0;
@@ -1340,7 +1340,7 @@ static void dce_v8_0_audio_write_sad_regs(struct drm_encoder *encoder)
                return;
        }
 
-       sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), &sads);
+       sad_count = drm_edid_to_sad(amdgpu_connector->edid, &sads);
        if (sad_count < 0)
                DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
        if (sad_count <= 0)