[RFC PATCH 0/2] drm/amd/display: switch amdgpu_dm_connector to
Melissa Wen
mwen at igalia.com
Fri Jan 26 16:28:52 UTC 2024
Hi,
I'm debugging a null-pointer dereference when running
igt at kms_connector_force_edid and the way I found to solve the bug is to
stop using raw edid handler in amdgpu_connector_funcs_force and
create_eml_sink in favor of managing resouces via sruct drm_edid helpers
(Patch 1). The proper solution seems to be switch amdgpu_dm_connector
from struct edid to struct drm_edid and avoid the usage of different
approaches in the driver (Patch 2). However, doing it implies a good
amount of work and validation, therefore I decided to send this RFC
first to collect opinions and check if there is any parallel work on
this side. It's a working in progress.
The null-pointer error trigger by the igt at kms_connector_force_edid test
was introduced by:
- e54ed41620f ("drm/amd/display: Remove unwanted drm edid references")
You can check the error trace in the first patch.
This series was tested with kms_hdmi_inject and kms_force_connector. No
null-pointer error, kms_hdmi_inject is successul and kms_force_connector
is sucessful after the second execution - the force-edid subtest
still fails in the first run (I'm still investigating).
There is also a couple of cast warnings to be addressed - I'm looking
for the best replacement.
I appreciate any feedback and testing.
Melissa
Melissa Wen (2):
drm/amd/display: fix null-pointer dereference on edid reading
drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 78 ++++++++++---------
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 4 +-
.../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 9 ++-
.../display/amdgpu_dm/amdgpu_dm_mst_types.c | 23 +++---
4 files changed, 60 insertions(+), 54 deletions(-)
--
2.43.0
More information about the amd-gfx
mailing list