mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 09:35:52 -04:00
drm/amd/display: adjust flow for deallocation mst payload
[Why]
MST relevant variables are maintained at drm side. As the result, we
still have to call drm_dp_remove_payload_part2() to update the relevant
values regardless the link is under mst mode or not. We used to have a
workaround patch to tackle this: commit 3d8fcc6740 ("drm/amd/display:
Extract temp drm mst deallocation wa into its own function")
Now it's time to remove the workaround and adjust the flow.
[How]
During deallocate_mst_payload(), source actually doesn't send out
ALLOCATE_PAYLOAD at the end as like the flow in allocate_mst_payload().
Call function dm_helpers_dp_mst_send_payload_allocation() at the end of
deallocate_mst_payload() is a bit confusing.
Separate dm_helpers_dp_mst_send_payload_allocation() into 2 functions.
Have a new function dm_helpers_dp_mst_update_mst_mgr_for_deallocation()
to replace dm_helpers_dp_mst_send_payload_allocation() for payload
deallocation.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -1715,23 +1715,6 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
|
||||
/* TODO: Remove after DP2 receiver gets proper support of Cable ID feature */
|
||||
adev->dm.dc->debug.ignore_cable_id = true;
|
||||
|
||||
/* TODO: There is a new drm mst change where the freedom of
|
||||
* vc_next_start_slot update is revoked/moved into drm, instead of in
|
||||
* driver. This forces us to make sure to get vc_next_start_slot updated
|
||||
* in drm function each time without considering if mst_state is active
|
||||
* or not. Otherwise, next time hotplug will give wrong start_slot
|
||||
* number. We are implementing a temporary solution to even notify drm
|
||||
* mst deallocation when link is no longer of MST type when uncommitting
|
||||
* the stream so we will have more time to work on a proper solution.
|
||||
* Ideally when dm_helpers_dp_mst_stop_top_mgr message is triggered, we
|
||||
* should notify drm to do a complete "reset" of its states and stop
|
||||
* calling further drm mst functions when link is no longer of an MST
|
||||
* type. This could happen when we unplug an MST hubs/displays. When
|
||||
* uncommit stream comes later after unplug, we should just reset
|
||||
* hardware states only.
|
||||
*/
|
||||
adev->dm.dc->debug.temp_mst_deallocation_sequence = true;
|
||||
|
||||
if (adev->dm.dc->caps.dp_hdmi21_pcon_support)
|
||||
DRM_INFO("DP-HDMI FRL PCON supported\n");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user