Commit f04bee34 authored by Nicholas Kazlauskas's avatar Nicholas Kazlauskas Committed by Alex Deucher

drm/amd/display: Always allocate initial connector state state

[Why]
Unlike our regular connectors, MST connectors don't start off with
an initial connector state. This causes a NULL pointer dereference to
occur when attaching the bpc property since it tries to modify the
connector state.

We need an initial connector state on the connector to avoid the crash.

[How]
Use our reset helper to allocate an initial state and reset the values
to their defaults. We were already doing this before, just not for
MST connectors.
Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4b7ef85c
...@@ -4778,6 +4778,13 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, ...@@ -4778,6 +4778,13 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
{ {
struct amdgpu_device *adev = dm->ddev->dev_private; struct amdgpu_device *adev = dm->ddev->dev_private;
/*
* Some of the properties below require access to state, like bpc.
* Allocate some default initial connector state with our reset helper.
*/
if (aconnector->base.funcs->reset)
aconnector->base.funcs->reset(&aconnector->base);
aconnector->connector_id = link_index; aconnector->connector_id = link_index;
aconnector->dc_link = link; aconnector->dc_link = link;
aconnector->base.interlace_allowed = false; aconnector->base.interlace_allowed = false;
...@@ -4967,9 +4974,6 @@ static int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm, ...@@ -4967,9 +4974,6 @@ static int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm,
&aconnector->base, &aconnector->base,
&amdgpu_dm_connector_helper_funcs); &amdgpu_dm_connector_helper_funcs);
if (aconnector->base.funcs->reset)
aconnector->base.funcs->reset(&aconnector->base);
amdgpu_dm_connector_init_helper( amdgpu_dm_connector_init_helper(
dm, dm,
aconnector, aconnector,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment