mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
drm/amd/display: Fix unstable HPCP compliance on Chrome Barcelo
[Why] Intermittently, there presents two occurrences of 0 stream commits in a single HPD event. Current HDCP sequence does not consider such scenerio, and will thus disable HDCP. [How] Add condition check to include stream remove and re-enable case for HDCP enable. Reviewed-by: Bhawanpreet Lakha <bhawanpreet.lakha@amd.com> Acked-by: Mikita Lipski <mikita.lipski@amd.com> Signed-off-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
90517c9838
commit
4e00a434a0
|
|
@ -8067,8 +8067,26 @@ static bool is_content_protection_different(struct drm_connector_state *state,
|
||||||
state->content_protection == DRM_MODE_CONTENT_PROTECTION_ENABLED)
|
state->content_protection == DRM_MODE_CONTENT_PROTECTION_ENABLED)
|
||||||
state->content_protection = DRM_MODE_CONTENT_PROTECTION_DESIRED;
|
state->content_protection = DRM_MODE_CONTENT_PROTECTION_DESIRED;
|
||||||
|
|
||||||
/* Check if something is connected/enabled, otherwise we start hdcp but nothing is connected/enabled
|
/* Stream removed and re-enabled
|
||||||
* hot-plug, headless s3, dpms
|
*
|
||||||
|
* Can sometimes overlap with the HPD case,
|
||||||
|
* thus set update_hdcp to false to avoid
|
||||||
|
* setting HDCP multiple times.
|
||||||
|
*
|
||||||
|
* Handles: DESIRED -> DESIRED (Special case)
|
||||||
|
*/
|
||||||
|
if (!(old_state->crtc && old_state->crtc->enabled) &&
|
||||||
|
state->crtc && state->crtc->enabled &&
|
||||||
|
connector->state->content_protection == DRM_MODE_CONTENT_PROTECTION_DESIRED) {
|
||||||
|
dm_con_state->update_hdcp = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hot-plug, headless s3, dpms
|
||||||
|
*
|
||||||
|
* Only start HDCP if the display is connected/enabled.
|
||||||
|
* update_hdcp flag will be set to false until the next
|
||||||
|
* HPD comes in.
|
||||||
*
|
*
|
||||||
* Handles: DESIRED -> DESIRED (Special case)
|
* Handles: DESIRED -> DESIRED (Special case)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user